Commit Graph
82 Commits
Author SHA1 Message Date
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