Commit Graph
41 Commits
Author SHA1 Message Date
Antigravity 974941bdb4 fix(deploy): migrate deployment scripts and docs from tmux to herdr 2026-07-20 12:17:12 +09:00
Antigravity 87bb2780ac refactor: rename resolve_herdr_workspace to resolve_herdr_session and use herdr_session database field consistently 2026-07-20 11:13:17 +09:00
Antigravity daa1476714 fix: add empty marker_norm guard in send_keys_safe to avoid always-true grep matches 2026-07-20 10:41:47 +09:00
Antigravity 087a294135 fix: use setsid for herdr server bootstrap to prevent early termination when parent shell exits 2026-07-20 10:36:49 +09:00
Antigravity 90afd45aba fix: remove dead proxy variables from isolation environment prefix 2026-07-20 09:47:45 +09:00
Antigravity 336aa5fd9d fix: resolve review blockers (D1, D2, D3) and reconcile.sh subprocess bugs 2026-07-20 09:32:58 +09:00
Antigravity d7fa9af410 refactor: complete tmux-to-herdr migration review and enhance workspace reuse logic 2026-07-20 09:21:25 +09:00
Godopu 6df4b03661 Align conftest mock herdr and unit test assertions with Claude's simplified session-based isolation and native herdr command updates 2026-07-20 07:42:05 +09:00
Godopu ff7a2873f9 Implement full E2E, integration, component, and unit tests, and resolve all leftover tmux-to-herdr issues in UI and core scripts 2026-07-19 20:05:48 +09:00
Godopu 30e606b0fa Clean up all tmux occurrences from dev skills and integrate herdr wrapper translation shim with dynamic env and workspace ID parsing 2026-07-19 16:57:00 +09:00
Godopu 42b54d7643 Migrate backend to herdr using a seamless translation shim wrapper 2026-07-19 16:22:58 +09:00
Godopu 36b3910ff2 fix(mac-compat): bypass keyring auth check hang and link macOS Library/Keychains to isolated home 2026-07-18 23:23:40 +09:00
Godopu b45649de76 feat(delegate-job): support role aliases mapping and run delegate job safely using isolated temp copy with signal cleanups 2026-07-17 17:07:30 +09:00
GodopuandClaude Sonnet 5 35fc44f269 fix(loop): repair review-diff/verdict-parsing bugs, deduplicate session lookups
Applies the P0-P3 fixes from the multi-agent-mux-loop audit
(.mam/jobs/ab686e47/claude-reports/report-final.md):

- P0-1: capture BASE_COMMIT before Phase 2 and diff against it, so reviewer
  diffs stay non-empty and cumulative even after the Creator commits per the
  documented DoD (bare `git diff` alone showed nothing once committed).
- P0-2: has_verdict now matches only the report's last non-blank line, so a
  stray [VERDICT: ...] token quoted mid-report as a formatting example can no
  longer flip the outcome.
- P1-1: replace the English-only refactor/complex/design/architect keyword
  sniff (dead code against Korean-language reviewer reports) with an explicit
  [ESCALATE: PLANNER] tag the reviewer prompt now asks for.
- P1-2: resolve_all_reviewers/resolve_agent_type/resolve_planner_session now
  read through lib.sh's load_state_json single source of truth instead of
  each hand-rolling its own SQLite+YAML lookup; resolve_agent_type's name
  fallback matches exact hyphen segments instead of a substring `in` check.
- P2-1: warn when --all-reviewer and --reviewer are both given, since the
  latter is silently discarded.
- P2-2: correct the SKILL.md CLI-mapping table row that overstated an
  automated lint gate and an unconditional Planner feedback loop.
- P3: fix lib.sh shellcheck SC2164 (unguarded cd in start_watchdog) and
  annotate the intentional SC2317 dual source/exec guard.

