Mosaico v0.1.0
What's Changed
- fix(config): restrict userNsec to user-prompt signing only by @pablof7z in #10
- [codex] fix duplicate agent session signers by @pablof7z in #27
- docs: fix README codec -> fabric/nip29/wire references (#17) by @pablof7z in #25
- refactor(state): extract quarantine into state/quarantine.rs (#15) by @pablof7z in #24
- refactor(daemon): deduplicate spawn_detached_daemon (#16) by @pablof7z in #23
- chore: add justfile quality gates + LOC ratchet (#19) by @pablof7z in #26
- feat(launch): --channel scopes an agent into a NIP-29 room (with fuzzy picker) by @pablof7z in #28
- docs(skill): fix dead-verb index line in SKILL.md (#8) by @pablof7z in #29
- chore: make tree fmt + clippy clean (unblocks CI #20) by @pablof7z in #30
- refactor(cli): split tmux_cli.rs into submodules (#21) by @pablof7z in #31
- ci: wire quality-gate workflow (#20) by @pablof7z in #32
- refactor(cli): split debug.rs into submodules (#14) by @pablof7z in #33
- refactor(cli): split admin.rs into submodules (#14) by @pablof7z in #34
- refactor(cli): split install.rs into submodules (#14) by @pablof7z in #35
- refactor(cli): split who.rs into submodules (#14) by @pablof7z in #36
- refactor(cli): split hooks.rs under the 500-LOC ceiling (#14) by @pablof7z in #37
- chore: prune LOC ratchet after CLI splits (#14) by @pablof7z in #38
- refactor(state): extract status_outbox into state/outbox.rs [MS-state-2] by @pablof7z in #39
- refactor(server): extract server/rpc/project.rs [MS-server-1] by @pablof7z in #40
- refactor(state): extract state/channels.rs [MS-state-3] by @pablof7z in #41
- refactor(server): extract server/demux.rs [MS-server-2] by @pablof7z in #42
- fix(fabric): stop operator prompts echoing back into their origin session by @pablof7z in #43
- refactor(state): extract canonical membership concern [MS-state-4] by @pablof7z in #44
- refactor(daemon): extract server/background/ pruner + idle watcher [MS-server-3] by @pablof7z in #45
- feat(nip29): channel readiness gate — idempotent pre-publish channel provisioning by @pablof7z in #46
- fix(fail-loud): wave-1 — surface silently-swallowed errors; delete
project addby @pablof7z in #100 - fix(fail-loud): wave-2 — MEDIUM/LOW silent-swallow cleanup by @pablof7z in #101
- fix(hooks): don't mirror Codex subagent-dispatch prompts as human chat by @pablof7z in #103
- Implement agent lifecycle cleanup by @pablof7z in #114
- Unify fabric context rendering by @pablof7z in #123
- Align channel creation and status wire surface by @pablof7z in #125
- Avoid retrying ambiguous blocking RPCs by @pablof7z in #137
- Ignore stale membership roster replays by @pablof7z in #138
- Make chat reads cursor-accurate across channel trees by @pablof7z in #139
- Expose daemon storage paths in doctor by @pablof7z in #140
- Make command forensics opt-in by @pablof7z in #141
- Refuse harness install when HOME is unset by @pablof7z in #142
- Centralize unit-test env mutation guard by @pablof7z in #143
- Delete stale product spec zip by @pablof7z in #144
- Honor configured status TTL by @pablof7z in #145
- Rename read-only store drains to peeks by @pablof7z in #146
- Clean up tmux diagnostics and async probes by @pablof7z in #147
- [codex] Centralize channel project roots by @pablof7z in #148
- [codex] Make delivery loss visible by @pablof7z in #149
- [codex] Stamp schema and prune retained state by @pablof7z in #150
- [codex] Track orchestration completion per target by @pablof7z in #151
- [codex] Make ordinal identities global by @pablof7z in #152
- [codex] Separate injected echoes from awareness cursor by @pablof7z in #153
- Unify outbound publish verdicts by @pablof7z in #154
- Codify tenex-edge home path contract by @pablof7z in #155
- Document live relay probe test tiers by @pablof7z in #156
- Split channel integration tests by @pablof7z in #158
- Ratchet integration helper imports by @pablof7z in #159
- Split test recipes by prerequisites by @pablof7z in #160
- Name Nostr codec boundary honestly by @pablof7z in #161
- Poll daemon integration test evidence by @pablof7z in #162
- Share daemon handshake policy by @pablof7z in #163
- Align integration hooks with harness CLI by @pablof7z in #165
- Ratchet CLI help surface by @pablof7z in #166
- Move command forensics out of CLI by @pablof7z in #167
- Move who snapshot out of CLI by @pablof7z in #170
- Split transport secret scrubbing module by @pablof7z in #169
- [codex] Add soft LOC ratchet reporting by @pablof7z in #168
- Move fabric context out of CLI by @pablof7z in #171
- Fix daemon channel readiness integration drift by @pablof7z in #174
- Render fabric context with agent-facing names and short ids by @pablof7z in #175
- Expand LOC ratchet coverage by @pablof7z in #176
- Introduce typed CLI invocation context by @pablof7z in #177
- Move chat CLI args into messaging by @pablof7z in #178
- Move debug CLI args into debug module by @pablof7z in #179
- Move admin CLI args into admin module by @pablof7z in #180
- Move launch CLI args into tmux module by @pablof7z in #181
- Move who CLI args into who module by @pablof7z in #182
- Move publish CLI args into messaging by @pablof7z in #183
- Move invite CLI args into admin module by @pablof7z in #184
- Move install CLI args into install module by @pablof7z in #185
- Move harness CLI args into harness module by @pablof7z in #186
- Narrow CLI-owned public surface by @pablof7z in #187
- Add local relay integration CI by @pablof7z in #188
- Remove ignored Scope subscription fields by @pablof7z in #189
- Extract store schema initialization by @pablof7z in #190
- Introduce StoreReader for who snapshots by @pablof7z in #191
- Update membership docs to relay cache schema by @pablof7z in #192
- Add project metadata read-model APIs by @pablof7z in #193
- Add canonical message read model by @pablof7z in #194
- Invalidate readiness on roster materialization by @pablof7z in #195
- Split provider group state module by @pablof7z in #196
- Extract daemon subscription manager by @pablof7z in #197
- Route membership changes through provider confirmation by @pablof7z in #198
- Move chat and profile transport behind provider by @pablof7z in #199
- Enforce inbound chat membership admission by @pablof7z in #200
- Document Trellis derived-resource mapping by @pablof7z in #211
- Cap channel about text by @pablof7z in #216
- Add channel about editing by @pablof7z in #217
- Add channel archive command and hide archived channels from active fabric views by @pablof7z in #218
- Update status heartbeats, human who output, and docs by @pablof7z in #219
- Remove kind:9 auto-publish; require explicit chat write, with a reply reminder on mentions by @pablof7z in #221
- Fix tmux launch color loss (default-terminal set too late) by @pablof7z in #222
- chat write: cap messages at 600 characters instead of 300 words by @pablof7z in #224
- Adopt Trellis for deterministic reconciliation (subscriptions, status, hook-context) + explain by @pablof7z in #226
- dev-lab: anchor direct-mode backend CLIs to a real tmux pane by @pablof7z in #227
- Fix repo-wide rustfmt drift and process.rs LOC ceiling by @pablof7z in #243
- Fail fast and quiet on a broken daemon startup by @pablof7z in #242
- Add a pre-commit hook enforcing cargo fmt by @pablof7z in #244
- probe: diagnostic surface for interrogating Trellis on live state (+ unbreak master) by @pablof7z in #241
- Isolate NIP-29 integration relay state by @pablof7z in #245
- Expand Trellis commit ledger evidence by @pablof7z in #246
- Complete Trellis probe oracle diagnostics by @pablof7z in #247
- Add Trellis frontier seam ratchets by @pablof7z in #248
- [codex] Add Trellis replay capsules by @pablof7z in #249
- [codex] Wire Trellis preview simulation by @pablof7z in #250
- Promote hook_context to daemon-held authoritative graph by @pablof7z in #251
- Add probe diff and acid counterfactual checks by @pablof7z in #252
- Promote turn lifecycle to Trellis authority by @pablof7z in #253
- [codex] Promote cursor to Trellis authority by @pablof7z in #254
- [codex] Promote outbox to Trellis authority by @pablof7z in #255
- [codex] Make session_start Trellis-advisory by @pablof7z in #256
- Close Trellis authority frontier case study by @pablof7z in #257
- [codex] Add named launch commands by @pablof7z-agent in #266
- [codex] add backend management commands by @pablof7z-agent in #269
- Change roster provenance to mgmt-signed 30555 by @pablof7z-agent in #267
- [codex] Move hosted sessions to portable PTY by @pablof7z-agent in #268
- [codex] add explainable fabric validation by @pablof7z-agent in #270
- [codex] Harden explicit session anchors by @pablof7z-agent in #272
- Validate portable PTY replacement by @pablof7z-agent in #273
- [codex] Add launch initial prompt by @pablof7z-agent in #279
- [codex] Add headless mention lifecycle for Class A agents by @pablof7z-agent in #282
- [codex] Bootstrap PTY-hosted sessions by @pablof7z-agent in #280
- [codex] Add ephemeral session claim routing by @pablof7z-agent in #283
- [codex] Add Trellis mention delivery by @pablof7z-agent in #281
- [codex] Report headless no-reply exits by @pablof7z-agent in #284
- [codex] Add Class B ephemeral session lifecycle by @pablof7z-agent in #285
- [codex] Scope ephemeral claims to owning backend by @pablof7z-agent in #286
- [codex] Verify real headless resume lifecycle by @pablof7z-agent in #287
- Hide already-injected mentions from hook chatter context by @pablof7z in #288
- Render resolved recipients in fabric context by @pablof7z-agent in #289
- Add PR template to standardize issue-closing by @pablof7z in #293
- Run opencode headless on mentions (Class A resume) by @pablof7z in #292
- Exclude backend↔party traffic from hook chatter (#276) by @pablof7z in #290
- Publish eye reaction when routing a kind:9 mention to a local agent by @pablof7z in #298
- fix(outbox): exponential backoff on failed publishes to stop retry storms (#295) by @pablof7z in #296
- fix(launch-cli): dedup command suggestions, keep argv[0] binary stable by @pablof7z in #303
- refactor(cli): unify channel surface — remove chat, hierarchical paths, mkdir -p (#305) by @pablof7z in #312
- refactor(identity): per-session pubkeys — remove ordinals & durable agent keys (#306) by @pablof7z in #313
- Add MCP server transport and OAuth pairing by @pablof7z-agent in #311
- feat(fabric): members show role + @codename@host; who --expired (#308) by @pablof7z in #314
- feat(channel): channel add verb, 10-min prune, invite-wait deadlock fix, human/admin add (#307) by @pablof7z in #315
- docs: retire durable-identity/citizen/ordinal model; reposition on self-organization (#309) by @pablof7z in #316
- test(integration): update daemon_integration tests for the channel/identity redesign by @pablof7z in #317
- fix(mcp): align chat tool descriptions with shipped channel vocabulary (coherence pass) by @pablof7z in #319
- refactor(cli): remove project command; rehome list/init/edit under channel (#305) by @pablof7z in #321
- feat(chat): auto-publish agent's last response when a pty turn ends unanswered by @pablof7z in #304
- docs: reconcile philosophy corpus + arch/RPC docs with shipped model (#318) by @pablof7z in #323
- Expose agent slug in fabric context by @pablof7z in #324
- refactor: purge "project" wording — workspace binding + root channel by @pablof7z in #325
- fix(fabric): clean channel reads and status notices by @pablof7z in #327
- fix(fabric): report failed mention spawns by @pablof7z in #326
- test: fill QA coverage gaps (migrations, channel-add guards, no-project render, readiness timeout) by @pablof7z in #328
- fix: deterministic integration suite + connect off daemon startup critical path by @pablof7z in #330
- Remove role from who output by @pablof7z in #336
- fix auto-reply requester p-tag by @pablof7z in #335
- Fix agent who to render full snapshot by @pablof7z-agent in #337
- Use agent session handles for agent profiles by @pablof7z in #338
- Fix channel send ambiguity refs by @pablof7z in #339
- Fix channel add --session for live PTY sessions by @pablof7z in #340
- Fix channel create positional paths by @pablof7z in #341
- Fix channel list RPC parameter by @pablof7z in #342
- Guard NIP-29 tests from unsafe croissant fallback by @pablof7z in #343
- fix(identity): render session handles by codename, not raw session_id by @pablof7z in #344
- Update agent self line to running on backend host by @pablof7z in #345
- Rename root-facing surfaces to workspace by @pablof7z in #347
- Refine tenex-edge skill as agent society guide by @pablof7z in #346
- Remove channel add new-session path by @pablof7z in #348
- Add channel reply mention envelopes by @pablof7z in #350
- fix(cli): show session handles in pty list by @pablof7z in #349
- remove legacy compatibility surfaces by @pablof7z in #351
- feat(who): add canonical workspace awareness projection by @pablof7z in #358
- docs(skill): teach canonical workspace awareness only by @pablof7z in #360
- fix(awareness): collapse workspace root channel by @pablof7z in #362
- Publish codename-first session handles by @pablof7z in #365
- Make channel send destinations content-neutral by @pablof7z in #366
- fix(delivery): inject mentions during active turns by @pablof7z in #369
- docs: document agent status management by @pablof7z in #370
- fix(hooks): render canonical channel tree by @pablof7z in #372
- docs(delivery): remove stale working input by @pablof7z in #374
- feat(hooks): inject cross-workspace activity deltas by @pablof7z in #376
- Lease shortest session handles and resume by npub by @pablof7z-agent in #378
- feat(transport): standalone ACP/app-server harness transport engine by @pablof7z in #384
- Add durable agent identity mode by @pablof7z-agent in #381
- feat(reactions): non-disruptive agent reactions (NIP-25 kind:7) by @pablof7z in #385
- fix(daemon): survive restart without reaping live sessions by @pablof7z in #382
- feat(transport): wire ACP harness transport into agent launch by @pablof7z in #386
- feat(acp): mention delivery + headless launch + review blocking fixes by @pablof7z in #389
- fix(acp): split acp.rs to clear 500-LOC hard limit (master CI red) by @pablof7z in #390
- fix(restart): stop orphaning live supervisors + false-reviving ghosts (#387) by @pablof7z in #391
- refactor(transport): kill duplicate/dead drive-taxonomy code (#387) by @pablof7z in #392
- feat(channel): tag write recipients explicitly by @pablof7z in #396
- fix(channel): guard untagged mention attempts by @pablof7z in #397
- fix(mgmt): gate management classifier on command-shape (closes #375) by @pablof7z in #399
- Add daemon restart and stop subcommands by @pablof7z in #398
- Warn agents when they are not daemon-PTY-wrapped by @pablof7z in #405
- feat(session): add explicit self-targeted
session kill --selfby @pablof7z in #404 - feat(session): add
tenex-edge my session pty-wrap-me --selfby @pablof7z in #407 - fix(nip29): require confirmed subgroup parents by @pablof7z in #406
- fix(launch): create named workspace channels and sessions by @pablof7z in #403
- fix: make mention dispatch replay-safe by @pablof7z in #409
- Test ACP-powered agents in the tenex-edge dev lab by @pablof7z in #410
- Harden tenex-edge development live-lab scripts by @pablof7z in #411
- feat(launch): offer PTY harness picker for ACP agents by @pablof7z in #414
- Support named Codex profiles in app-server harnesses by @pablof7z in #416
- Add operator session management TUI by @pablof7z in #417
- Replace session TUI with inline picker by @pablof7z in #418
- Add blocking agent chat waits by @pablof7z in #420
- Improve session picker readability and viewport by @pablof7z in #422
- Rewrite Tenex Edge skill around self-organizing fabric by @pablof7z in #423
- feat(cli): move agent awareness under my session by @pablof7z in #424
- fix(cli): reserve half-height session picker by @pablof7z in #426
- remove NIP-29 mentions from agent-facing surfaces by @pablof7z in #429
- Discover remote session handles from kind 9000 by @pablof7z-agent in #433
- Fix launch-time session registration by @pablof7z-agent in #436
- Allow explicit who from agent sessions by @pablof7z-agent in #438
- Key session signing by authoritative pubkey by @pablof7z-agent in #439
- Remove duplicate PTY socket alias by @pablof7z-agent in #440
- Use public identity for operator session control by @pablof7z-agent in #442
- feat(profile): advertise managed agents on backend kind:0 by @pablof7z in #394
- Key inbox delivery by authoritative pubkey by @pablof7z-agent in #444
- Make session identity allocation atomic by @pablof7z-agent in #441
- Unify operator session control by @pablof7z-agent in #445
- Show unbound live sessions by @pablof7z-agent in #448
- Key durable messages by authoritative pubkey by @pablof7z-agent in #449
- Surface headless session output mode by @pablof7z in #427
- Publish agent workspace in kind 0 profiles by @pablof7z-agent in #450
- Expose agent and session identity facts by @pablof7z-agent in #453
- Make the session pubkey the sole identity by @pablof7z-agent in #454
- Add labeled Blossom attachments to channel messages by @pablof7z-agent in #456
- Harden fabric coordination guidance by @pablof7z with @Copilot in #428
- Model suspended session state canonically by @pablof7z in #419
- Align help and remove publish surface by @pablof7z-agent in #461
- Synchronize Tenex Edge skill commands by @pablof7z-agent in #463
- Rename tenex-edge to mosaico by @pablof7z-agent in #464
- Fix schema-five attachment upgrades by @pablof7z-agent in #465
- Make launch sessions resumable by @pablof7z-agent in #466
- Mark ACP sessions as non-attachable in session picker by @pablof7z-agent in #467
- Make harness bundles own agent launch policy by @pablof7z-agent in #469
- Discover installed harness agents as backend capabilities by @pablof7z-agent in #470
- Pass Codex native agents through app-server thread start by @pablof7z-agent in #473
- Replay pending inbox after daemon restart by @pablof7z-agent in #474
- Remove LLM-based session distillation by @pablof7z-agent in #477
- Expose agent session signer to harnesses by @pablof7z-agent in #479
- Reap the identity transport test PTY by @pablof7z-agent in #481
- Remove Trellis and adopt NMP as the Nostr substrate by @pablof7z-agent in #482
- Fix native profile launch routing by @pablof7z-agent in #484
- Make state schema upgrades automatic by @pablof7z-agent in #486
- Expose launchable profile combinations by @pablof7z-agent in #488
- Polish launch target selection by @pablof7z-agent in #490
- Fix mosaico-dev live lab drift by @pablof7z-agent in #494
- Rank launch targets by recent usage by @pablof7z-agent in #495
- Add native Grok live-lab coverage by @pablof7z-agent in #497
- Add fleet install verification script by @pablof7z-agent in #499
- Verify installed fleet binary by hash by @pablof7z-agent in #500
- Hide launch usage metrics by @pablof7z-agent in #503
- Install fleet binaries portably by @pablof7z-agent in #504
- Document Mosaico identity and MCP boundaries by @pablof7z-agent in #506
- Add polished agents operator UI by @pablof7z-agent in #507
- Fix bare launch flow and keep usage metadata private by @pablof7z-agent in #509
- Unify agent discovery and launch realization by @pablof7z-agent in #511
- Refine agents picker layout by @pablof7z-agent in #513
- Prevent test harness daemon recursion by @pablof7z-agent in #526
- Fix exact pubkey delivery and recovery by @pablof7z-agent in #527
- Cap injected agent descriptions at 200 characters by @pablof7z-agent in #529
- Make agents the canonical launcher by @pablof7z-agent in #531
- Complete admitted runtime architecture epic by @pablof7z-agent in #533
- Engineer managed session lifecycle by @pablof7z-agent in #534
- Migrate stale injected lifecycle fences by @pablof7z-agent in #535
- Fix hosted agent launch lifecycle by @pablof7z-agent in #538
- Improve agent picker: layout, multi-select delete, ESC-to-cancel edit by @pablof7z-agent in #537
- Fix remote MCP caller session identity by @pablof7z-agent in #540
- Enable confirmed TUI session takeover by @pablof7z-agent in #541
- Honor MCP actor recovery revocation by @pablof7z-agent in #542
- Fix kind:9 agent list rendering by @pablof7z-agent in #544
- Expand sessions picker history and filters by @pablof7z-agent in #546
- Make session history range progressive by @pablof7z-agent in #549
- Stop embedding agent rosters in hook context by @pablof7z-agent in #551
- Clarify hook-only agent roster change by @pablof7z-agent in #552
- Remove agent discovery hint from hook context by @pablof7z-agent in #553
- Persist hosted native resume IDs by @pablof7z-agent in #554
- Persist hook and RPC failure diagnostics by @pablof7z-agent in #556
- Fix OAuth audience for path-hosted MCP by @pablof7z-agent in #558
- Resume sessions by native harness ID by @pablof7z-agent in #562
- Unify sessions and agents in the operator home by @pablof7z-agent in #564
- Expand MCP surface: skill resources, reply, and dispatch by @pablof7z-agent in #565
- Make MCP access tokens non-expiring by @pablof7z-agent in #566
- Expose MCP wait capabilities by @pablof7z-agent in #568
- Prompt agents to set a session status when none is set by @pablof7z-agent in #569
- Improve session picker navigation and stability by @pablof7z-agent in #571
- Add first-class Goose ACP harness support by @pablof7z-agent in #574
- Add first-class Hermes harness support by @pablof7z-agent in #576
- Add direct agent and session command fallback by @pablof7z-agent in #577
- Document harness integration checklist by @pablof7z-agent in #582
- Discover native Hermes profiles by @pablof7z-agent in #583
- Install runtime skill from standalone binary by @pablof7z-agent in #584
- Make mosaico doctor an agent-usable repair command by @pablof7z-agent in #585
- Publish agent-first setup skill and workshop site by @pablof7z-agent in #586
- Limit Vercel uploads to static site inputs by @pablof7z-agent in #590
- Probe Doctor through an authorized NIP-29 group by @pablof7z-agent in #591
- Complete Goose harness checklist conformance by @pablof7z-agent in #592
- Prove named Hermes profiles end to end by @pablof7z-agent in #593
- Rework README pitch and add coordination screenshots by @pablof7z-agent in #595
- Lead README with handoff screenshot and add supported-harnesses logos by @pablof7z-agent in #596
- Remove empty-status agents and useless session warnings by @pablof7z-agent in #597
- Swap README screenshots: awareness on top, handoff in body by @pablof7z-agent in #598
- Move setup pitch into an Install section and add docs/install.md by @pablof7z-agent in #599
- Collapse README Install section to a single link by @pablof7z-agent in #600
- Trim README tail: drop e2e pitch, shorten License to a link by @pablof7z-agent in #601
- Bundle Croissant behind mosaico relay by @pablof7z-agent in #605
New Contributors
- @pablof7z made their first contribution in #10
- @pablof7z with @Copilot made their first contribution in #428
Full Changelog: https://github.com/pablof7z/mosaico/commits/v0.1.0