Hermes Agent
8bee1b65ea
feat(mosaic): durable pre-update snapshot + verify net + restore CLI ( #791 PR2)
...
ci/woodpecker/pr/ci Pipeline failed
Third, independent recovery layer for keep-mode upgrades (Part of #791 ). PR1's
manifest keeps the sync out of operator paths and the ephemeral /tmp snapshot
rolls back a mid-write crash; this adds the case neither covers — a "successful"
upgrade that a manifest/logic bug silently let touch an operator file.
- install.sh make_durable_snapshot(): before any mutation, copy the operator-owned
surface that exists to $XDG_STATE_HOME/mosaic/backups/pre-update-<UTC-ts>/
(0700 dirs / 0600 files, umask 077 scoped + restored). Fail-open; retention
MOSAIC_BACKUP_RETENTION (default 5).
- install.sh verify_operator_surface(): post-sync, restore any operator file the
upgrade diverged/removed and warn loudly (a divergence = manifest bug). Honors
intentional migration removals; refuses to restore through a symlink (CWE-59);
guards mkdir under set -e.
- mosaic restore (TS): --list (default dry-run), --from <ts> confirmation-gated
restore. Strict timestamp selector (CWE-22), O_NOFOLLOW 0600 writes (CWE-59),
containment + managed-dir checks via secure-file.ts. Counts/paths only — never
emits file contents (secrev).
- Gates: typecheck/lint/format ✓; mosaic vitest 1252; restore.spec 30;
bash gates durable-snapshot 41 / manifest-guard 193 / rollback 28 / migration 21.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-16 19:04:14 -05:00
32a0ffba13
feat(mosaic): manifest-owned upgrade guard so updates never wipe operator config ( #791 ) ( #802 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 23:01:26 +00:00
8536454257
fix(glpi): accept HTTP 206 in list wrappers ( #807 ) ( #810 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 22:47:58 +00:00
4f29cc604d
fix(tmux): correct cross-socket sender identity ( #808 ) ( #809 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-07-16 22:47:25 +00:00
adad486b6f
fix(fleet): enforce exact comms authority ( #787 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 00:32:23 +00:00
191efaefeb
feat(fleet): enforce generated environment boundary ( #772 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 08:40:32 +00:00
a5e8e55401
feat(fleet): add shared role semantics ( #768 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 00:53:47 +00:00
405984af5a
De-hardcode orchestrator and interaction agent names ( #748 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 18:59:27 +00:00
e3b5113be2
feat(tess): add configurable Pi interaction service ( #728 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 02:59:27 +00:00
b580d37d51
Fixes #703 ( #705 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
2026-07-12 20:49:43 +00:00
a99aded26d
fix(tools/git): -h/--help now exits 0 across 7 wrappers ( #702 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-11 09:23:46 +00:00
4df38f7e81
fix(tools/_lib): /etc/mosaic host-level fallback for credential resolution ( #700 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-10 01:57:12 +00:00
4e9e053800
fix(tools/tmux): unique per-invocation paste buffer; track auto-submit-drafts.sh ( #697 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-09 17:37:40 +00:00
851c67c27b
docs(bootstrap): add python-is-python3 to agent-host prerequisites ( #694 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-03 09:38:40 +00:00
248193cd3b
fix(fleet): export MOSAIC_AGENT_CLASS into the agent pane so personas inject ( #669 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 19:38:15 +00:00
6c84ccd0b1
feat(fleet): dedicated orchestrator persona, split from planner ( #662 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:42:23 +00:00
84d2757817
feat(fleet): update-surviving persona customization (H4) ( #661 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:21:01 +00:00
a738ac1410
feat(fleet): system-type profiles (H2) ( #660 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:02:25 +00:00
538f0556d5
feat(fleet): cross-domain baseline persona library (H1) ( #659 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 15:31:56 +00:00
f852250419
feat(fleet): native Mosaic backlog on @mosaicstack/db (atomic claim + TTL) ( #657 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-24 14:55:10 +00:00
cabb179d5a
feat(fleet): seed role registry markdown library ( #655 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-24 14:39:54 +00:00
aa27c42129
fix(fleet): pre-trust claude agent workdir to clear the folder-trust gate ( #644 ) ( #645 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 05:16:46 +00:00
e6b53ea103
fix(tools): default AGENT_WORK_ROOT to $HOME/mosaic/agent-work ( #641 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
2026-06-23 13:40:13 +00:00
4da87640e8
feat(tmux): agent-send.sh --class triage tag for the comms daemon ( #552 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-23 03:25:16 +00:00
94e5cd7a81
ci: eliminate cold pnpm install via pre-baked CI base image (Phase 1) ( #635 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-22 22:50:21 +00:00
bf2a6745c8
fix(install): preserve user fleet data on re-seed + refresh active units (CRITICAL) ( #632 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 21:38:09 +00:00
d539d61e0e
refactor(fleet): rename tmux socket mosaic-factory → mosaic-fleet ( #630 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 21:08:43 +00:00
7342415a32
fix(fleet): consume model_hint + fix socket-default trap (stand-up fixes) ( #627 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 19:18:01 +00:00
095e19443b
feat(fleet): onboarding-injection — comms cheat-sheet + peer roster per agent ( #621 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 17:54:54 +00:00
858d90329d
feat(fleet): F4 Phase 1 — chat connector abstraction + Matrix design ( #617 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 16:14:32 +00:00
2bf66136e4
feat(fleet): enhancer role + two-agent floor (orchestrator + enhancer) ( #615 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 13:15:59 +00:00
528700ceea
feat(framework): P6 — docs + compliance matrix + resident-budget CI ( #607 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/tag/publish Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 02:20:35 +00:00
23343bb7f0
feat(mosaic): P5 — overlay composer (compose-contract + *.local overlays) ( #605 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 02:16:05 +00:00
6dbe452a9f
fix(fleet): watch viewer-session leak + workdir test settle-race ( #601 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 01:43:21 +00:00
59c755067e
feat(fleet): F3-m2 — native Pi heartbeat + model surface + mosaic_mission_status tool ( #602 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 01:43:18 +00:00
6ffb27787e
fix(fleet): complete HB reader/writer consistency + sidecar hardening ( #599 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-22 01:22:35 +00:00
60a309d5a4
fix(fleet): heartbeat consistency — MOSAIC_HOME path + configurable interval ( #595 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 23:25:53 +00:00
31e7a4d25e
docs(framework): P4.1 — fix stale install.sh comments + cmp-equal early-exit ( #593 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 23:12:31 +00:00
ca19d57bba
feat(fleet): config-type presets + AI-free init wizard (F1) ( #591 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-21 23:07:41 +00:00
bb7d549080
feat(framework): P4 — upgrade-safe Constitution migration (both installers) ( #590 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 23:03:48 +00:00
7ced5588c9
feat(fleet): launcher heartbeat sidecar — HB for all runtimes (pi/claude/codex) ( #584 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-21 21:14:20 +00:00
c9cfe36204
docs(framework): P3.1 fast-follow — governance wording + gate scope + bare-launch note ( #577 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 18:56:50 +00:00
fc90c89913
fix(fleet): durable runtime PATH for detached agent launch ( #581 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 17:30:40 +00:00
5118be74cb
feat(framework): P3 — extract Constitution (L0) + gut AGENTS dispatcher ( #575 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 03:20:32 +00:00
bf24066a49
feat(framework): P1+P2 — public sanitization + blocking CI gate ( #572 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 02:40:11 +00:00
92316ab41e
feat(framework): P0 — MIT license + executable-leak sanitization ( #570 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 01:43:49 +00:00
b354bc8fae
docs(framework): add agency & persistence patterns to config + guides ( #543 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-06-21 01:43:36 +00:00
6dfd78f643
feat(fleet): add local canary CLI ( #563 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 17:49:01 +00:00
45e2c2aad8
docs: plan durable tmux fleet install ( #557 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 16:19:19 +00:00
57919c38d8
fix(framework/tools): wrapper hardening — TLS validation, cred-path fallback, no-CI fast-exit ( #551 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 10:16:38 +00:00