- Resolve merge conflict in README.md test badge (1,684 → 1,720)
- Update all app/demo counts from 14 → 16 to reflect all CLIs in registry
- Update test counts: 1,247 unit + 473 e2e = 1,720 total
- Add AdGuardHome entry to registry.json with contributor info (pyxl-dev)
- Add contributor/contributor_url fields to all registry entries
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- log_config: trigger POST when --interval is passed without --enabled,
read current config for missing parameters
- set_enabled: read current filter interval from server instead of
hardcoding 24h
- Update test mock to cover the new get_status call in set_enabled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deduplicate logical document paths by freshest metadata so open-path resolves real Mubu history duplicates consistently. Overlay backup-driven show/link output with metadata titles and doc paths, and default new public state to ~/.config/mubu-cli while preserving legacy fallback.
Update the package metadata, generated skill output, test expectations, and registry entry so the contribution PR reflects the generalized daily-folder behavior in the published harness version.
Require an explicit daily folder reference or MUBU_DAILY_FOLDER for daily helpers, scrub personal examples from docs and generated skill content, and harden live E2E checks for environment-specific SSL failures.
Reverts all unintended em-dash → hyphen replacements introduced in
previous commits. README is now restored from upstream (e0dd643) with
only the three AdGuardHome-related additions: badge count update,
categories table row, and project structure entry.
Addresses review feedback from yuh-yang on PR #65.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract duplicate Path(config_path) conversion to a single variable
- save_config() now accepts and persists the https flag, ensuring
load/save roundtrip symmetry for all config fields
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix REPL argument parsing: use shlex.split() instead of str.split()
so quoted args like --name "My PC" are handled correctly
- Fix config save: respect --config path by storing config_path in
ctx.obj and passing it through to save_config()
- Fix HTTPS persistence: load_config() now reads 'https' key from
saved config files (default False)
- docs: add AdGuardHome to README (badge 12 Apps, category table,
project tree) per yuh-yang's request
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes#51
The root cause: all 10 harnesses used bare `open("w") + json.dump()` for
session saves. `open("w")` truncates the file before any lock can be
acquired, so concurrent writes silently corrupt or lose data.
Fix: add `_locked_save_json()` to each session.py that opens with "r+"
(no truncation), acquires fcntl.LOCK_EX, then truncates inside the lock.
Falls back gracefully on Windows where fcntl is unavailable.
Also:
- Update HARNESS.md with session file locking guidance (per maintainer
request on PR #52)
- Add concurrent write tests (4 threads × 50 writes) to verify the fix
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace table format with bullet-list style. Add 2026-03-16 entry
for SKILL.md generation feature. Collapse older entries under
a details/summary block.
Link to the SKILL.md Generation section and explain that pip install
makes the skill file auto-discoverable in the REPL banner.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 tests covering:
- ReplSkin auto-detection of skills/SKILL.md from __file__ location
- Absolute path resolution, missing file handling, explicit override
- Banner output includes/omits skill path as expected
- All 11 harnesses have SKILL.md in correct package location
- All 11 setup.py files include package_data for skills/*.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fill in the previously empty command tables with actual commands
extracted from each CLI's Click decorators. All 11 harnesses now
have complete command documentation in their SKILL.md files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move skills/SKILL.md from the harness root into
cli_anything/<software>/skills/SKILL.md so it is installed alongside the
package via pip. Add package_data to all 11 setup.py files. Make
ReplSkin auto-detect the skill file relative to its own __file__
location, removing the need for an explicit skill_path argument.
Update HARNESS.md, cli-anything.md, plugin README, and main README.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Standardize skill file naming from <software>_SKILL.md to SKILL.md across
all 11 harnesses. Update skill_generator.py, HARNESS.md, repl_skin.py,
cli-anything.md, and plugin README.md to reference the new path. Add
SKILL.md generation section to main README.md and mark roadmap item done.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Accumulate counts: 13 apps, 1,588 tests (1,138 unit + 450 e2e).
Include both ComfyUI (from PR) and Mermaid (from main) in project structure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ComfyUI (70 tests: 60 unit + 10 e2e) to the demonstrations table,
test results summary, and project structure tree. Update all counts
from 11→12 apps and 1,508→1,578 tests.
Signed-off-by: Andrew Barnes <andrew.jaguars@gmail.com>