Verified: shellcheck clean on both scripts, bash -n syntax OK, and the
rewritten has_verdict/resolve_* functions were unit-tested against this
repo's live .mam/agent-sessions state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 13:50:25 +09:00
Godopu 7fde1d2b8a docs(loop): merge multi_agent_workflow.md into SKILL.md, drop duplicate 2026-07-16 13:36:12 +09:00
Godopu 626f35adfc refactor: harden run_loop.sh verdict parser, add atomic promotion, and revise multi_agent_workflow.md guidelines 2026-07-16 12:57:56 +09:00
Godopu 787fe58298 fix(skills): robustify load_state_json against lone surrogates
Implement a clean_surrogates helper inside lib.sh's load_state_json function
to recursively replace lone surrogates (e.g. from partial TUI screen dumps)
with replacement chars before printing, preventing UnicodeEncodeError on stdout.
2026-07-12 17:19:44 +09:00
Godopu 2d2510f391 refactor(lib): add robust TUI readiness tokens for cline
- Include 'What can I do' and 'slash commands' to grep search pattern
- Avoid false-positive timeouts when welcome screen branding logo is skipped
2026-07-12 15:44:01 +09:00
Godopu dc1a2718d1 refactor(lib): extend wait_for_tui_ready timeout to 30 seconds
- Allow slow-starting node standalone CLI processes to boot without false-positive timeouts
- Mitigate disk I/O constraints on isolated DB provisioning
2026-07-12 15:43:04 +09:00
Godopu 742e71b784 refactor(lib): map cline isolation paths directly to root without data subfolder
- Align symlink and copy paths directly under isolation root (no data/ intermediate directory)
- Correctly restore global settings and SQLite databases for standalone CLI execution
2026-07-12 15:42:21 +09:00
Godopu f1e754d73e refactor(lib): physically copy sqlite DBs instead of symlinking for cline
- Prevent sqlite DB locking errors across concurrent isolated sessions
- Use cp -p for files inside data/db/ during provision_isolation
2026-07-12 15:41:59 +09:00
Godopu a57ce0a1b8 refactor(lib): seed db/ subfolder for cline isolation to preserve oauth and provider states
- Symlink all database files inside data/db/ under isolation root
- Prevent cline CLI from bouncing back to the initial Welcome provider selection screen
2026-07-12 15:41:17 +09:00
Godopu ae8ea9b939 refactor(lib): target correct data subfolder for cline isolation seeding
- Place data/settings/ and data/globalState.json inside isolation root
- Align directories with cli --data-dir internal structure to prevent startup authentication crashes
2026-07-12 15:35:25 +09:00
Godopu 49176b43b6 refactor(lib): hash entire session dictionary to widen YAML write-gate
- Prevent YAML<->SQLite sync drift on completed jobs (R-1 Option A)
- Hash session dict to trigger YAML rewrite on any field updates
2026-07-12 14:37:42 +09:00
Godopu 35af8e33a2 feat(skills): implement state loader DRY (OP-5) and Job-centric directory structure
- Extract load_state_json centralized helper inside lib.sh to unify state querying
- Refactor status, resume, stop, and monitor scripts to fetch state via MAM_STATE_JSON env var to avoid stdin pipeline collisions
- Restructure delegate-job to provision .mam/jobs/<job_id>/brief.md and direct agents to it, minimizing token size and preventing TUI paste freezes
- Harden send_keys_safe submission loop with was_popup state capture and edge case guards, preventing timing spin false-positives
- Passed cross-verification approved PASS from Planner Claude session
2026-07-12 11:50:38 +09:00
Godopu 76ec0dd929 fix(skills): support automatic bypass of large-session resume warning dialogs
- Add 'Resuming the full session' and 'Resume from summary' patterns to TUI validation constants
- Update handle_startup_dialogs to automatically submit the choice on large-session warnings, preventing start/resume lockups
2026-07-12 10:27:59 +09:00
Godopu 7eeb4b709a perf(skills): optimize sleeps and modularize duplication with multi-agent consensus PASS
- OP-1: Implement reactive _wait_session_gone in lib.sh and stop_session.sh with set -e || true guard
- OP-2: Event-driven MQTT subscribe handshake with sub_pid liveness in delegate-job
- OP-3: Replace CPU time.sleep(0.5) spin with threading.Event wait in reconcile.sh
- OP-4: Define mam_tmux dispatcher targeting resolved _REAL_TMUX_PATH to prevent recursion
- OP-6 & OP-7: Add token variables and bash version source check in lib.sh
- Integrate approved optimization plan and PASS review reports from all agents
2026-07-11 10:08:41 +09:00
Godopu da895fccd5 fix(skills): resolve blank-padding viewport bug in send_keys_safe and fix rc status leak
- Introduce _pane_tail content helper to filter blank-padded lines in tmux captures
- Apply _pane_tail to _pane_dialog_open, handle_startup_dialogs, and send_keys_safe
- Fix rc status expansion logic in create_session.sh instructions injection check
- Include 3-agent final prompt-lock verification reports
2026-07-11 09:34:25 +09:00
Godopu e613f4aedb fix(skills): evidence-based prompt delivery (send_keys_safe) to end prompt-lock (FW-W2)
- Add send_keys_safe + quiescence/dialog-detection helpers to lib.sh:
  keys are sent on pane evidence, never fixed timers; distinct exit
  codes 1-4; dialogs are never blindly Enter-ed
