12 Commits

Author SHA1 Message Date
operator ae4df2f29c feat(kpi): expand KPI runtime monitoring, prompt advisory envelopes, and missing field resiliency 2026-10-06 20:02:48 +00:00
Muse Sidechat a9f014f9fa feat: completion-enforcement loop (fallback, proof, emit-model, auditor)
Close the loop so dispatched work actually completes on bl:

- on_no_result fallback in followup-sweeper (op + job forms via
  exec-constrained registry / job-dispatch), seeded on the three
  autonomy-pulse jobs; fallback_due() dedupes the gravity path
- gravity.py: add __main__ entry (loop-remediator.timer was a no-op),
  300s re-arm budget, fallback firing + stamp/skip logic
- harvester: proof-of-result followups (result_has_evidence),
  acted-variant NACK, emit-model tool-hint wording
- envelope: RESPONSE RULE states the emit model (agents EMIT
  directives verbatim; runtime executes; works from bare containers)
- completion-audit.py + systemd 15-min timer: per-family funnel,
  swarm drain, followup backlog; digest DM when degraded, 6h heartbeat
- tests/test_completion.py (29 tests), JOB-SPEC.md docs

Tests: 67/67 focused green (completion + tool_calls).
2026-10-06 08:20:14 +00:00
operator-main f2640397ed feat(messaging): balanced TOOL parsing, DM shorthand, box.exec, tools.list
- response-harvester: extract [TOOL]/[EXEC] JSON args with balanced-brace
  scanning (']' and nesting inside args no longer truncate calls); add
  [DM {...}] shorthand mapping to dm.send; native aliases (dm, box,
  tools) plus arg-synonym normalization; formatters and expanded hints.
- exec-constrained: new read-only box.exec op (27 allowlisted box-ctl
  reads) and tools.list op backed by --list-ops for dynamic discovery.
- prompt_envelope: advertise dm.send/box.exec/tools.list in every timer
  DM; add dm_call builder.
- lookup_engine + regex_patterns.json: canonical tool_call pattern
  accepts the DM engine, ']' in args, one nesting level.
- tests/test_tool_calls.py: 38 tests; docs/INBAND-MESSAGING-SPEC.md:
  accepted decision record (Final).
2026-10-06 07:29:16 +00:00
operator 59c9965791 feat(swarm-worker): dispatch prose swarm slots to ephemeral Muse subagents
- daemon: route non-shell slot tasks to a fresh subagent session on dev/def/muse
  via muse_hybrid; add bin/ to sys.path so muse_hybrid/prompt_envelope import
  under the tmux supervisor
- prompt_envelope: add wrap_subagent_task() - plain task assignment without
  [TOOL tmux/swarm/cron] meta tags (subagents refused those as relayed test traffic)
- box-ctl/reporter: swarm-attach accepts optional session-id, stored as
  slot.subagent_session_id
- executor: _looks_like_shell requires an existing executable (prose like
  'verify ...' no longer misread as shell)
- poller: pick up pending swarms as well as running
- response-harvester: monitor running slot subagent sessions from swarms.json,
  allow '/' in RESULT/VERB job ids, archive ephemeral threads on any verdict
  (OK or FAIL), reap slot sessions for terminal swarms
2026-10-05 20:18:46 +00:00
operator 9722879724 feat(tmux,envelope): add hybrid node/container execution to muse-tmux and naturalize prompt envelope to operator directive 2026-10-05 16:47:24 +00:00
operator f61ceb5f04 fix(envelope): strip host container key references from prompt envelope to eliminate agent refusal loops 2026-10-05 16:41:42 +00:00
operator 1d2440c1f8 feat(envelope): inject Work Order header and shared tmux directives into prompt envelope 2026-10-05 16:31:35 +00:00
operator 26535791e5 feat(auth): provision SSH signing keys for 646 and opm and register in allowed_signers 2026-10-05 15:27:34 +00:00
operator 36d572c451 feat(prompt): enable SSH-signed box read/respond commands for pip 2026-10-05 15:23:21 +00:00
operator 42ae62a047 feat(prompt): integrate box runtime block with SSH-signed work order read/respond paths 2026-10-05 15:22:39 +00:00
operator 12f8a8b0d6 feat(prompts): native Muse tools (cron.create, subagent spawn) primary in envelope; harvester bridges native names to box ops 2026-10-05 05:45:12 +00:00
operator 74d093d259 feat(prompts): work-first envelope with spawn/followup tool calls at top and bottom 2026-10-05 05:43:26 +00:00