- inject_instructions delegates to send_keys_safe; create --submit-job
  publishes a terminal error event on delivery failure (no zombie jobs)
- wait_for_tui_ready: drop dialog-ambiguous tokens, treat open dialogs
  as not-ready, return 1 on timeout instead of proceeding
- delegate-job wrapper: replace copy-pasted raw paste/C-m block with
  lib.sh send_keys_safe (restores single source of truth)
- resume: conditional signature-gated dialog handling replaces blind
  Enter/Down/Enter; stop --graceful delivers exitkey safely, fallback
  chain unchanged
- create SKILL: passive capture-pane probe instead of stray Enter
- Mark FW-W2 resolved; add 3-agent analysis/plan reports
2026-07-11 09:24:34 +09:00
Godopu 768cfe5c6d feat(isolation): implement Phase 1-3 session isolation with stop purge and resume safety 2026-07-10 12:24:35 +09:00
Godopu 3a9964c0e2 fix(deploy): resolve SQL timeouts, YAML drift, and orphaned tmux sessions
- lib.sh: update atomic_dump_yaml to sync with YAML on any active session status change; set reader timeouts to 60.0s
- create_session.sh: add exit trap cleanup_tmux_on_error to rollback spawned tmux sessions on initialization failures
- reconcile.sh, update_yaml_resumed.sh, status.sh, stop_session.sh: align SQLite connection timeout values to 60.0s
2026-07-10 09:21:07 +09:00
Godopu ef57749e9f feat: implement --onboard flag in multi-agent-mux-create and update AGENT.md onboarding handshake protocol 2026-06-28 10:42:23 +09:00
Godopu 7c8267240d feat: enforce required agent roles at creation and role immutability in registry 2026-06-28 10:27:36 +09:00
Godopu dd9500a271 feat(multi-agent-mux): integrate cline agent support, fix sqlite3 naming collision, simplify delegation docs, and add SKILL_FEATURES.md 2026-06-28 09:17:11 +09:00
Godopu e14ee90243 fix(skills): point HOME_DIR to real home directory and fix Hermes database path 2026-06-26 21:17:43 +09:00
Godopu 7eaaaf8944 fix(lib,install): update locking doc to SQLite transaction, cache NFS check, verify PyYAML 2026-06-23 23:41:18 +09:00
Godopu 99ac8b3ce4 refactor(security,concurrency): resolve structural issues, enforce Claude permission skip, update docs 2026-06-23 08:03:43 +09:00
Godopu 12dceb14b2 feat(monitor): consolidate per-job watchdogs into shared wildcard subscriber (FW-W3) 2026-06-23 00:37:39 +09:00
Godopu c721d1cd86 refactor: rename skills from tmux-agent-orchestrate-* to multi-agent-mux-* in backplane scripts and documents 2026-06-22 15:58:48 +09:00
Godopu 9735258bc5 refactor: rename metadata directory .hermes to .mam in backplane scripts and documents 2026-06-22 14:06:13 +09:00
Godopu 30e447189e refactor: migrate skills/ directory to .agents/skills/ 2026-06-21 14:42:12 +00:00