2025-09-24 - 2026-09-24
Overview
35 Releases published by 2 users
Published
skill-lifecycle-v1
Published
onboarding-v1
Published
agent-seats-v1
Published
interactive-agent-v1
Published
auto-apply-v1
Published
session-fork-v1
Published
retention-v1
Published
mission-policy-v1
Published
conductor-v1
Published
workspace-capabilities-v1
Published
sessions-v1
Published
operator-ergonomics-v1
Published
adapter-seam-v1
Published
release-model-v1
Published
mission-task-v1
Published
config-hello-v1
Published
poc-container-hello-v0
Published
v0.0.39-alpha
Mosaic Framework Constitution — Alpha
Published
mosaic-v0.0.31
mosaic v0.0.31
Published
fed-v0.2.0-m2
Federation M2 — Step-CA + Grant Schema + Admin CLI
Published
fed-v0.1.0-m1
Federation v1 — Milestone 1 (federated tier infrastructure)
Published
mosaic-v0.0.29
mosaic v0.0.29
Published
mosaic-v0.0.28
mosaic-v0.0.28
Published
mosaic-v0.0.27
mosaic-v0.0.27
Published
mosaic-v0.0.26
mosaic-v0.0.26 — Bootstrap Hotfix
Published
mosaic-v0.0.25
@mosaicstack/mosaic 0.0.25 — install UX hardening
Published
mosaic-v0.0.24
mosaic v0.0.24
Published
v0.2.0
Published
v0.1.0
Published
v0.0.8
v0.0.8 — Phase 7: Feature Completion
Published
v0.0.7
v0.0.7 — Phase 6: CLI & Tools
Published
v0.0.6
v0.0.6 — Phase 5: Remote Control
Published
v0.0.5
v0.0.5 — Phase 4: Memory & Intelligence
Published
v0.0.4
v0.0.4 — Phase 3: Web Dashboard
Published
archive/ms24-fork-20260823
741 Pull requests merged by 24 users
Merged
#1502 fix(git-tools): issue-comment.sh resolves API base without monolith GITEA_URL
Merged
#1332 fix(#1257): confirm delivery by draft transition, not prompt detection (adopts #1262)
Merged
#1492 docs: make Portainer optional deployment path
Merged
#1490 fix: use canonical dogfood seat identity
Merged
#1488 compose: add wrapper-first dogfood workspace
Merged
#1480 fleet: split-home-safe mosaic launcher (T110, P5-RM-009 stack side)
Merged
#1486 compose: pin MOSAIC_STORAGE_TIER=standalone (A5d formal-run fix)
Merged
#1485 compose: stack profile — one-command standalone deployment (A5)
Merged
#1484 docs: containerization plan + PRD D15 (tiered deployment, standalone v1 bar)
Merged
#1483 feat(gateway,cli): agent enrollment command family (M4-4b)
Merged
#1482 db: agent enrollment schema (M4-4a, migration 0021)
Merged
#1481 docs: agent enrollment command family v1 design (M4-4-0)
Merged
#1476 mosaic comms: socket resolution is tool-owned (B2)
Merged
#1474 R3: --body-file <path>/- across body/comment carriers
Merged
#1475 D1/D3: --number canonical on issue wrappers, --labels alias on list wrappers
Merged
#1479 brain/gateway: prohibit mission_tasks.status as a write source (M4-3a phase 1)
Merged
#1478 docs: P0 field-map currency verification at next@abb0c936 (M4-3a-0)
Merged
#1472 P1b: read-only viewers join the R1/R4 usage contract
Merged
#1466 framework tools/tmux: agent-send socket default resolution + ambiguity guard (B1)
Merged
#1473 mosaic fleet logins: per-seat credential pass-through (P4 gap closure)
Merged
#1477 docs: contract 2 Amendment 1 — company-CRUD capability (S2 follow-up)
Merged
#1471 pr-merge --base-line: gated intra-line exception (B5)
Merged
#1470 mosaic coord: board subcommand + roll alias (P3 gap closure)
Merged
#1465 feat(hierarchy): M4-1b-ii hierarchy command family, grant evaluation, visibility
Merged
#1468 p0 line landing: coord board/roll + wrapper usage contract + dispatch layer (successor to #1467)
Merged
#1463 mosaic CLI: embedded brain-tool dispatch layer (watch, q, comms)
Merged
#1464 framework tools/git: R1/R4 usage-error contract across 16 wrappers (P1, census-corrected per review 358)
Merged
#1462 framework tools/git: issue-comment R1/R4 usage-error contract (sync from brain)
Merged
#1439 docs: deployment mode and conversion contract (S2 contract 6)
Merged
#1438 docs: tool-gateway mapping contract (S2 contract 5)
Merged
#1461 docs: company visibility classes (Ruling 4b amendment, contracts 1+3)
Merged
#1436 docs: RBAC grant model contract (S2 contract 2)
Merged
#1460 feat(hierarchy): audit event + outbox machinery (M4-1b-i, contract 1 §5.2)
Merged
#1459 feat(db): hierarchy record class schema + witnesses (contract 1, M4-1a)
Merged
#1458 docs: T78 official CLI capability migration contract
Merged
#1443 docs: API contract artifacts contract (S2 contract 9)
Merged
#1435 docs: hierarchy schema contract (S2 contract 1, D2)
Merged
#1441 fix(mosaic): retry the Invariant R pi version probe under CI load
Merged
#1454 ci(web): Phase P6 — vite build + headless E2E gate on every trunk merge (#1445)
Merged
#1453 P5: SPA cutover — retire Next.js, gateway serves the Vite bundle (#1444)
Merged
#1452 fix(docker): copy scripts/ into appservice builder before pnpm install
Merged
#1440 docs: custody pointer and consent schema contract (S2 contract 7)
Merged
#1437 docs: onboarding wizard contract (S2 contract 3)
Merged
#1442 docs: roll-up projection contract (S2 contract 8)
Merged
#1433 docs: identity account-lifecycle contract (S2 contract 4)
Merged
#1434 feat(web): port settings and admin surfaces into the SPA (Phase P4-2)
Merged
#1429 fix(gateway): scope /api/teams endpoints to team membership (#1428)
Merged
#1427 ci: publish web+appservice sha images on next (#1407)
Merged
#1425 docs: north-star PRD rewrite (D1-D14), ROADMAP, kanban SOT Amendment A1
Merged
#1424 ci: enable turbo remote cache on trusted publish events
Merged
#1423 fix(#1394): recover-token headless — dual path (--email flag + piped stdin) with documented precedence
Merged
#1422 fix(#1390): gateway uninstall headless — --yes/--remove-data; non-TTY without consent fails loud
Merged
#1421 fix(#1392): review-285 N1+N2 follow-up — env has no config authority in schema-check; verification throws fatal at install
Merged
#1419 fix(#1391): boot-time ValidationPipe metatype self-check — fail loud at startup
Merged
#1416 feat(git-tools): consume .mosaic/repo.json declarations in compat mode (T51 WP5b)
Merged
#1417 feat(tools/git): grant-reviewer.sh org-team reviewer grant with fail-closed read-back (#1415)
Merged
#1401 fix(#1395): accounts.issuer column + credential-only backfill — password auth on fresh installs
Merged
#1412 ci(publish): serialize workspace-consuming image builds after publish-next-npm (#1411)
Merged
#1410 fix(#1408): mosaic-agent@ condition arms on either home shape
Merged
#1409 fix(#1408): legacy-socket launch guard + seat launch.sh preference
Merged
#1405 fix(ci): restore workspace manifests after publish pin transform (#1404)
Merged
#1403 fix(#1392): hash-ledger migrations + install-time schema verification (closes #1392, closes #1402)
Merged
#1400 ci(publish): pin next-channel @mosaicstack deps to exact same-pipeline builds (#1389)
Merged
#1388 test(git-tools): wrapper-guard harness distinguishes tool failure from drift (#1380-FF)
Merged
#1379 feat(framework): mosaic doctor structure-anchor provisioning check (T51 WP0b)
Merged
#1383 fix(fleet): resolve-then-validate symlink guard + framework helper resolution (#1380)
Merged
#1378 ci(mosaic): repo-structure declaration CI gate (T51 WP5c)
Merged
#1377 docs(mosaic): declare repo structure v2 (T51 WP2a)
Merged
#1376 fix(git-tools): pr-create API fallback resolves base from forge default branch (E4)
Merged
#1373 fix(git-tools): admin-gated --no-ci-expected merge assertion for CI-less repositories
Merged
#1365 fix(git-tools): issue-view shows comment bodies and names the real tea failure (#1357)
Merged
#1363 fix(tmux): locate the REPL input box by shape, not by a Claude-only glyph
Merged
#1361 fix(#1356): tea login resolution fails closed on a declared git identity
Merged
#1354 docs(git-wrappers): correct the stale --login fallback and document the test suite's identity split
Merged
#1350 docs(W4): document contract — stamp kind and status on 104 live docs
Merged
#1352 fix(git-wrappers): no --login must use the caller's own credential, not a guessed shared login
Merged
#1297 fix(fleet): lease-broker activation, symlink-safe unit placement, named launch refusal — Wall 6 (#1292)
Merged
#1339 fix(lease-broker): no lease held is a no-op success, not a denied transition
Merged
#1337 docs(fleet): tier the north star and declare the tier-0 operator surface
Merged
#1335 fix(#808): never borrow a session identity for non-tmux senders
Merged
#1330 fix(#1327): sentinel-managed PATH block, default-home-only profile writes
Merged
#1215 docs: define main/next branch model, sequencing, responsibilities, and merge process (#1214)
Merged
#1334 fix(git-tools): pr-merge queue guard reads CI status from the BASE repo for fork PRs (B1)
Merged
#1296 scratchpads: fleet identity/comms/mosaic-tree continuation record (2026-08-17)
Merged
#1217 docs(l0): parameterize hard gates on the project's integration trunk (#1216, Option A)
Merged
#1258 fleet: put the bootstrapped Node on PANE_PATH (#1256)
Merged
#1316 guides: two measurement rules about pinned tool versions
Merged
#1189 fix(#1179): require security authority wiring
Merged
#1326 docs(ci): state the measured push-CI model in ci.yml's when-comment
Merged
#1324 merge: absorb main into next — 23-commit divergence (08-05..13 base=main window)
Merged
#1329 ci: pin ci-base to immutable lock-9cb7ffcd8828 (Closes #1328)
Merged
#1325 fix(#1323): remove legacy credential read and force-merge recipe from mosaic-gitea
Merged
#1129 fix(git-tools): ci-queue-wait — Gitea statuses:null no longer malformed; CI-less repos pushable again
Merged
#1322 fix(#1320): placeholder-ize private-network topology, drop raw-curl force-merge recipe
Merged
#1319 skills: fold agent-skills into the monorepo, single install path, promote ms-unslop (plan phase D)
Merged
#1313 guides: add SEAT-IDENTITY and FLEET-COMMS; harden CODE-REVIEW evidence rules
Merged
#1311 git credentials: fail closed, and read a seat's token from its own slot
Merged
#1308 feat(quality-rails): typed evaluator absorbs QC-19/QC-20; verify-release wiring (RI-3-002, #1275)
Merged
#1299 docs(ri-050): forge fail-closed docs + TASKS status catch-up (#1275)
Merged
#1302 docs(ri-050): RI-3-001 complete quality-rails probe inventory (#1275)
Merged
#1307 fix(doctor): greenfield brain lock-in note (fred's #1301 follow-up, #1288)
Merged
#1305 test(ri-050): RI-1-002 publish-gate negative controls (#1275)
Merged
#1300 feat(ri-050): RI-5-001 typed freshness states and stale-safe Mission Control surfaces (#1275)
Merged
#1294 feat(prd): one transitional PRD authority — PrdService, mission linkage, labeled export, conflict-aware import (RI-4-001, #1275)
Merged
#1293 fix(macp): fail-closed typed gate states — RI-2-002 (#1275)
Merged
#1278 fix(ri-050): forge fails closed without providers; explicit typed simulation (#1275)
Merged
#1301 feat(doctor): brain-home fleet-state check (#1298 follow-up)
Merged
#1306 fix(ci): image pushes read the registry secrets that exist (#1275)
Merged
#1304 test(gateway): cross-user-isolation cleanup honors dbAvailable — unblocks gated publish verify (#1275)
Merged
#1277 feat(ri-050): bind next publication to exact-commit terminal verification (#1275)
Merged
#1276 docs(ri-050): bootstrap release-integrity workstream for 0.0.50 (#1275)
Merged
#1298 feat(fleet): brain-home split — fleet state under ~/.mosaic, templates stay config-home
Merged
#1270 fix(ci): unwire test-start-agent-session.sh, restore its signed exclusion — unblocks every PR on next
Merged
#1245 fix(fleet): tell the operator when the fleet transport is missing (#1240)
Merged
#1252 test(#1017): wire in four CI-fit shell suites, drop their signed exclusions
Merged
#1244 fix(fleet): fail the agent launcher when the pane cannot survive (#1241)
Merged
#1243 fix(fleet): let ps/install work on a roster-v2 fleet, and refuse add/remove honestly (#1237 piece A)
Merged
#1242 fix(installer): pin umask and set the 0700 modes the fleet boundary requires (#1236)
Merged
#1229 fix(installer): make a greenfield install actually work — node bootstrap, PATH, wizard profile
Merged
#1210 docs: establish canonical documentation architecture
Merged
#1207 fix(lease): raise capability-probe timeout to 10s on both halves (#869)
Merged
#1200 docs(tools): index pull request edit wrapper
Merged
#1174 framework: make tool discoverability, workspace placement and model tiering mechanical
Merged
#1195 fix(framework): detect installed tool drift (#1194)
Merged
#1173 feat(git-tools): add pull request edit wrapper (#1080)
Merged
#1172 refactor(chat): route browser chat through one runtime (P3 Slice-Zero Task 5)
Merged
#1109 feat(lease): verified lease-remediation stack (rebased onto next) — promotion trigger + promote CLI + carve-out + TTL
Merged
#1170 P3 Slice Zero, Task 4 — replace Web free-text selection with the structured harness catalog
Merged
#1164 ci: provision Pi runtime 0.84.1 in the test step (Invariant R)
Merged
#1165 docs(framework): adopt MOS-STE writing standard onto next (from #965)
Merged
#1169 feat(gateway): generic harness catalog + selection HTTP surfaces (P3 Slice Zero, Task 3)
Merged
#1022 fix(git): accept http/https as one scheme class in comment URL verification (#991)
Merged
#1168 feat(gateway): harness registry, fake adapter, no-substitution suite (P3 Slice Zero, Task 2)
Merged
#1167 fix(gateway): resolve InteractionCoordinationService handoff factory via optional DI token (#1145)
Merged
#1166 feat(types): generic harness contracts (P3 Slice Zero, Task 1)
Merged
#1024 fix(git): #1007 suite hermeticity — pin repo-local mosaic.gitIdentity in five test suites
Merged
#1107 fix(shell): remove wake validation pipe hazards
Merged
#1147 docs(webui): Phase P structure & migration map
Merged
#1134 fix(installer): propagate wizard gateway failures
Merged
#1130 fix(installer): require Node 22 for the --next lane
Merged
#1127 fix(security): mosaic-init RCE — eval on prompt answers → printf -v (#1115)
Merged
#1154 P3-R1: repair routing health-enum (#1) + wire /mcp command (#5)
Merged
#1153 P4-1: read-only Projects + Tasks SPA pages + dev-port pins
Merged
#1151 P3 — Typed SPA chat (Phase P webUI)
Merged
#1152 feat(pi): add persistent Mosaic /goal controller
Merged
#1148 fix(ci): make queue guard purpose-sensitive
Merged
#1140 fix(gateway): gate FederationModule on tier === 'federated' (#1138)
Merged
#1144 P2 — web SPA data layer + same-origin auth
Merged
#1142 fix(docker): gateway image — git in runner, MOSAIC_ROOT workspace dir, scripts/ in builder, EXPOSE 14242
Merged
#1143 feat(web): P1 — Vite + React Router skeleton beside Next (Phase P RFC, increment 1/6)
Merged
#1141 fix: break-C — install-hooks no-ops without git; web image builds @mosaicstack/web
Merged
#1131 docs: propose native Claude WebUI bridge
Merged
#1106 fix(shell): remove test harness pipe hazards
Merged
#1105 fix(shell): remove runtime early-exit pipe hazards
Merged
#1100 fix(fleet): make framework shell assertions SIGPIPE-safe
Merged
#1073 fix(fleet): propagate roster git identity
Merged
#1085 fix(tools/git): issue-close.sh silently dropped the closing comment
Merged
#1094 test(gateway): size the enrollment clamp tolerance to CI jitter, not to a fast machine (closes #1090)
Merged
#1086 feat(tools/git): explain tea's misleading user does not exist error (stale token, not a missing account)
Merged
#1089 fix(tools/git): detect-platform died silently outside a repo, taking every wrapper with it
Merged
#1066 feat(pr-merge): preserve linked authors in squash messages
Merged
#1060 fix(ci): remove upgrade rollback signal race
Merged
#1062 test(ci): make queue guard harness deterministic
Merged
#1041 chore(sync): merge main → next (B1) — resolve 8 conflicts, restore next current
Merged
#1036 chore(release): @mosaicstack/mosaic 0.0.49 — ship RM-03 guard fix to release channel
Merged
#1032 fix(rm-03): make CI queue guard fail on asserted non-readiness
Merged
#1033 RM-61: prove ci-postgres teardown discrimination
Merged
#1028 docs(remediation): mission-state snapshot at the RM-01 seam
Merged
#1027 RM-01: reproducible checkout — the pre-push gate fails on code, not environment
Merged
#1026 docs(remediation): mission charter + reconciled execution backlog
Merged
#1025 fix(hygiene): .prettierignore must exclude Python build/test artifacts
Merged
#1018 feat(quality): CI test-membership guard — enumeration can no longer silently under-run the disk (#1017)
Merged
#993 fix(wake): close fd 9 in the detector's sleep child so a dead detector's lock dies with it
Merged
#1006 fix(git): pr-review.sh — surface the provider's stated reason, drop the hardcoded #865 attribution
Merged
#1001 fix(wake): #984 fatal source guard + #985 absorb re-scan — #973 follow-up batch
Merged
#983 fix(wake): three-valued grep verdicts — has_match/count_lines across all ten suites (closes #973)
Merged
#974 feat(git): push-guard — refuse verifications satisfied by the null case (closes #975)
Merged
#968 docs(wake): #953 dead-letter retention recorded as load-bearing at the write site
Merged
#967 fix(wake): #952 quarantine-audit clean sweep names BOTH unprovable residual classes
Merged
#964 feat(wake): #958 A11 preimage.sh — durable provenance for the operator-side preimage definition
Merged
#951 fix(wake): #946 digest ack watermark clamped at quarantined seqs — disclose AND clamp
Merged
#945 fix(wake): #944 path becomes a hard-locator arm — detector-shape actionable entries pass the §2.1 gate
Merged
#943 fix(wake): #942 follow-up — whole-string knob validation (grep line anchors admit multi-line values)
Merged
#942 fix(wake): #941 follow-up — validate WAKE_SNAPSHOT_TS_FUTURE_SLACK before arithmetic (poll-never-fails)
Merged
#941 feat(wake): #940 snapshot-datable digests — adapter fd-3 snapshot-metadata channel
Merged
#936 fix(wake): #934 mount-free, privilege-invariant seq-integrity fault injection (T9/T11 run in non-priv CI)
Merged
#935 fix(wake): #932 stop reconciler re-enumerating already-CONSUMED detector state
Merged
#933 fix(wake): #917 gate the final observed_seq cursor write + observed.set/cursor consistency (defense-in-depth)
Merged
#931 fix(wake): #925 framework-ship canon fallback-wake (systemd timer + schema bound + A10 install/validate) — F7 out of the box
Merged
#930 fix(wake): #913 installer adoption gaps — _lib dep-check fail-loud + mosaic-wake.service systemd-search-path link+validate
Merged
#929 fix(wake): #924 route dead-letter quarantine alarm via WAKE_ALARM_SINK_CMD with per-observed_seq dedup (G2a)
Merged
#928 fix(wake): #927 enqueue TOCTOU — move stale-tmp cleanup off the hot enqueue path (no concurrent in-flight-write clobber)
Merged
#926 test(wake): #923 de-flake T10 concurrent-enqueue race (deterministic barrier)
Merged
#922 fix(wake): #920 quarantine render-refused drain entry (no head-of-line block) + reconciler enumerations render orientation-tier (reconciled:true, render-tier not class=digest)
Merged
#921 fix(wake): #912 exercise the digest/HMAC trust suite in real CI (fix runner divergence + openssl + hard-require)
Merged
#916 fix(wake): #914 digest renderer — WAKE_AGENT-prefixed ack line + digest-class locator threading
Merged
#919 test(wake): #918 de-flake T7 ack-no-network-block (sub-second timing)
Merged
#915 fix(wake): #908 unify observed_seq on a single store-side allocator (dissolve detector-private-counter seam)
Merged
#911 feat(wake): W7 A10 idempotent installer + mosaic-wake.service (component-manifest, Gate-A, blank-reset retire, snapshot-guard, fail-closed install-validate)
Merged
#910 feat(wake): W6 — off-host dead-man beacon + pluggable alarm-sink adapter
Merged
#909 feat(wake): W5 — synthetic-canary FN-oracle + source-parity reconciler
Merged
#907 feat(wake): W4 — per-host delta-gated detector daemon (fail-loud source semantics, enqueues to W2 store)
Merged
#906 fix(wake): digest hard-locator gate covers top-level .claim entries (Closes #905)
Merged
#904 feat(wake): W3 — cumulative-state digest renderer + non-circular HMAC signer
Merged
#902 feat(kbn): land KBN-101 Envelope A v6 (rc.20) — declarative sink-RBAC + RLS write-source (Form A)
Merged
#903 feat(wake): W2 — three-cursor durable store + RECEIVED/CONSUMED ack-wrapper + watch-list schema
Merged
#901 chore(framework): wire agent-send.test.sh into CI test:framework-shell (W1 follow-up)
Merged
#895 fix(framework): send-message.sh fail-loud submission verdict + regression tests (Patch 6)
Merged
#894 feat(framework): accept digest message class in agent-send.sh (W1)
Merged
#900 fix(lease-broker): recovery_runtime_unittest wait_ready() connect-probe (co-equal CI flake, cherry-pick #898)
Merged
#898 fix(lease-broker): wait_ready() polls real connect-readiness not socket-file existence (flaky CI race)
Merged
#896 fix(framework): pr-review.sh -r/--repo + -H/--host overrides + UA + repo preflight (Patches 5/5c)
Merged
#893 docs(framework): add WAKE-DOCTRINE.md guide (W0)
Merged
#888 feat(comms): P1 presence — minimal Synapse + fleet presence room + mosaic.presence heartbeat + liveness
Merged
#886 docs(rfc): add RFC-001 (MACP/Matrix-native comms) + RFC-002 (install/config/topology)
Merged
#890 fix(framework): detect-platform get_gitea_token fail-loud on absent per-slot token (Patch 2b)
Merged
#883 fix(update): mosaic update runs the install-ordering guard post-reseed (#882 --sync-only bypass)
Merged
#881 feat(869-c4): enforcement/activation version-coupling assertion
Merged
#879 feat(mosaic): install-ordering guard for lease-enforcement hook wiring (#869 Point-1 C2)
Merged
#878 feat(869-c5): mosaic doctor surfaces wired-but-unactivatable lease enforcement
Merged
#876 feat(tools/git): per-agent Gitea identity (git-credential-mosaic + get_gitea_token)
Merged
#877 fix(tools/git): pr-review.sh _belongs case-insensitive repo-slug compare
Merged
#866 fix(tools): use top-level tea comment invocation and formalize --login passthrough (#865)
Merged
#871 feat(lease-broker): C3 broker supervisor (#869)
Merged
#870 feat(mosaic): leaseEnforcementActivatable() capability probe (#869 C1)
Merged
#874 fix(tools/git): ci-queue-wait.sh treats 404 branch-absent as queue-clear
Merged
#868 feat(orchestrator): board-roll.sh — auto-roll LIVE board to LEDGER under byte cap
Merged
#863 skills: add glpi-* family (solve, followup, sweep, list, create)
Merged
#861 fix(mosaic): de-flake mutator-class lease gate TTL-expiry test
Merged
#859 fix(#812 follow-up): normalize detect-platform.sh host-match port comparison by scheme
Merged
#858 fix(framework): install deps on worktree bootstrap + legible deps-preflight at gate seam (#856)
Merged
#857 fix(framework): drop unsupported --comment from tea pr approve/reject; route review body via durable comment (#835)
Merged
#853 docs(tasks): FCM-M5-001 done — verified completion evidence (supersedes #848)
Merged
#852 fix(framework): durable Gitea comment posting in pr-review.sh via REST + read-back verify (#812)
Merged
#851 fix(lease-broker): de-flake recovery_runtime b2 broker-socket ConnectionRefused race (#849)
Merged
#789 docs(fleet): add operator configuration guide
Merged
#847 WI-7 #834: T-C server-side branch-protection posture + R1 honesty amendment
Merged
#846 WI-6 (#833): constrained recovery command + mosaic-context-refresh skill wrapper
Merged
#845 WI-5 #832: Receipt-challenge protocol (compaction-refresh, milestone 188)
Merged
#844 WI-4 (#831): verbatim-hashed normative fragments (B_payload/H_payload)
Merged
#842 WI-3 (#830): compaction observers → revoke + D4 same-PID generation auto-revoke
Merged
#839 fix(#838): bound broker reply deadlines + fail-close empty-read; de-flake acceptance harness
Merged
#837 feat(mosaic): enforce whole mutator-class lease gate
Merged
#836 feat(mosaic): add authenticated external lease broker
Merged
#826 feat(mosaic): add secure skill registration CLI
Merged
#825 fix: reject unknown installer arguments
Merged
#818 fix(#792): fleet roster ENOENT actionable exit + installer heading printf
Merged
#815 fix: fetch actual Gitea PR head for Codex reviews
Merged
#821 ci: bake jq into the prebuilt test image
Merged
#819 ci: bake git into the prebuilt test image
Merged
#813 feat(fleet): mosaic fleet regen — regenerate roster-derived projections (PR3 of #791)
Merged
#811 feat(mosaic): durable pre-update snapshot + verify net + restore CLI (#791 PR2)
Merged
#802 feat(mosaic): manifest-owned upgrade guard so updates never wipe operator config (#791)
Merged
#810 fix(glpi): accept HTTP 206 in list wrappers (#807)
Merged
#809 fix(tmux): correct cross-socket sender identity (#808)
Merged
#806 feat(mosaic): claudex isolated config + env-inject + yolo wiring (P2–P4 of #790)
Merged
#793 feat(mosaic): claudex proxy preflight + lifecycle (P1 of #790)
Merged
#788 feat(fleet): add reviewed v1-to-v2 migration preview
Merged
#787 fix(fleet): enforce exact comms authority
Merged
#786 test(fleet): cover reconciler lifecycle gates
Merged
#785 feat(fleet): reconcile local roster state
Merged
#774 docs(kbn): freeze KBN-101 database role split contract
Merged
#773 feat(fleet): add generation-guarded agent CRUD
Merged
#772 feat(fleet): enforce generated environment boundary
Merged
#770 test(fleet): validate shipped artifact dispositions
Merged
#768 feat(fleet): add shared role semantics
Merged
#757 feat(mos): add logical identity connector fencing
Merged
#765 docs(#753): clear KBN-010 threat and schema gate
Merged
#764 feat(fleet): add roster v2 structural compiler
Merged
#763 Fixes #756
Merged
#760 docs(fleet): define declarative configuration M0
Merged
#762 docs(mos): format Option 2 qualification report
Merged
#759 docs(mos): preserve Option 2 qualification evidence
Merged
#752 docs(#751): Publish native Kanban/SOT canon
Merged
#750 docs(tess): remediate M5 qualification findings
Merged
#748 De-hardcode orchestrator and interaction agent names
Merged
#749 docs(tess): ledger sync m4 — M5-003 done, #745/#746 merged
Merged
#746 docs(#744): complete Tess documentation gate
Merged
#745 docs(tess): ledger sync m3 — M5-001 + M5-002 done
Merged
#744 feat(agent): add Matrix native runtime provider
Merged
#743 docs(tess): ledger sync — W-001 3-of-3 merged, M5-002 approved, M5-001 in TDD
Merged
#742 docs(tess): add migration evidence set
Merged
#741 docs(tess): sync M4 tracking to merged reality (M4 in-progress / gate-pending)
Merged
#740 feat(gateway): register Hermes runtime provider
Merged
#739 feat(memory): bind operator plugin to agent sessions
Merged
#737 feat(gateway): expose Mos coordination boundary
Merged
#738 feat(agent): add Hermes transitional capability matrix
Merged
#736 feat(memory): add operator retrieval plugin
Merged
#735 feat(tess): add Mos coordination boundary
Merged
#734 feat(agent): add transitional Hermes runtime adapter
Merged
#733 fix(tess): route bare Discord approvals
Merged
#732 feat(tess): wire durable interaction surfaces
Merged
#730 feat(#709): add configured Discord interaction binding
Merged
#731 feat(tess): add generic interaction CLI
Merged
#729 feat(tess): persist durable session state
Merged
#728 feat(tess): add configurable Pi interaction service
Merged
#727 docs(tess): sync M1 ledger to merged state; M1-V Mos-owned
Merged
#726 feat(tess): add safe runtime observability
Merged
#725 fix(tess): redact chat persistence and egress
Merged
#724 feat(tess): add roster-bound tmux fleet provider
Merged
#720 fix(#707): scope session GC retention
Merged
#722 feat: add Tess runtime provider registry
Merged
#716 feat(#707): secure Discord service ingress
Merged
#718 fix(tess): enforce command authorization approvals
Merged
#717 fix(security): enforce Tess MCP server identity
Merged
#721 ci: restrict push-event CI to protected branches (halve feature-branch load)
Merged
#719 feat(tess): define runtime provider contract
Merged
#715 fix: enforce Tess session ownership scope
Merged
#714 restore Tess markdown formatting gate (v2, non-author)
Merged
#705 Fixes #703
Merged
#712 docs(tess): define Pi-native interaction agent mission
Merged
#702 fix(tools/git): -h/--help now exits 0 across 7 wrappers
Merged
#700 fix(tools/_lib): /etc/mosaic host-level fallback for credential resolution
Merged
#698 fix(wizard): honor MOSAIC_GATEWAY_SKIP_NPM_INSTALL — unblock install.sh --dev gateway testing
Merged
#697 fix(tools/tmux): unique per-invocation paste buffer; track auto-submit-drafts.sh
Merged
#694 docs(bootstrap): add python-is-python3 to agent-host prerequisites
Merged
#692 fix(wizard): avoid rerunning completed setup steps
Merged
#691 fix(wizard): report gateway failures before success summary
Merged
#690 fix(wizard): resolve skills sync script path
Merged
#689 fix(gateway): disable Redis consumers on local tier
Merged
#688 feat(installer): prefer npm next lane
Merged
#687 ci(#462): add durable next publish pipeline
Merged
#686 feat(installer): add next integration lane
Merged
#685 test(#462): add federation M3 integration coverage
Merged
#683 feat(#462): add federation get verb
Merged
#682 feat(#462): add federation list verb
Merged
#680 fix(fleet): guard mosaic fleet restart against tight-loop re-entry race
Merged
#681 feat(installer): --dev flag builds CLI + gateway from source
Merged
#672 feat(#462): add federation scope enforcement service
Merged
#679 style(federation): re-run prettier on TASKS.md (unblock format:check)
Merged
#677 fix(fleet): raise fleet-personas.spec timeout to 30s (mirror #665)
Merged
#678 docs(federation): record M3-07/09 merges + fix M3-11 dependency DAG
Merged
#674 feat(#462): add federation capabilities verb
Merged
#673 feat(#462): add federation query source routing
Merged
#671 docs(federation): sync M3 backlog to origin/main reality
Merged
#670 chore(release): @mosaicstack/mosaic 0.0.48
Merged
#665 feat(fleet): provision roster from system-type profile (H3)
Merged
#669 fix(fleet): export MOSAIC_AGENT_CLASS into the agent pane so personas inject
Merged
#668 fix(release): republish @mosaicstack/db 0.0.4 with BacklogService; mosaic 0.0.47
Merged
#666 chore(release): mosaic 0.0.46 (persona contracts live)
Merged
#667 docs(fleet): record per-agent model switch in north star
Merged
#663 feat(fleet): export MOSAIC_AGENT_CLASS into agent env (A3a)
Merged
#664 feat(fleet): inject persona contract at launch (A3b)
Merged
#662 feat(fleet): dedicated orchestrator persona, split from planner
Merged
#661 feat(fleet): update-surviving persona customization (H4)
Merged
#660 feat(fleet): system-type profiles (H2)
Merged
#659 feat(fleet): cross-domain baseline persona library (H1)
Merged
#658 feat(fleet): North Star scope — general-purpose system, personas & system profiles (workstream H)
Merged
#657 feat(fleet): native Mosaic backlog on @mosaicstack/db (atomic claim + TTL)
Merged
#656 feat(fleet): add machine-readable NORTH_STAR.yaml + Markdown projection
Merged
#655 feat(fleet): seed role registry markdown library
Merged
#654 chore(release): mosaic CLI 0.0.45
Merged
#653 fix(fleet): report idle agents as available, reserve stuck for genuine blocks
Merged
#652 chore(release): mosaic CLI 0.0.44
Merged
#651 fix(fleet): derive pane idle from window activity fallback
Merged
#650 chore(release): mosaic CLI 0.0.43
Merged
#649 feat(fleet): classify agent readiness in fleet ps
Merged
#648 chore(release): mosaic CLI 0.0.42
Merged
#645 fix(fleet): pre-trust claude agent workdir to clear the folder-trust gate (#644)
Merged
#646 fix(update): re-seed framework on version drift, not just in-command updates (#642)
Merged
#647 fix(db): stop pglite migration tests flaking CI (timeout + WASM OOM)
Merged
#641 fix(tools): default AGENT_WORK_ROOT to $HOME/mosaic/agent-work
Merged
#552 feat(tmux): agent-send.sh --class triage tag for the comms daemon
Merged
#640 chore(release): mosaic CLI 0.0.41
Merged
#639 chore(ci): bump ci-base image node 22 → 24-alpine
Merged
#635 ci: eliminate cold pnpm install via pre-baked CI base image (Phase 1)
Merged
#638 feat(fleet): comms-block emitter + FLEET-LAUNCH runbook (#633)
Merged
#637 CI: add pre-baked ci-base image (producer) [Phase 1a]
Merged
#632 fix(install): preserve user fleet data on re-seed + refresh active units (CRITICAL)
Merged
#630 refactor(fleet): rename tmux socket mosaic-factory → mosaic-fleet
Merged
#629 docs(fleet): consolidate north-star doctrine (budget + control plane + identity)
Merged
#624 chore(release): mosaic CLI 0.0.40
Merged
#627 fix(fleet): consume model_hint + fix socket-default trap (stand-up fixes)
Merged
#621 feat(fleet): onboarding-injection — comms cheat-sheet + peer roster per agent
Merged
#618 feat(fleet): F4 Phase 2a — Matrix CS-API connector client + factory
Merged
#617 feat(fleet): F4 Phase 1 — chat connector abstraction + Matrix design
Merged
#615 feat(fleet): enhancer role + two-agent floor (orchestrator + enhancer)
Merged
#613 docs(fleet): orchestrator+enhancer two-agent floor + role library + Discord plugin north-star
Merged
#619 ci(publish): gate kaniko image builds + publish on changed paths (CI throughput)
Merged
#612 fix(fleet): boot-survival symmetry — disable-on-remove + add-enable + init-R5
Merged
#610 feat(mosaic): mosaic update re-seeds framework + relaunches agents (R13)
Merged
#607 feat(framework): P6 — docs + compliance matrix + resident-budget CI
Merged
#608 chore(release): bump @mosaicstack/mosaic 0.0.38 -> 0.0.39
Merged
#605 feat(mosaic): P5 — overlay composer (compose-contract + *.local overlays)
Merged
#603 chore(release): bump @mosaicstack/mosaic 0.0.37 -> 0.0.38
Merged
#601 fix(fleet): watch viewer-session leak + workdir test settle-race
Merged
#602 feat(fleet): F3-m2 — native Pi heartbeat + model surface + mosaic_mission_status tool
Merged
#599 fix(fleet): complete HB reader/writer consistency + sidecar hardening
Merged
#597 chore(release): bump @mosaicstack/mosaic 0.0.36 -> 0.0.37
Merged
#596 feat(fleet): orchestrator-mutable fleet — fleet add/remove (F5/R9)
Merged
#595 fix(fleet): heartbeat consistency — MOSAIC_HOME path + configurable interval
Merged
#588 docs(fleet): Fleet Suite PRD (init/configure/operate + Mos-on-Discord)
Merged
#593 docs(framework): P4.1 — fix stale install.sh comments + cmp-equal early-exit
Merged
#591 feat(fleet): config-type presets + AI-free init wizard (F1)
Merged
#590 feat(framework): P4 — upgrade-safe Constitution migration (both installers)
Merged
#586 feat(fleet): fleet ps surfaces unmanaged socket sessions
Merged
#585 chore(release): bump @mosaicstack/mosaic 0.0.35 -> 0.0.36
Merged
#584 feat(fleet): launcher heartbeat sidecar — HB for all runtimes (pi/claude/codex)
Merged
#583 feat(fleet): auto-enable units on install + drift recognizes wrapped runtimes
Merged
#582 chore(release): bump @mosaicstack/mosaic 0.0.34 -> 0.0.35
Merged
#577 docs(framework): P3.1 fast-follow — governance wording + gate scope + bare-launch note
Merged
#581 fix(fleet): durable runtime PATH for detached agent launch
Merged
#579 feat(fleet): Phase-2 observability — fleet ps + watch + send verify
Merged
#575 feat(framework): P3 — extract Constitution (L0) + gut AGENTS dispatcher
Merged
#572 feat(framework): P1+P2 — public sanitization + blocking CI gate
Merged
#570 feat(framework): P0 — MIT license + executable-leak sanitization
Merged
#543 docs(framework): add agency & persistence patterns to config + guides
Merged
#568 fix(fleet): install executable tmux helpers
Merged
#567 fix(fleet): preserve agent env overrides on install
Merged
#566 chore(release): bump mosaic cli to 0.0.32
Merged
#565 fix(fleet): harden operator sends for release
Merged
#563 feat(fleet): add local canary CLI
Merged
#557 docs: plan durable tmux fleet install
Merged
#551 fix(framework/tools): wrapper hardening — TLS validation, cred-path fallback, no-CI fast-exit
Merged
#556 fix(launch): include Pi native skill roots in 'all' mode; dedup 'discover' force-loads
Merged
#555 feat(launch): force-load fleet-critical Pi skills + reconcile skill docs
Merged
#554 docs(framework/tools): lead TOOLS.md with high-salience fleet-tools cheatsheet
Merged
#553 fix(framework/tools): prettier-format woodpecker README — restore main format gate
Merged
#547 feat(framework/tools): orchestration helpers — lane-brief.sh + ci-wait.sh
Merged
#549 fix(framework/tools): eval injection, broken JSON, tmpfile leak
Merged
#545 feat(agent-reflection): durable kernel — reflection.v1 capture + risk-floor + Phase-0
Merged
#541 feat(mosaic-as): agent registration + scoped/revocable tokens (US-007)
Merged
#538 Fix Gitea wrapper login resolution
Merged
#537 docs(framework): canonize merge-authority policy (hard gate 13 + E2E gate note)
Merged
#534 release(mosaic): bump @mosaicstack/mosaic 0.0.30 -> 0.0.31
Merged
#535 feat(appservice): room provisioning (M4c)
Merged
#519 chore(framework): canonize Vault-as-SSOT + ESO-default secrets policy
Merged
#511 docs: add mission control and coordination resilience docs
Merged
#529 refactor(framework): thin-core prompt diet — cut injected contract ~53%
Merged
#533 feat(framework/tools): inter-agent tmux comms — agent-send.sh + addressing standard
Merged
#532 ci: publish mosaic-as appservice image
Merged
#531 feat(appservice): mosaic-as daemon host + container (M4a)
Merged
#530 feat(appservice): Matrix Application Service core library (M4a)
Merged
#527 fix(pi): reduce startup skill-token overhead
Merged
#524 fix(mosaic-tools): roll up Gitea and Woodpecker wrapper fixes
Merged
#510 fix(db): bootstrap migrations on local-tier gateway startup
Merged
#509 feat(federation): mTLS AuthGuard with OID-based grant resolution (FED-M3-03)
Merged
#508 feat(federation): outbound mTLS FederationClient (FED-M3-08)
Merged
#505 feat(federation): two-gateway test harness scaffold (FED-M3-02)
Merged
#506 feat(types): federation v1 DTOs (FED-M3-01)
Merged
#507 fix(federation): use real PEM certs in enrollment + ca service tests
Merged
#504 docs(federation): M3 mission planning — 14-task decomposition
Merged
#503 chore(federation): M2 milestone close (FED-M2-13)
Merged
#502 docs(federation): M2 Step-CA setup guide + admin CLI reference (FED-M2-12)
Merged
#501 fix(federation): security hardening — OID verification, atomic activation, audit on failure
Merged
#500 test(federation): M2 E2E peer-add enrollment flow (FED-M2-10)
Merged
#499 test(federation): M2 integration tests (FED-M2-09)
Merged
#498 feat(federation): admin controller + CLI federation commands (FED-M2-08)
Merged
#497 feat(federation): enrollment controller + single-use token flow (FED-M2-07)
Merged
#496 feat(federation): grants service CRUD + status transitions (FED-M2-06)
Merged
#494 feat(federation): Step-CA client service for grant certs (FED-M2-04)
Merged
#495 feat(federation): seal federation peer client keys at rest (FED-M2-05)
Merged
#492 fix(federation): healthcheck + restart policy for federated-test stacks
Merged
#491 fix(deploy): bump gateway image digest to sha-9f1a081 [DEPLOY-IMG-FIX]
Merged
#489 feat(federation): scope schema validator [FED-M2-03]
Merged
#490 feat(federation): Step-CA sidecar in federated compose [FED-M2-02]
Merged
#487 docs(federation): S21 tracking — DEPLOY-01/02 done, IMG-FIX in flight, M2-01 in remediation
Merged
#488 fix(docker): pnpm deploy for self-contained gateway runtime image
Merged
#486 feat(db): federation schema — grants/peers/audit_log [FED-M2-01]
Merged
#485 feat(deploy): portainer stack template for federation test instances [DEPLOY-02]
Merged
#483 docs(federation): M2 mission planning — TASKS decomposition + manifest update
Merged
#484 feat(mosaic-portainer): PORTAINER_INSECURE flag for self-signed TLS
Merged
#481 docs(federation): close FED-M1 milestone
Merged
#480 docs(federation): operator setup + migration guides (FED-M1-11)
Merged
#479 fix(storage): redact credentials in driver errors + advisory lock (FED-M1-10)
Merged
#478 test(federation): standalone regression canary — no breakage from M1 (FED-M1-09)
Merged
#477 test(storage): integration test for migrate-tier (FED-M1-08) + camelCase column fix
Merged
#476 test(federation): integration tests for federated tier gateway boot (FED-M1-07)
Merged
#475 feat(gateway,storage): mosaic gateway doctor with tier health JSON (FED-M1-06)
Merged
#474 feat(storage): mosaic storage migrate-tier with dry-run + idempotency (FED-M1-05)
Merged
#473 feat(gateway): tier-detector with fail-fast PG/Valkey/pgvector probes (FED-M1-04)
Merged
#472 feat(storage): pgvector adapter support gated on tier=federated (FED-M1-03)
Merged
#471 feat(infra): docker-compose.federated.yml overlay (FED-M1-02)
Merged
#470 feat(config): add federated tier + rename team→standalone (FED-M1-01)
Merged
#469 docs(mission): author MVP rollup manifest, archive install-ux-v2
Merged
#468 docs(federation): PRD, milestones, mission manifest, and M1 task breakdown
Merged
#467 docs(federation): PRD, milestones, mission manifest, and M1 task breakdown
Merged
#459 chore(release): @mosaicstack/mosaic 0.0.30
Merged
#458 fix(mosaic): seed TOOLS.md from defaults on install
Merged
#456 docs(scratchpad): finalize yolo runtime hotfix evidence
Merged
#455 fix(mosaic): stop yolo runtime from leaking runtime name as first user message
Merged
#453 chore(release): @mosaicstack/mosaic 0.0.29
Merged
#452 fix(installer): preserve credentials dir and seed STANDARDS.md
Merged
#451 feat(framework): superpowers enforcement, typecheck hook, file-ownership rules
Merged
#450 chore(release): @mosaicstack/mosaic 0.0.28
Merged
#448 chore: sweep mosaicstack/mosaic-stack → mosaicstack/stack + add short install URL
Merged
#449 fix(mosaic): mask password input in TUI login prompt
Merged
#447 docs: update README for mosaicstack/stack repo rename
Merged
#446 feat(mosaic): drill-down main menu + provider-first flow + quick start
Merged
#445 docs: orchestrator close-out IUV-M02
Merged
#444 feat(mosaic): IUV-M02 — CORS/FQDN UX polish + skill installer rework
Merged
#443 docs: orchestrator close-out IUV-M01 — mark tasks done, append session 2
Merged
#442 docs: mark IUV-M01 complete — mosaic-v0.0.26 released (#436)
Merged
#441 fix: add vitest.config.ts to eslint allowDefaultProject (#440 build fix)
Merged
#440 fix: bootstrap hotfix — DTO erasure, wizard failure, port prefill, Pi SDK copy (mosaic-v0.0.26)
Merged
#439 docs: scaffold install-ux-v2 mission
Merged
#435 chore(release): @mosaicstack/mosaic 0.0.25
Merged
#434 docs: close out install-ux-hardening mission
Merged
#433 feat: unified first-run flow — merge wizard + gateway install (IUH-M03)
Merged
#432 docs: mark IUH-M02 complete, start IUH-M03
Merged
#431 feat: wizard remediation — password mask, hooks preview, headless (IUH-M02)
Merged
#430 docs: scaffold install-ux-hardening mission + archive cli-unification
Merged
#429 feat: mosaic uninstall (IUH-M01)
Merged
#424 docs: finalize CLI unification mission at mosaic-v0.0.24
Merged
#423 fix: bump memory/queue/storage to 0.0.4 to force republish
Merged
#422 fix: bump stale sub-package versions (brain/forge/log)
Merged
#421 fix: revert mosaic to 0.0.22 alpha + republish macp
Merged
#420 docs: mission cli-unification-20260404 complete
Merged
#419 docs: CLI unification release v0.1.0 (M8)
Merged
#418 feat(mosaic): unified first-run UX wizard -> gateway install -> verify
Merged
#417 feat(mosaic): mosaic telemetry command (M6 CU-06-01..05)
Merged
#416 docs: session 2 orchestrator bookkeeping (M3/M4/M5 complete)
Merged
#415 fix(macp): align exports + add CLI smoke test
Merged
#410 feat(macp): mosaic macp CLI surface
Merged
#414 fix(mosaic): gateway token recovery review remediations
Merged
#413 feat(mosaic): mosaic auth CLI surface
Merged
#412 feat(forge): mosaic forge CLI surface
Merged
#407 feat(log): mosaic log CLI surface
Merged
#405 feat(storage): mosaic storage CLI surface
Merged
#406 feat(memory): mosaic memory CLI surface
Merged
#411 feat(mosaic): gateway token recovery via BetterAuth cookie
Merged
#408 feat(mosaic): top-level mosaic config command
Merged
#404 feat(queue): mosaic queue CLI surface
Merged
#403 feat(brain): mosaic brain CLI surface
Merged
#402 feat(mosaic): alphabetize and group mosaic --help output
Merged
#401 docs(plan): gateway admin token recovery flow
Merged
#400 docs: capture planning decisions + session 1 handoff
Merged
#399 docs: archive stale mission, scaffold CLI unification mission
Merged
#398 chore: remove legacy @mosaicstack/cli package
Merged
#397 chore: bump @mosaicstack/mosaic to 0.0.21 for republish
Merged
#396 ci: fail publish pipeline loudly on registry/auth/network errors
Merged
#395 fix: populate KNOWN_PACKAGES for mosaic update command
Merged
#394 fix: update Gitea org references from mosaic/ to mosaicstack/
Merged
#393 fix(mosaic): resumable gateway install + prominent admin token
Merged
#392 fix: rename @mosaic/* packages to @mosaicstack/*
Merged
#389 fix(packages): bump db/memory/queue for PGlite + adapter factories
Merged
#388 fix: simplify updater to @mosaic/mosaic only, add explicit tea repo/login flags
Merged
#386 fix(packages): republish @mosaic/config and bump dependents
Merged
#384 fix: retarget updater to @mosaic/mosaic
Merged
#385 fix(mosaic): resolve framework scripts via import.meta.url
Merged
#381 feat(mosaic): merge @mosaic/cli into @mosaic/mosaic
Merged
#379 chore: bump @mosaic/cli and @mosaic/mosaic to 0.0.16
Merged
#378 refactor(storage): replace better-sqlite3 with PGlite adapter
Merged
#377 fix: remediate npm deprecation warnings in @mosaic/gateway 0.0.3
Merged
#376 fix: gateway install preserves npm prefix via registry flag
Merged
#375 chore: move gateway default port from 4000 to 14242
Merged
#374 fix: scope Gitea registry to @mosaic packages only
Merged
#373 fix: gateway install uses Gitea registry instead of npmjs
Merged
#372 chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.11
Merged
#371 feat: local tier gateway with PGlite + Gitea-only publishing
Merged
#370 feat: gateway publishability + npmjs publish script
Merged
#369 feat: mosaic gateway CLI daemon management + admin token auth
Merged
#368 fix: add build tools to CI install step for better-sqlite3 native bindings
Merged
#366 fix: add build tools to CI install step for better-sqlite3 native bindings
Merged
#367 fix: allow better-sqlite3 build script in pnpm 10
Merged
#365 feat: storage abstraction retrofit — adapters for queue, storage, memory (phases 1-4)
Merged
#364 fix: quality-rails Commander version mismatch + installer defaults
Merged
#363 fix: installer copies default framework files (AGENTS.md) to mosaicHome
Merged
#362 fix: all CLI script resolution uses bundled-first resolveTool()
Merged
#361 fix: fwScript prefers npm-bundled scripts over stale deployed copies
Merged
#360 chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.6
Merged
#359 fix: auto-migrate customized skills to skills-local/ on sync
Merged
#358 fix: stale update banner + skill sync dirty worktree crash
Merged
#357 chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.4
Merged
#356 fix: syncDirectory same-path guard, nested .git exclusion, and sync stash handling
Merged
#355 fix: make mosaic init idempotent — detect existing config files
Merged
#354 chore: bump all packages to 0.0.2 — drop alpha prerelease tag
Merged
#352 feat: complete CLI command parity — coord, prdy, seq, upgrade
Merged
#351 feat: unify mosaic CLI — single binary, no PATH conflict
Merged
#350 docs: add project README
Merged
#349 chore: bump all packages to 0.0.1-alpha.2
Merged
#348 feat: add web search, file edit, MCP management, file refs, and /stop to CLI/TUI
Merged
#347 feat: unified install.sh + auto-update checker (deprecates mosaic/bootstrap)
Merged
#346 fix: remove stale bootstrap repo references
Merged
#345 feat: complete bootstrap → monorepo migration (archive-ready)
Merged
#344 feat: integrate framework files into monorepo
Merged
#343 fix(web): add public/ directory — fixes Docker build COPY failure
Merged
#342 fix(ci): use gitea_token secret for npm publish
Merged
#341 feat: npm publish pipeline + package versioning (0.0.1-alpha.1)
Merged
#340 feat: mosaic-* skill naming, board/forge/prdy skills, doctor --fix auto-wiring
Merged
#339 feat: add Pi as first-class Mosaic runtime
Merged
#338 fix(ci): pass DATABASE_URL through Turbo to test tasks
Merged
#337 fix(db): add missing migration to Drizzle journal — fixes CI test failures
Merged
#335 feat(ci): Docker build+push pipeline for gateway and web images
Merged
#336 fix: parse VALKEY_URL into RedisOptions for BullMQ — fixes ECONNREFUSED 6379
Merged
#333 fix: remove all hardcoded user paths — dynamic OC SDK resolution
Merged
#332 fix: update MACP plugin paths from /home/jarvis to local environment
Merged
#331 feat: monorepo consolidation — forge, MACP, framework plugin, profiles/guides/skills
Merged
#330 fix(oc-plugin): MACP OC bridge — route through controller queue instead of Pi-direct
Merged
#329 feat(oc-plugin): MACP ACP runtime backend — sessions_spawn(runtime:macp)
Merged
#327 chore: Harness Foundation mission COMPLETE — v0.2.0
Merged
#326 docs: add M7-003 through M7-007 Matrix architecture sections
Merged
#324 feat(M5-008,M6-001-005): session hardening tests + BullMQ job queue
Merged
#325 feat(M6-006,M6-007,M7-001,M7-002): admin jobs API, job event logging, channel adapter interface, message protocol
Merged
#323 feat(M4-013,M5-001,M5-002,M5-003): routing e2e tests, agent config loading, model+agent switching
Merged
#321 feat(M5-004,M5-005,M5-006,M5-007): session-conversation binding, session:info broadcast, agent creation from TUI, and session metrics
Merged
#320 feat(M4-009,M4-010,M4-011): routing rules CRUD, per-user overrides, agent capabilities
Merged
#319 test(M3-012): provider adapter integration tests for all 5 providers
Merged
#318 feat(routing): implement routing decision pipeline — M4-006
Merged
#317 fix(ci)+feat(M3-010/011): skip DB-gated tests in CI + provider_credentials migration
Merged
#316 feat(routing): task classifier + default rules + CI test fixes — M4-004/005
Merged
#314 feat(M3-005): ZaiAdapter for Z.ai GLM-5 provider
Merged
#315 feat(routing): routing_rules schema + types — M4-001/002/003
Merged
#312 chore: update TASKS.md — 25/65 done, Wave 5 in progress
Merged
#311 feat(providers): OpenRouter adapter + Ollama embedding support — M3-004/006
Merged
#310 feat(M3-003): OpenAI provider adapter for Codex gpt-5.4
Merged
#309 feat(M3-002): implement AnthropicAdapter for Claude Sonnet 4.6, Opus 4.6, and Haiku 4.5
Merged
#308 feat(M3-007,M3-009): provider health check scheduler and Ollama embedding default
Merged
#307 chore: M1 + M2 milestones complete — 18/65 tasks done
Merged
#303 feat(M3-008): define model capability matrix
Merged
#305 test(M2-007): cross-user data isolation integration test
Merged
#306 feat(M3-001): refactor ProviderService into IProviderAdapter pattern
Merged
#304 test(persistence): M1-008 verification — 20 integration tests
Merged
#302 chore: Wave 2 complete — 14/65 tasks done
Merged
#301 feat(gateway): load conversation history on session resume (M1-004, M1-005)
Merged
#299 feat(conversations): add search endpoint — M1-006
Merged
#298 fix(security): M2-008 Valkey key audit — SCAN over KEYS, restrict /gc to admin
Merged
#297 feat(tui): add /history command — M1-007
Merged
#296 chore: Wave 1 complete — fix merge conflicts, update task status
Merged
#290 fix(memory): scope InsightsRepo operations to userId — M2-001/002
Merged
#293 fix(M2-005,M2-006): enforce user ownership at repo level for conversations and agents
Merged
#295 chore: mark M1-001/002/003 and M2-003/004 done
Merged
#294 fix(security): scope memory tools to session userId — M2-003/004
Merged
#292 feat(chat): persist messages to DB via ConversationsRepo (M1-001/002/003)
Merged
#289 chore: bootstrap Harness Foundation mission (Phase 9)
Merged
#223 chore: mark P8-001/002/003 done in TASKS.md
Merged
#222 feat(web): conversation sidebar with search, rename, delete
Merged
#221 feat(web): design system — ms-* tokens, ThemeProvider, MosaicLogo, sidebar
Merged
#220 feat(auth): add WorkOS and Keycloak SSO providers (rebased)
Merged
#219 chore: mark P8-001/002/003 in-progress, P8-004 done
Merged
#216 feat(web): chat interface — model selector, keybindings, thinking display, v0 styled header
Merged
#215 chore: fix prettier formatting on markdown files
Merged
#212 feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002)
Merged
#211 perf: gateway + DB + frontend optimizations (P8-003)
Merged
#210 feat(auth): add WorkOS and Keycloak SSO providers (P8-001)
Merged
#214 docs: add TASKS.md agent-column schema to AGENTS.md
Merged
#213 chore: add agent model column to TASKS.md
Merged
#204 fix(web): conversation DELETE — resolve Failed to fetch TypeError
Merged
#205 fix(cli): TUI polish — Ctrl+T, React keys, clipboard, version
Merged
#203 fix(web): admin page role check — stop false redirect to /chat
Merged
#201 fix(cli): sidebar delete conversation — fix silent failure
Merged
#202 fix(gateway): filter projects by ownership — close data privacy leak
Merged
#200 feat(gateway): Discord channel auto-creation on project bootstrap
Merged
#198 feat(gateway): /system override condensation — accumulate + Haiku merge
Merged
#190 feat(gateway): project bootstrap — docs structure + default agent
Merged
#189 fix(gateway): system override TTL 5min → 7 days
Merged
#188 fix(cli): disable Ink exitOnCtrlC so double-press handler runs
Merged
#187 fix(cli): wire command:result + system:reload socket events in TUI
Merged
#186 docs: mark mission complete — 9/9 milestones, all ACs verified (v0.1.0)
Merged
#185 feat: verify Phase 8 platform architecture + integration tests (P8-019)
Merged
#184 feat(cli): TUI autocomplete sidebar + fuzzy match + arg hints + input history (P8-017)
Merged
#183 feat(gateway): WorkspaceService + ProjectBootstrapService + TeamsService (P8-015)
Merged
#182 feat(gateway): MosaicPlugin lifecycle + ReloadService + hot reload (P8-013)
Merged
#181 feat(gateway): /agent, /provider, /mission, /prdy, /tools commands (P8-012)
Merged
#179 feat(gateway): SessionGCService three-tier GC + /gc command + cron (P8-014)
Merged
#180 feat(gateway): PreferencesService + /preferences REST + /system Valkey override (P8-011)
Merged
#178 feat(gateway): CommandRegistryService + CommandExecutorService (P8-010)
Merged
#177 feat(gateway): tool path hardening + sandbox escape prevention (P8-016)
Merged
#176 feat(cli): TUI slash command parsing + local commands (P8-009)
Merged
#175 feat(db): teams schema + preferences.mutable migration
Merged
#174 feat(types): CommandDef, CommandManifest, slash command socket events
Merged
#173 docs: agent platform architecture plan — augmentation + task breakdown
Merged
#159 docs: update TASKS.md and scratchpad for CLI command architecture
Merged
#158 feat(cli): command architecture — agents, missions, gateway-aware prdy
Merged
#157 feat(cli): TUI complete overhaul — components, sidebar, search, branding
Merged
#156 fix(ci): remove from_secret to unblock PR pipelines
Merged
#155 fix(web): add jsdom dependency and exclude e2e from vitest
Merged
#154 chore(orchestrator): Phase 7 complete — v0.0.8 verified
Merged
#153 docs(deploy): add deployment guide and expand .env.example
Merged
#152 feat(web): Playwright E2E test suite for critical paths
Merged
#151 docs: user guide, admin guide, dev guide (closes #57)
Merged
#150 feat(admin): web admin panel — user CRUD, role assignment, system health
Merged
#149 feat(coord): DB migration — project-scoped missions, multi-tenant RBAC
Merged
#148 feat(agent): session cwd sandbox, system prompt config, tool restrictions
Merged
#147 fix(cli): remove side-effect from agent:end state updater (#133)
Merged
#146 feat(cli): add sessions list/resume/destroy subcommands
Merged
#145 feat(web): settings persistence — profile, preferences save to DB (#124)
Merged
#144 feat(cli): add --model/--provider flags and /model /provider TUI commands
Merged
#143 feat(agent): skill invocation — load and execute skills from catalog (#128)
Merged
#142 feat(web): provider management UI — list, test, model capabilities (#123)
Merged
#141 feat(gateway): MCP client — connect to external MCP servers as agent tools (#127)
Merged
#140 feat(web): project detail views — missions, tasks, PRD viewer (#122)
Merged
#139 feat(web): conversation management — search, rename, delete, archive (#121)
Merged
#138 feat(agent): expand tool registry — file, git, shell, web fetch (#126)
Merged
#137 feat(gateway): add MCP server endpoint with streamable HTTP transport
Merged
#136 feat(web): wire WebSocket chat with streaming and conversation switching (#120)
Merged
#135 chore(orchestrator): Phase 7 planning — 10-wave execution plan
Merged
#119 chore(orchestrator): rescope Phase 7 as Feature Completion, add Phase 8
Merged
#118 chore(orchestrator): rescope Phase 7 + add Phase 8
Merged
#117 fix(agent): register Ollama with api: openai-completions
Merged
#116 fix(agent): pass dummy apiKey for Ollama provider registration
Merged
#115 fix(cli): add Origin header to auth requests
Merged
#114 feat(cli): add login command and authenticated TUI sessions
Merged
#113 chore: remove deprecated husky v9 shim lines
Merged
#112 fix(auth): add CORS headers to BetterAuth raw HTTP handler
Merged
#111 fix(auth): add trustedOrigins to BetterAuth for cross-origin web dashboard
Merged
#110 fix(gateway): CORS, memory userId from session, pgvector auto-init
Merged
#109 fix(gateway): add missing @Inject() decorators causing silent startup hang
Merged
#108 fix(gateway): load .env from monorepo root via dotenv
Merged
#107 fix(ci): use from_secret syntax for Woodpecker v2
Merged
#106 ci: enable Turbo remote cache + parallelize pipeline steps
Merged
#105 chore(orchestrator): complete Phase 6 milestone v0.0.7
Merged
#104 feat(cli): add prdy, quality-rails, and wizard subcommands
Merged
#103 feat(mosaic): migrate install wizard from v0 to v1
Merged
#102 fix(gateway): resolve two startup bugs blocking E2E testing
Merged
#101 feat(prdy): migrate @mosaic/prdy from v0 to v1
Merged
#100 feat(quality-rails): migrate @mosaic/quality-rails from v0 to v1
Merged
#99 fix(gateway): wire Telegram plugin into gateway plugin host
Merged
#97 feat(auth): P5-004 Authentik OIDC adapter via Better Auth genericOAuth
Merged
#98 fix(gateway): ownership checks for TasksController findAll/create + MissionsController create
Merged
#95 fix(ci): sequential steps + single install to prevent OOM on runner
Merged
#85 fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting
Merged
#93 feat(plugins): P5-003 Telegram channel plugin
Merged
#92 feat(gateway): P5-001 plugin host module
Merged
#91 feat(Phase 4): Memory & Intelligence — memory, log, summarization, skills
Merged
#90 verify(P3-008): Phase 3 web dashboard verification
Merged
#89 feat(web): admin panel with session management
Merged
#88 feat(web): settings page with profile, providers, and models
Merged
#87 feat(web): project list and mission dashboard views
Merged
#86 feat(web): task management with list view and kanban board
Merged
#84 feat(web): chat UI with conversations and WebSocket streaming
Merged
#83 feat(web): wire auth pages with BetterAuth and route guards
Merged
#82 feat(web): scaffold Next.js 16 dashboard with design system and auth client
Merged
#81 fix: coord review remediations (path traversal, JSON parse, race condition)
Merged
#79 test: verify Phase 2 — routing + coord tests (P2-007)
Merged
#78 feat: agent session management — metrics, channels, dispose (P2-006)
Merged
#77 feat: @mosaic/coord — migrate from v0, gateway integration (P2-005)
Merged
#76 feat: tool registration — brain tools for agent sessions (P2-004)
Merged
#75 feat: agent routing engine — cost/capability matrix (P2-003)
Merged
#74 feat: multi-provider support — Anthropic + Ollama (P2-002)
Merged
#73 fix: auth handler + circular imports — Phase 1 verification (P1-009)
Merged
#72 feat: gateway CRUD routes — conversations, projects, missions, tasks (P1-005/006)
Merged
#71 feat: auth middleware, brain data layer, Valkey queue (P1-002/003/004)
Merged
#70 fix: Phase 0 verification — CI gates green (P0-009)
Merged
#69 feat: Woodpecker CI pipeline + project docs (P0-007, P0-008)
Merged
#68 feat(auth): @mosaic/auth — BetterAuth email/password setup
Merged
#67 feat(db): @mosaic/db — Drizzle schema, PG connection, migrations
Merged
#66 fix: Jaeger image tag + remap PG/Valkey ports
Merged
#65 feat: foundation — Docker Compose, OTEL, shared types
Merged
#61 feat: communication spine — gateway, TUI, Discord
Merged
#60 feat(P0-001): scaffold monorepo structure
13 Pull requests proposed by 8 users
Proposed
#1054 feat(installer): transactional P0-P9 state machine
Proposed
#1192 fix: fail closed on invalid launch inputs
Proposed
#1213 feat(fleet): HARNESS-HOMES fleet MVP — profile-driven seat composition and launch (#1209)
Proposed
#1259 quality: scan the framework, not just tools/, in the enumeration guard (#1017)
Proposed
#1268 fix(fleet): seed unattended identity on first start (#1264)
Proposed
#1281 feat(mosaic): vetted user store — mosaic store add|list (W-F4)
Proposed
#1291 fix(git): identity-first principal resolution across write wrappers (#1280)
Proposed
#1315 docs(ri-050): release evidence pack — RI-050 floor evidenced, registry credential proven (pipeline 2517)
Proposed
#1367 feat(fleet-tools): mint-seat-credential.sh joins the framework toolkit (#1366)
Proposed
#1370 fix(credentials): gitea arms resolve seat slots — fail loud, no silent service fallback
Proposed
#1431 fix(gateway): serialize bootstrap setup with an advisory lock (#1430)
Proposed
#1469 feat(config): installation minimal-subset — schema, adapters, core, render (CONFIGIMPL)
Proposed
#1491 docs: ratify PRD rev1 - consolidated bundle, permanent shim, rev0 archived
374 Issues closed from 16 users
Closed
#1513 OpenProject test instance (pm.ddkansas.com) - charter tracking
Closed
#1504 mosaic launch <seat>: seat registration the control board reads
Closed
#1506 Piece 3: read-only ledger for issue-tagged commits and repo seat messages
Closed
#1505 Control board piece 2: reply-from-board (Gate C)
Closed
#1500 Charter increment 2: isolated materialization and refresh fixtures
Closed
#1457 T78 M0: interface freeze
Closed
#1450 tooling: issue-comment.sh fails on sb-it-1-dt (Configured Gitea URL not found for read-back verification) — needs REST fallback like issue-create.sh
Closed
#1499 Charter M20 packages/mosaic auth/provider/harness increment 1
Closed
#1498 Repair native skill/launcher mismatch without live activation
Closed
#1497 Publication and planned agent-restart recovery trial
Closed
#1495 Consolidate v2 at canonical stack checkout; preserve v1 under v1/
Closed
#1257 agent-send.sh reports every delivery to a TUI seat as a possible failure: send-message.sh pane-qualifies only the target form agent-send never produces
Closed
#1456 T78 M0: publish reviewed contract (docs merge)
Closed
#1445 ci(web): Phase P6 — Vite build + headless E2E gate on every trunk merge
Closed
#1444 feat(web): Phase P5 cutover — Gateway serves the SPA bundle, Next tree deleted
Closed
#1145 gateway: compiled dist build cannot boot — Nest DI fails on defaulted constructor param in InteractionCoordinationService (dev/tsx mode unaffected)
Closed
#1446 trunk image builds broken: appservice Dockerfile missing COPY scripts/ (prepare fails), no green trunk pipeline since 2799
Closed
#1451 trunk image build red: appservice.Dockerfile misses COPY scripts/ before pnpm install (prepare hook MODULE_NOT_FOUND)
Closed
#1428 gateway: /api/teams endpoints unscoped — any authenticated user can enumerate all teams and member records
Closed
#1407 publish: next lane builds gateway images only — no web/appservice next images, so no sha-parity set exists for next-lane containerized deploys
Closed
#1394 mosaic gateway recover-token is interactive-only, no headless path
Closed
#1390 mosaic gateway uninstall unusable headless: no --yes flag, piped input crashes readline
Closed
#1413 WP5b: consumer compat mode - git tools consume .mosaic/repo.json declarations (T51 phase 2)
Closed
#1415 framework tools/git: grant-reviewer.sh — grant a reviewer seat repo access via an org team
Closed
#1395 Password auth broken on next: better-auth 1.7.1 requires accounts.issuer column missing from @mosaicstack/db schema
Closed
#1411 publish-next-npm mutates workspace concurrently with build-gateway kaniko COPY (PR 1405 follow-up): restore races with parallel image build
Closed
#1408 [email protected] ConditionPathExists not brain-home aware: autostart silently skipped for every seat
Closed
#1404 publish pin transform mutates workspace package.json; build-gateway --frozen-lockfile red on next (post-merge 2646)
Closed
#1392 Fresh postgres-tier install gets no schema: gateway never runs migrations at install or startup
Closed
#1402 db: postgres runMigrations silently skips journal entries with older 'when' timestamps; single-transaction wrap breaks 0009 ALTER TYPE when it does run
Closed
#1389 npm publish: gateway@next bundles all @mosaicstack deps at stable versions instead of matching -next builds
Closed
#1391 POST /api/bootstrap/setup returns 400 on valid payloads: two conflicting validation layers
Closed
#1380 fleet: secure descriptor traversal refuses framework-created symlinks (guard-scoped fix required)
Closed
#1372 ci-queue-wait: no sanctioned merge path for a repository with no CI
Closed
#1357 issue-view.sh cannot show issue comments (4 defects: worktreeconfig, JSON fallback, missing --comments, wrong diagnosis)
Closed
#1362 send-message.sh confirms delivery by a Claude-only prompt glyph, so every send to a pi pane returns rc=2 'may be UNDELIVERED'
Closed
#1356 tea login resolution fails open: a seat with no login silently acts as another identity
Closed
#1353 git wrapper tests inherit MOSAIC_GIT_IDENTITY and disagree on it: no ambient value passes all 29
Closed
#1351 git wrappers: no --login resolves a GUESSED shared login instead of the caller's own credential (gate-16 attribution defect)
Closed
#1292 greenfield install never enables/starts the shipped mosaic-lease-broker.service — every fleet seat dies at lease registration (Wall 6)
Closed
#1347 Tier the north star and declare the tier-0 operator surface (AC-NS-0, NS-10, workstreams G/I/J/K/L)
Closed
#1338 D29: revoke-lease.py denies every lifecycle transition for a session that never held a lease
Closed
#1336 docs(fleet): tier the north star and declare the tier-0 operator surface
Closed
#1327 Installer PATH block: sentinel-managed, default-home-only profile writes (4c / D25)
Closed
#1214 docs: define main/next branch model, sequencing, responsibilities, and merge process in AGENTS.md
Closed
#1256 Greenfield install completes clean and no fleet seat can launch: shipped roster requires 'pi' (never installed), and the pane PATH omits the Node the installer just bootstrapped
Closed
#1179 #1156-A: require command authorization and system-override DI
Closed
#1328 ci: pin ci-base image reference; mutable :latest makes CI verdicts non-reproducible (D27)
Closed
#1323 skills: mosaic-gitea SKILL.md still teaches legacy shared-credential read + raw force-merge bypass (residual of the #1320 Should Fix class)
Closed
#1320 skills: folded mosaic-portainer / mosaic-woodpecker carry concrete private-network endpoints in examples — rev-security triage
Closed
#1287 T
Closed
#1286 T
Closed
#1285 Body safety test
Closed
#1284 Body safety test
Closed
#1283 Body safety test
Closed
#1282 Body safety test
Closed
#1253 [INVALID] pr-merge.sh dry-run identity — measured a stale local framework copy, already fixed on next
Closed
#1240 greenfield install leaves out tmux — the fleet's only transport — and neither the installer nor doctor checks for it
Closed
#1237 greenfield dead end: fleet init writes roster v1, all roster-v2 commands reject v1, migrate-v1 is preview-only
Closed
#1236 fleet init --write cannot succeed on a stock Debian install: installer creates 0775, env boundary rejects group-write
Closed
#1216 Branch-model layering conflict: L0 Constitution gates 5/15 hardcode main; commissioned next-first policy (#1214/PR #1215) cannot merge until controlling sources align
Closed
#1198 ci-queue-wait.sh classifier cannot block: python3 - heredoc consumes stdin, every payload classifies unknown, and unknown is an exit-0 arm (gate 6 is vacuous)
Closed
#1080 tooling-gap: no pr-edit.sh — the wrapper set can edit an issue but cannot edit a PR, so draft/undraft is unreachable through the mandated path
Closed
#1156 Fail-loud audit: defaults/fallbacks that make absence indistinguishable from presence
Closed
#1099 Framework-wide: pipefail + early-exiting pipeline stage (grep -q / head / -m1) fails on success — 120 candidate sites, invisible on GNU dev hosts
Closed
#1120 wizard: exits 0 after gateway health failure in existing-install flow
Closed
#1122 next lane DOA on documented minimum Node: @next CLI crashes ERR_REQUIRE_CYCLE_MODULE on Node 20 (README floor is >=20), needs Node 22
Closed
#1150 pi: add persistent /goal controller extension to Mosaic framework
Closed
#1132 pr-merge.sh: main-only hardcode blocks every next-lane merge (wrapper policy predates next pivot)
Closed
#1128 ci-queue-wait: Gitea statuses:null classified as malformed — push guard hard-fails (exit 3) on any repo without CI
Closed
#1149 fix: allow reviewed PR merges into next
Closed
#1146 fix: make CI queue guard purpose-sensitive
Closed
#1138 gateway cannot boot in ANY shipped configuration except the federation test harness — FederationModule unconditional despite federation being designed profile-gated optional
Closed
#1098 Merge gate certifies rung ① only: main is red at rung ③ now, and was red for 2 of 5 recent merges unnoticed
Closed
#1102 Add merged-main CI rung to the PR completion gate
Closed
#1043 fleet: mechanize seat git-identity lifecycle (mint + wire MOSAIC_GIT_IDENTITY + verify write-differential) — bring-up mints tokens but never wires identity
Closed
#1081 issue-close.sh: closing comment silently fails — tea issue comment is not a subcommand, and the result is unchecked
Closed
#1090 flaky: enrollment.service.spec.ts asserts a 100ms wall-clock budget (missed by 6ms on CI)
Closed
#1082 detect-platform.sh: add a diagnostic for tea's misleading user does not exist error (stale token, not a missing account)
Closed
#1084 TEST (mos-claude): verifying #1081 fix — safe to close
Closed
#1064 FIXTURE-DO-NOT-ATTRIBUTE: issue-close.sh -c caller-level test (auto-closed by the test itself)
Closed
#1040 Phase B1: bring next current with main (merge + resolve conflicts)
Closed
#1035 Release @mosaicstack/mosaic 0.0.49 — ship RM-03 guard fix to the release channel
Closed
#1019 ci-queue-wait.sh: gate-6 queue guard returns unknown for every CI state and exits 0 — heredoc consumes stdin (already fixed in pr-ci-wait.sh, never backported)
Closed
#1034 RM-61: CI-contract exemption for the #1000 ci-postgres teardown artifact, signature-scoped + discrimination-proven
Closed
#966 flaky-test: wake detector D4 lock re-acquire races the holder's exit (intermittent local red)
Closed
#991 issue-comment.sh: read-back verification pins the URL scheme, so every successful comment on this instance is reported as a failed create (and a retry double-posts)
Closed
#1016 CI runs an enumerated allowlist of shell suites — 11 of 16 git suites never run, including both push-guard suites
Closed
#1004 pr-review.sh: all six HTTP error arms discard the provider body, and the review-submit arm hardcodes a wrong cause (#865) for every non-2xx
Closed
#985 validate-973 sweep: absorb rule cannot witness an unconverted verdict grep on a partially-converted line
Closed
#984 wake suites: unguarded source of _wake-common.sh lets a suite exit 0 with zero assertions run
Closed
#973 wake tests: grep -q assertions conflate rc>1 (error) with rc=1 (no match) — 155 fail toward FALSE RED, 28 toward FALSE GREEN incl. 5 secret-leak canaries
Closed
#975 push-guard: close the --json-path fail-open with required repo config
Closed
#953 wake: dead-letter retention is now load-bearing for quarantine-audit provability — record it at the write site
Closed
#952 wake: quarantine-audit clean-sweep message names only one of two unprovable classes
Closed
#958 wake: operator-side preimage definition (source-adapter.sh) is unversioned — provenance thinner than any hash it feeds
Closed
#939 git/issue-comment.sh: read-back verification false-fails when Gitea emits http:// issue_url behind TLS termination
Closed
#946 wake: digest ack watermark passes quarantined entries — consumer records deliveries that never happened
Closed
#948 docs: CONVERGED-DESIGN.md §2.1 hard-locator enumeration reads narrower than the shipped gate — add path, and state the operative test
Closed
#944 wake: §2.1 hard-locator gate is unsatisfiable for detector-built actionable board_file entries (every heartbeat-planning delta dead-letters)
Closed
#940 wake: digests cannot date their snapshot — emit snapshot commit SHA/ts alongside observed_hash (adapter fd-3 metadata channel)
Closed
#934 wake: seq-integrity fault-injections skip in non-privileged CI — need mount-free privilege-invariant injection
Closed
#932 wake/reconcile (pilot #7, alarm-hygiene): re-enumerates CONSUMED detector states → dup wake + spurious rc=1 CRITICAL → store records last-consumed observed_hash as 3rd accounted check
Closed
#917 wake/store hardening (low-pri, def-in-depth): gate the final observed_seq cursor write in cmd_enqueue
Closed
#925 wake/installer: framework-ship the canon-side fallback wake (systemd timer + per-class bound in watch-list schema, installed by A10) — F7 replacement-before-retirement out of the box
Closed
#913 wake canon adoption gaps (dragon-lin pilot, non-blocking): install dep-check + service systemd-path link
Closed
#924 wake/digest quarantine dead-letter alarm: route via WAKE_ALARM_SINK_CMD with per-wake_id dedup (not journal-local — G2a silent-miss)
Closed
#927 wake/store enqueue TOCTOU (product bug, co-feed-live): pre-lock _wake_clean_stale_tmp deletes a concurrent enqueue's in-flight write → spurious durable-write-FAILED abort
Closed
#923 wake/store T10 concurrency flake (pre-existing): intermittent fail on parallel-enqueue race — de-flake the synchronization
Closed
#920 wake/digest+reconcile (BLOCKING, pilot finding #6): render-refused entry wedges whole drain (quarantine) + reconciler enumerations misclassed actionable (→ class=digest)
Closed
#912 CI: exercise both wake HMAC legs (W3 digest + W7 beacon) — add openssl, flip SKIP→hard-require in CI
Closed
#914 wake/digest.sh renderer nits (pilot E2E): WAKE_AGENT-prefixed ack line + digest-class locator threading
Closed
#918 wake/store T7 CI-timing flake: date +%s second-granularity vs <2s threshold (de-flake to sub-second)
Closed
#908 wake/W4 hardening (low-pri): observed_seq incremented before store enqueue can permanently wedge the inbox
Closed
#905 wake/W3 hardening: align digest.sh fail-loud validator to treat top-level .claim as actionable (non-canonical locator-gate gap)
Closed
#771 KBN-101: separate PostgreSQL migration-owner and runtime application identities
Closed
#899 flaky-test (expedited): apply #898 wait_ready connect-probe to recovery_runtime_unittest.py (co-equal CI vector)
Closed
#897 flaky-test: recovery_b1_adversarial_unittest.py wait_ready() TOCTOU race → ECONNREFUSED under CI load
Closed
#873 feat(tools/git): per-agent Gitea identity (author-not-equal-reviewer separation)
Closed
#875 fix(tools/git): pr-review.sh _belongs case-sensitive path compare rejects mixed-case repo slugs
Closed
#865 bug: tea CLI 0.11.1 silently no-ops on tea pr comment / tea issue comment — false-success durable-comment writes fleet-wide
Closed
#872 fix(tools/git): ci-queue-wait.sh crashes (JSONDecodeError) on 404 for not-yet-pushed branch
Closed
#860 flaky test: mosaic "whole mutator-class lease gate > observer revocation and monotonic TTL expiry deny the next mutator" (timing flake) blocks #856/#858 terminal completion
Closed
#850 #812 follow-up: detect-platform.sh host-match conflates SSH transport port with HTTP(S) provider port + asymmetric default-web-port normalization
Closed
#856 worker worktrees run QA gates before pnpm install → eslint/prettier/tsc/vitest 'not found' (131/147 fleet errors)
Closed
#835 [framework-bug/tooling][p3-low] pr-review.sh: tea pr approve/tea pr reject pass unsupported --comment flag → durable approval RoR fails closed
Closed
#794 harden: reject whitespace-only tmux socket_name in roster-v2 (silently selects default server)
Closed
#812 framework git wrapper: Gitea comment action silently posts nothing
Closed
#849 flake: recovery_runtime_unittest b2 per-test broker-socket ConnectionRefused race (gates FCM-M5-001 completion)
Closed
#827 WI-0: R4 Gate0 runtime-evidence probe — BUILD-ADMISSION GATE (do FIRST)
Closed
#834 WI-7: T-C server-side branch-protection line + R1 honesty doc amendment
Closed
#833 WI-6: Constrained recovery command + mosaic-context-refresh skill wrapper
Closed
#832 WI-5: Broker-minted one-time receipt-challenge protocol (COMPUTE=broker / COPY=model)
Closed
#831 WI-4: Verbatim-hashed normative fragments — B_payload / H_payload (no self-reference, byte-identical Claude↔Pi)
Closed
#830 WI-3: Compaction observers → revoke + runtime_generation auto-revoke
Closed
#838 test(broker): harden acceptance socket-read against empty/truncated reply (flaky main #1917)
Closed
#829 WI-2: Whole mutator-class gate (revoke-first / promote-last)
Closed
#828 WI-1: Authenticated external lease broker — SO_PEERCRED identity + broker-minted session_id
Closed
#824 mosaic skill management CLI — register/unregister + symlink-bridge auto-sync on install/upgrade
Closed
#804 install.sh: unknown flags silently ignored — --next from main/mosaicstack.dev installs @latest and reports success
Closed
#792 fleet.js: unhandled ENOENT on missing roster (+ sweep class); install.sh mangles @mosaicstack/mosaic heading
Closed
#795 framework-tooling: codex review wrappers (PR mode) review the wrong branch + auto-post to PR
Closed
#791 Framework upgrades must not destroy operator-owned config under ~/.config/mosaic
Closed
#807 glpi: list wrappers reject HTTP 206, GLPI's normal response to a ranged query
Closed
#808 tmux/agent-send.sh: stamps a false sender whenever the sender's session is not on the destination socket
Closed
#790 feat(launcher): 'mosaic yolo claudex' — GPT-in-Claude-Code launcher via claude-code-proxy
Closed
#766 fix(fleet): make tmux comms targets unambiguous across harnesses
Closed
#755 Mos portability M1: logical identity and durable connector lease fencing
Closed
#753 KBN-010: Threat, authorization, and constraint-impact gate
Closed
#756 Official Discord channel plugin: harness-neutral routing and native thread policy
Closed
#751 Native Kanban/SOT canonical contract and P0-P3 delivery plan
Closed
#747 de-hardcode orchestrator/interaction agent brand names (Mos/Tess) from coord + durable-session + roster schema
Closed
#711 Tess M5: Matrix migration, recovery, docs and qualification
Closed
#710 Tess M4: Fleet, Mos, Hermes, memory and operator plugins
Closed
#703 fix(framework): restore resilient Git wrapper issue creation
Closed
#704 test: #703 deployed interactive wrapper verification
Closed
#701 git wrappers: -h/--help prints help but exits 1 (7 scripts) — phantom tool errors fleet-wide
Closed
#699 credential loader breaks under HOME-redirected profiles (Hermes profile homes)
Closed
#561 enhance(fleet-host): provide bare 'python' (python-is-python3) on agent hosts — 19x 'python: command not found'/24h
Closed
#634 CI: eliminate cold pnpm install via pre-baked image (Phase 1)
Closed
#633 Onboarding/comms injection MUST cover ALL agent launch paths (orchestrator + raw claude --channels), not just mosaic yolo spawns
Closed
#631 CRITICAL: framework re-seed (install.sh keep mode / mosaic update) WIPES ~/.config/mosaic/fleet/roster.yaml
Closed
#626 Fleet stand-up fixes — model_hint→--model + socket-default trap
Closed
#620 Fleet onboarding-injection — comms cheat-sheet + peer roster per agent
Closed
#616 F4 — Orchestrator chat connector abstraction + Matrix (local homeserver)
Closed
#614 Fleet enhancer role + two-agent floor (orchestrator + enhancer)
Closed
#611 Fleet-polish bundle — boot-survival symmetry (disable-on-remove + add-enable + init-R5)
Closed
#606 P6 — Docs, compliance matrix, alpha tag (constitution capstone)
Closed
#604 P5 — Overlay composer + cross-harness (compose-contract)
Closed
#600 F3: agent-watch viewer leak + workdir test settle-race
Closed
#598 F3: complete HB reader/writer consistency + sidecar hardening
Closed
#594 F3.1: heartbeat consistency (MOSAIC_HOME path + configurable interval)
Closed
#592 P4.1 fast-follow: fix stale install.sh comments + cmp-equal early-exit
Closed
#589 P4: upgrade-safe Constitution migration (both installers + fixtures)
Closed
#576 P3.1 fast-follow: constitution governance wording + gate config-format scope + bare-launch note
Closed
#578 Fleet Phase-2: operator observability (fleet ps + heartbeat + watch + send --verify)
Closed
#574 P3: extract Mosaic Constitution (L0) + gut AGENTS.md dispatcher
Closed
#571 P1+P2: public framework sanitization + blocking CI gate
Closed
#569 P0: MIT license + executable-leak sanitization (framework alpha)
Closed
#542 framework: add agency & persistence patterns to deployed config + guides
Closed
#564 Release harden Mosaic fleet before official rollout
Closed
#562 feat(fleet): local CLI canary dogfood
Closed
#559 fix(git-tools): remove eval from issue-create wrapper
Closed
#560 fix(git-tools): auto-detect Gitea --login from repo origin host (USC repos fail with default mosaicstack login)
Closed
#550 Wrapper hardening: TLS validation, cred-path fallback, no-CI fast-exit (framework/tools)
Closed
#546 feat(framework/tools): orchestration CI/dispatch helpers — lane-brief.sh + ci-wait.sh
Closed
#548 fix(framework/tools): eval injection, broken JSON, and tmpfile leak in git wrappers
Closed
#544 feat(agent-reflection): durable kernel (reflection.v1 capture + risk-floor + Phase-0 scripts)
Closed
#540 US-007: mosaic-as agent registration endpoint + scoped/revocable tokens
Closed
#536 tools/git/issue-close.sh pins tea login to 'mosaicstack' → fails on USC instance (issue-comment.sh works)
Closed
#516 Fix Gitea login selection for USC repos
Closed
#520 Harden pr-merge.sh Gitea empty-uid fallback
Closed
#528 Thin-core prompt diet: cut always-injected contract ~53% (AGENTS/TOOLS/RUNTIME)
Closed
#525 Reduce mosaic pi startup token overhead from skill catalog
Closed
#526 Fix Gitea CI wrappers after repository rename redirects
Closed
#514 probe
Closed
#462 FED-M3: mTLS handshake + list/get + scope enforcement
Closed
#461 FED-M2: Step-CA + grant schema + admin CLI
Closed
#460 FED-M1: Federated tier infrastructure
Closed
#457 install.sh does not seed TOOLS.md — breaks AGENTS.md mandatory load order
Closed
#454 fix(launcher): mosaic yolo runtime passes runtime name as initial user message
Closed
#438 IUV-M03: Install UX v2 — provider-first intelligent flow + drill-down main menu
Closed
#437 IUV-M02: Install UX v2 polish — CORS→FQDN, skill installer rework
Closed
#436 IUV-M01: Install UX v2 hotfix — bootstrap DTO, wizard failure propagation, port prefill, Pi SDK copy
Closed
#427 IUH-M03: Unified first-run wizard (collapse wizard + gateway install)
Closed
#426 IUH-M02: Wizard remediation — hooks visibility, password masking, headless path
Closed
#425 IUH-M01: mosaic uninstall — top-level teardown + shell wrapper
Closed
#391 Rename @mosaic/* to @mosaicstack/* and enhance update checker
Closed
#390 Test issue
Closed
#387 Simplify updater to @mosaic/mosaic only and fix Gitea wrapper repo context
Closed
#382 Fix updater to check @mosaic/mosaic instead of @mosaic/cli
Closed
#383 mosaic doctor fails with ERR_PACKAGE_PATH_NOT_EXPORTED fallback miss
Closed
#328 OC-MACP: OpenClaw MACP plugin — sessions_spawn runtime:macp with Pi dispatch and completion signaling
Closed
#288 M7-008: Publish channel-protocol.md
Closed
#284 M7-004: Design conversation multiplexing
Closed
#285 M7-005: Design remote auth bridging
Closed
#287 M7-007: Design multi-user isolation in Matrix
Closed
#286 M7-006: Design agent-to-agent communication via Matrix
Closed
#283 M7-003: Design Matrix integration
Closed
#277 M6-005: Migrate tier management → BullMQ
Closed
#276 M6-004: Migrate GC → BullMQ
Closed
#273 M6-001: Add BullMQ — configure with Valkey
Closed
#275 M6-003: Migrate summarization cron → BullMQ
Closed
#274 M6-002: Queue service — typed jobs, workers, error handling
Closed
#272 M5-008: Verify — /model switches, /agent switches, session resume
Closed
#282 M7-002: Define channel message protocol
Closed
#281 M7-001: Define IChannelAdapter interface
Closed
#279 M6-007: Job event logging — emit to agent_logs
Closed
#278 M6-006: Admin jobs API — /api/admin/jobs
Closed
#267 M5-003: /agent command — switch agent config mid-session
Closed
#266 M5-002: /model command — end-to-end wiring
Closed
#265 M5-001: Wire ChatGateway — load agent config from DB on session create
Closed
#264 M4-013: Verify — coding→Opus, summarize→GLM-5, /model override
Closed
#322 feat: M4-013/M5-001/M5-002/M5-003 — routing e2e tests + agent config + model/agent switching
Closed
#271 M5-007: Session metrics — token usage, model switches, duration
Closed
#270 M5-006: Agent creation from TUI — /agent new
Closed
#269 M5-005: Session info broadcast on model/agent switch
Closed
#268 M5-004: Session ↔ conversation binding — persist and resume
Closed
#263 M4-012: Wire routing into ChatGateway — every message routes
Closed
#258 M4-007: Routing override — /model forces specific model
Closed
#259 M4-008: Routing transparency — session:info includes decision reason
Closed
#261 M4-010: Per-user routing overrides
Closed
#262 M4-011: Agent specialization — declare capabilities in config
Closed
#260 M4-009: Routing rules CRUD — /api/routing/rules
Closed
#251 M3-012: Verify — all providers connect, list models, complete chat
Closed
#257 M4-006: Routing decision pipeline — classify → match → health → fallback
Closed
#249 M3-010: OAuth token storage — encrypted per-user in DB
Closed
#250 M3-011: Provider config CRUD — /api/providers
Closed
#256 M4-005: Task classification — regex/keyword classifier
Closed
#255 M4-004: Default routing rules — seed data
Closed
#244 M3-005: Z.ai GLM adapter — GLM-5
Closed
#253 M4-002: Condition types — taskType, complexity, domain, costTier, capabilities
Closed
#254 M4-003: Action types — routeTo with provider, model, agentConfig
Closed
#252 M4-001: Define routing rule schema — DB migration
Closed
#245 M3-006: Ollama adapter — refactor + embedding support
Closed
#243 M3-004: OpenRouter adapter — multi-model aggregator
Closed
#242 M3-003: OpenAI adapter — Codex gpt-5.4
Closed
#241 M3-002: Anthropic adapter — Claude Sonnet/Opus/Haiku 4.x
Closed
#248 M3-009: Refactor EmbeddingService — Ollama default
Closed
#246 M3-007: Provider health check — periodic probe + status endpoint
Closed
#240 M3-001: Refactor ProviderService into IProviderAdapter pattern
Closed
#247 M3-008: Model capability matrix
Closed
#238 M2-007: Integration test — cross-user isolation
Closed
#231 M1-008: Verify conversation persistence and context resume
Closed
#228 M1-005: Context window management — summarize when history exceeds 80%
Closed
#227 M1-004: Load conversation history into Pi session on resume
Closed
#300 M1-004/M1-005: Load conversation history on session resume
Closed
#229 M1-006: Conversation search endpoint
Closed
#239 M2-008: Audit Valkey keys — no cross-user enumeration
Closed
#230 M1-007: TUI /history command
Closed
#236 M2-005: Audit ConversationsRepo — ownership checks
Closed
#233 M2-002: Audit InsightsRepo — userId filter on findByUser, decayOldInsights
Closed
#237 M2-006: Audit AgentsRepo — findAccessible scope
Closed
#232 M2-001: Audit InsightsRepo — add userId to searchByEmbedding()
Closed
#235 M2-004: Audit agent memory tools — scope to session user
Closed
#234 M2-003: Audit PreferencesRepo — verify userId filtering
Closed
#226 M1-003: Store message metadata (model, provider, tokens, tool calls)
Closed
#224 M1-001: Wire ChatGateway → ConversationsRepo for user messages
Closed
#225 M1-002: Wire agent event relay → ConversationsRepo for assistant messages
Closed
#291 M1-001/002/003: Persist chat messages to DB
Closed
#53 Additional SSO providers — WorkOS + Keycloak
Closed
#192 bug(cli): Ctrl+T types "t" in input instead of cycling thinking level
Closed
#199 bug(cli): TUI displays hardcoded version "0.0.0" instead of actual semver
Closed
#193 bug(cli): duplicate React keys in CommandAutocomplete — "clear" and "help" collisions
Closed
#194 bug(cli): /provider login — "URL copied to clipboard" but no clipboard copy occurs
Closed
#195 bug(web): DELETE conversation fails with "Failed to fetch" TypeError
Closed
#196 bug(web): admin page redirects to /chat — role check fails
Closed
#191 bug(cli): sidebar "d" delete action does not delete a conversation
Closed
#197 bug(gateway): projects list endpoint returns ALL projects regardless of ownership — data privacy violation
Closed
#172 P8-019: Verify Platform Architecture — integration + E2E verification
Closed
#170 P8-017: TUI Phase 8 — autocomplete sidebar, fuzzy match, arg hints, up-arrow history
Closed
#168 P8-015: Gateway Phase 7 — WorkspaceService, ProjectBootstrapService, Teams project ownership
Closed
#166 P8-013: Gateway Phase 5 — MosaicPlugin lifecycle, ReloadService, hot reload
Closed
#165 P8-012: Gateway Phase 4 — /agent, /provider, /mission, /prdy, /tools commands
Closed
#167 P8-014: Gateway Phase 6 — SessionGCService, all three GC tiers, /gc command
Closed
#164 P8-011: Gateway Phase 3 — PreferencesService, /preferences REST, /system Valkey override
Closed
#163 P8-010: Gateway Phase 2 — CommandRegistryService, CommandExecutorService, command module
Closed
#169 P8-016: Security — strict path hardening in file/git/shell tools
Closed
#162 P8-009: TUI Phase 1 — slash command parsing, local commands, InputBar wiring
Closed
#160 P8-007: DB migrations — preferences.mutable + teams schema
Closed
#161 P8-008: @mosaic/types — CommandDef, CommandManifest, socket events
Closed
#171 P8-018: Spin-off plan stubs — Gatekeeper, Task Queue Unification, Chroot Sandboxing
Closed
#132 P7-021: Verify Phase 7 — feature-complete platform E2E
Closed
#58 Bare-metal deployment docs + .env.example
Closed
#55 E2E test suite — Playwright critical paths
Closed
#57 Documentation — user guide, admin guide, dev guide
Closed
#125 P7-014: Web admin panel — user CRUD, role assignment, system health
Closed
#131 P7-020: Coord DB migration — project-scoped missions, multi-tenant RBAC
Closed
#134 FIX-03: Agent session — cwd sandbox, system prompt, tool restrictions
Closed
#133 FIX-02: TUI agent:end — fix React state updater side-effect
Closed
#130 P7-019: CLI session management — list, resume, destroy sessions
Closed
#129 P7-018: CLI model/provider switching — --model, --provider, /model in TUI
Closed
#124 P7-013: Web settings persistence — profile, preferences save to DB
Closed
#128 P7-017: Agent skill invocation — load and execute skills from catalog
Closed
#123 P7-012: Web provider management UI — add, configure, test LLM providers
Closed
#127 P7-016: MCP client — gateway connects to external MCP servers as tools
Closed
#122 P7-011: Web project detail views — missions, tasks, PRDs, dashboards
Closed
#121 P7-010: Web conversation management — list, search, rename, delete, archive
Closed
#126 P7-015: Agent tool expansion — file ops, git, shell exec, web fetch
Closed
#52 MCP endpoint hardening — streamable HTTP transport
Closed
#120 P7-009: Web chat — WebSocket integration, streaming, conversation switching
Closed
#51 Verify Phase 6 — CLI functional, all subcommands
Closed
#48 @mosaic/quality-rails — migrate scaffolder from v0
Closed
#49 @mosaic/mosaic — install wizard for v1
Closed
#47 @mosaic/prdy — migrate PRD wizard from v0
Closed
#46 @mosaic/cli — unified CLI binary + subcommands
Closed
#45 Verify Phase 5 — Discord + Telegram + SSO working
Closed
#96 P5-004: Authentik OIDC adapter via Better Auth genericOAuth
Closed
#43 @mosaic/telegram-plugin — Telegraf bot + channel plugin
Closed
#41 Plugin host — gateway plugin loading + channel interface
Closed
#40 Verify Phase 4 — memory + log pipeline working
Closed
#36 @mosaic/log — log ingest, parsing, tiered storage
Closed
#39 Skill management — catalog, install, config
Closed
#37 Summarization pipeline — Haiku-tier LLM + cron
Closed
#38 Memory integration — inject into agent sessions
Closed
#35 Semantic search — pgvector embeddings + search API
Closed
#34 @mosaic/memory — preference + insight stores
Closed
#33 Verify Phase 3 — web dashboard functional E2E
Closed
#32 Admin panel — user management, RBAC
Closed
#31 Settings — provider config, profile, integrations
Closed
#30 Project & mission views — dashboard + PRD viewer
Closed
#29 Task management — list view + kanban board
Closed
#28 Chat UI — conversations, messages, streaming
Closed
#27 Auth pages — login, registration, SSO redirect
Closed
#26 apps/web scaffold — Next.js 16 + BetterAuth + Tailwind
Closed
#80 fix: coord review remediations — path traversal, JSON parse guards, race condition
Closed
#25 Verify Phase 2 — multi-provider routing works
Closed
#62 fix: call piSession.dispose() in AgentService.destroySession
Closed
#24 Agent session management — tmux + monitoring
Closed
#23 @mosaic/coord — migrate from v0, gateway integration
Closed
#22 Tool registration — brain, queue, memory tools
Closed
#21 Agent routing engine — cost/capability matrix
Closed
#20 Multi-provider support — Anthropic + Ollama
Closed
#18 Verify Phase 1 — gateway functional, API tested
Closed
#14 Gateway routes — conversations CRUD + messages
Closed
#15 Gateway routes — tasks, projects, missions CRUD
Closed
#13 @mosaic/queue — migrate from v0
Closed
#12 @mosaic/brain — migrate from v0, PG backend
Closed
#11 Auth middleware — BetterAuth session validation
Closed
#9 Verify Phase 0 — CI green, all packages build
Closed
#7 CI pipeline — Woodpecker config
Closed
#8 Project docs — AGENTS.md, CLAUDE.md, README
Closed
#4 @mosaic/auth — BetterAuth email/password setup
Closed
#3 @mosaic/db — Drizzle schema and PG connection
Closed
#2 @mosaic/types — migrate and extend shared types
Closed
#6 OTEL foundation — OpenTelemetry SDK setup
Closed
#5 Docker Compose — PG 17, Valkey 8, SigNoz
Closed
#17 Basic agent dispatch — single provider
Closed
#16 WebSocket server — chat streaming
Closed
#42 @mosaic/discord-plugin — Discord bot + channel plugin
Closed
#50 Pi TUI integration — mosaic tui
Closed
#10 apps/gateway scaffold — NestJS + Fastify adapter
Closed
#19 @mosaic/agent — Pi SDK integration + agent pool
Closed
#1 Scaffold monorepo
718 Issues created by 24 users
Opened
#2 @mosaic/types — migrate and extend shared types
Opened
#1 Scaffold monorepo
Opened
#5 Docker Compose — PG 17, Valkey 8, SigNoz
Opened
#8 Project docs — AGENTS.md, CLAUDE.md, README
Opened
#3 @mosaic/db — Drizzle schema and PG connection
Opened
#7 CI pipeline — Woodpecker config
Opened
#6 OTEL foundation — OpenTelemetry SDK setup
Opened
#4 @mosaic/auth — BetterAuth email/password setup
Opened
#9 Verify Phase 0 — CI green, all packages build
Opened
#10 apps/gateway scaffold — NestJS + Fastify adapter
Opened
#14 Gateway routes — conversations CRUD + messages
Opened
#13 @mosaic/queue — migrate from v0
Opened
#15 Gateway routes — tasks, projects, missions CRUD
Opened
#16 WebSocket server — chat streaming
Opened
#11 Auth middleware — BetterAuth session validation
Opened
#12 @mosaic/brain — migrate from v0, PG backend
Opened
#17 Basic agent dispatch — single provider
Opened
#18 Verify Phase 1 — gateway functional, API tested
Opened
#19 @mosaic/agent — Pi SDK integration + agent pool
Opened
#20 Multi-provider support — Anthropic + Ollama
Opened
#21 Agent routing engine — cost/capability matrix
Opened
#22 Tool registration — brain, queue, memory tools
Opened
#23 @mosaic/coord — migrate from v0, gateway integration
Opened
#24 Agent session management — tmux + monitoring
Opened
#25 Verify Phase 2 — multi-provider routing works
Opened
#26 apps/web scaffold — Next.js 16 + BetterAuth + Tailwind
Opened
#31 Settings — provider config, profile, integrations
Opened
#30 Project & mission views — dashboard + PRD viewer
Opened
#29 Task management — list view + kanban board
Opened
#28 Chat UI — conversations, messages, streaming
Opened
#27 Auth pages — login, registration, SSO redirect
Opened
#33 Verify Phase 3 — web dashboard functional E2E
Opened
#32 Admin panel — user management, RBAC
Opened
#36 @mosaic/log — log ingest, parsing, tiered storage
Opened
#37 Summarization pipeline — Haiku-tier LLM + cron
Opened
#38 Memory integration — inject into agent sessions
Opened
#34 @mosaic/memory — preference + insight stores
Opened
#35 Semantic search — pgvector embeddings + search API
Opened
#39 Skill management — catalog, install, config
Opened
#40 Verify Phase 4 — memory + log pipeline working
Opened
#42 @mosaic/discord-plugin — Discord bot + channel plugin
Opened
#41 Plugin host — gateway plugin loading + channel interface
Opened
#45 Verify Phase 5 — Discord + Telegram + SSO working
Opened
#44 SSO — Authentik OIDC adapter end-to-end
Opened
#43 @mosaic/telegram-plugin — Telegraf bot + channel plugin
Opened
#46 @mosaic/cli — unified CLI binary + subcommands
Opened
#49 @mosaic/mosaic — install wizard for v1
Opened
#50 Pi TUI integration — mosaic tui
Opened
#51 Verify Phase 6 — CLI functional, all subcommands
Opened
#48 @mosaic/quality-rails — migrate scaffolder from v0
Opened
#47 @mosaic/prdy — migrate PRD wizard from v0
Opened
#54 Additional LLM providers — Codex, Z.ai, LM Studio, llama.cpp
Opened
#57 Documentation — user guide, admin guide, dev guide
Opened
#53 Additional SSO providers — WorkOS + Keycloak
Opened
#56 Performance optimization
Opened
#55 E2E test suite — Playwright critical paths
Opened
#58 Bare-metal deployment docs + .env.example
Opened
#52 MCP endpoint hardening — streamable HTTP transport
Opened
#59 Beta release gate — v0.1.0 tag
Opened
#63 fix: TUI agent:end handler calls setMessages inside setCurrentStreamText updater
Opened
#62 fix: call piSession.dispose() in AgentService.destroySession
Opened
#64 fix: agent session needs cwd sandboxing, system prompt, and tool restrictions
Opened
#80 fix: coord review remediations — path traversal, JSON parse guards, race condition
Opened
#94 feat(plugins): plugin-to-gateway WebSocket auth mechanism
Opened
#96 P5-004: Authentik OIDC adapter via Better Auth genericOAuth
Opened
#120 P7-009: Web chat — WebSocket integration, streaming, conversation switching
Opened
#121 P7-010: Web conversation management — list, search, rename, delete, archive
Opened
#122 P7-011: Web project detail views — missions, tasks, PRDs, dashboards
Opened
#123 P7-012: Web provider management UI — add, configure, test LLM providers
Opened
#124 P7-013: Web settings persistence — profile, preferences save to DB
Opened
#125 P7-014: Web admin panel — user CRUD, role assignment, system health
Opened
#127 P7-016: MCP client — gateway connects to external MCP servers as tools
Opened
#126 P7-015: Agent tool expansion — file ops, git, shell exec, web fetch
Opened
#128 P7-017: Agent skill invocation — load and execute skills from catalog
Opened
#130 P7-019: CLI session management — list, resume, destroy sessions
Opened
#129 P7-018: CLI model/provider switching — --model, --provider, /model in TUI
Opened
#132 P7-021: Verify Phase 7 — feature-complete platform E2E
Opened
#131 P7-020: Coord DB migration — project-scoped missions, multi-tenant RBAC
Opened
#133 FIX-02: TUI agent:end — fix React state updater side-effect
Opened
#134 FIX-03: Agent session — cwd sandbox, system prompt, tool restrictions
Opened
#160 P8-007: DB migrations — preferences.mutable + teams schema
Opened
#161 P8-008: @mosaic/types — CommandDef, CommandManifest, socket events
Opened
#162 P8-009: TUI Phase 1 — slash command parsing, local commands, InputBar wiring
Opened
#163 P8-010: Gateway Phase 2 — CommandRegistryService, CommandExecutorService, command module
Opened
#164 P8-011: Gateway Phase 3 — PreferencesService, /preferences REST, /system Valkey override
Opened
#166 P8-013: Gateway Phase 5 — MosaicPlugin lifecycle, ReloadService, hot reload
Opened
#165 P8-012: Gateway Phase 4 — /agent, /provider, /mission, /prdy, /tools commands
Opened
#167 P8-014: Gateway Phase 6 — SessionGCService, all three GC tiers, /gc command
Opened
#168 P8-015: Gateway Phase 7 — WorkspaceService, ProjectBootstrapService, Teams project ownership
Opened
#169 P8-016: Security — strict path hardening in file/git/shell tools
Opened
#171 P8-018: Spin-off plan stubs — Gatekeeper, Task Queue Unification, Chroot Sandboxing
Opened
#170 P8-017: TUI Phase 8 — autocomplete sidebar, fuzzy match, arg hints, up-arrow history
Opened
#172 P8-019: Verify Platform Architecture — integration + E2E verification
Opened
#191 bug(cli): sidebar "d" delete action does not delete a conversation
Opened
#192 bug(cli): Ctrl+T types "t" in input instead of cycling thinking level
Opened
#193 bug(cli): duplicate React keys in CommandAutocomplete — "clear" and "help" collisions
Opened
#194 bug(cli): /provider login — "URL copied to clipboard" but no clipboard copy occurs
Opened
#195 bug(web): DELETE conversation fails with "Failed to fetch" TypeError
Opened
#196 bug(web): admin page redirects to /chat — role check fails
Opened
#197 bug(gateway): projects list endpoint returns ALL projects regardless of ownership — data privacy violation
Opened
#199 bug(cli): TUI displays hardcoded version "0.0.0" instead of actual semver
Opened
#206 bug: Shift+Tab thinking cycle is a no-op when model has no reasoning support
Opened
#208 bug: Ollama and custom provider models always registered with reasoning: false, breaking thinking level support
Opened
#209 ux: No feedback in CLI TUI when Shift+Tab thinking cycle is unsupported for current model
Opened
#207 bug: ProviderService.getDefaultModel() returns first available model with no reasoning guarantee
Opened
#226 M1-003: Store message metadata (model, provider, tokens, tool calls)
Opened
#227 M1-004: Load conversation history into Pi session on resume
Opened
#225 M1-002: Wire agent event relay → ConversationsRepo for assistant messages
Opened
#224 M1-001: Wire ChatGateway → ConversationsRepo for user messages
Opened
#230 M1-007: TUI /history command
Opened
#231 M1-008: Verify conversation persistence and context resume
Opened
#229 M1-006: Conversation search endpoint
Opened
#228 M1-005: Context window management — summarize when history exceeds 80%
Opened
#234 M2-003: Audit PreferencesRepo — verify userId filtering
Opened
#233 M2-002: Audit InsightsRepo — userId filter on findByUser, decayOldInsights
Opened
#232 M2-001: Audit InsightsRepo — add userId to searchByEmbedding()
Opened
#238 M2-007: Integration test — cross-user isolation
Opened
#236 M2-005: Audit ConversationsRepo — ownership checks
Opened
#237 M2-006: Audit AgentsRepo — findAccessible scope
Opened
#235 M2-004: Audit agent memory tools — scope to session user
Opened
#239 M2-008: Audit Valkey keys — no cross-user enumeration
Opened
#242 M3-003: OpenAI adapter — Codex gpt-5.4
Opened
#240 M3-001: Refactor ProviderService into IProviderAdapter pattern
Opened
#241 M3-002: Anthropic adapter — Claude Sonnet/Opus/Haiku 4.x
Opened
#246 M3-007: Provider health check — periodic probe + status endpoint
Opened
#243 M3-004: OpenRouter adapter — multi-model aggregator
Opened
#245 M3-006: Ollama adapter — refactor + embedding support
Opened
#244 M3-005: Z.ai GLM adapter — GLM-5
Opened
#247 M3-008: Model capability matrix
Opened
#248 M3-009: Refactor EmbeddingService — Ollama default
Opened
#250 M3-011: Provider config CRUD — /api/providers
Opened
#249 M3-010: OAuth token storage — encrypted per-user in DB
Opened
#251 M3-012: Verify — all providers connect, list models, complete chat
Opened
#252 M4-001: Define routing rule schema — DB migration
Opened
#254 M4-003: Action types — routeTo with provider, model, agentConfig
Opened
#256 M4-005: Task classification — regex/keyword classifier
Opened
#255 M4-004: Default routing rules — seed data
Opened
#253 M4-002: Condition types — taskType, complexity, domain, costTier, capabilities
Opened
#257 M4-006: Routing decision pipeline — classify → match → health → fallback
Opened
#260 M4-009: Routing rules CRUD — /api/routing/rules
Opened
#259 M4-008: Routing transparency — session:info includes decision reason
Opened
#258 M4-007: Routing override — /model forces specific model
Opened
#262 M4-011: Agent specialization — declare capabilities in config
Opened
#264 M4-013: Verify — coding→Opus, summarize→GLM-5, /model override
Opened
#261 M4-010: Per-user routing overrides
Opened
#263 M4-012: Wire routing into ChatGateway — every message routes
Opened
#268 M5-004: Session ↔ conversation binding — persist and resume
Opened
#267 M5-003: /agent command — switch agent config mid-session
Opened
#266 M5-002: /model command — end-to-end wiring
Opened
#269 M5-005: Session info broadcast on model/agent switch
Opened
#265 M5-001: Wire ChatGateway — load agent config from DB on session create
Opened
#271 M5-007: Session metrics — token usage, model switches, duration
Opened
#270 M5-006: Agent creation from TUI — /agent new
Opened
#272 M5-008: Verify — /model switches, /agent switches, session resume
Opened
#273 M6-001: Add BullMQ — configure with Valkey
Opened
#275 M6-003: Migrate summarization cron → BullMQ
Opened
#277 M6-005: Migrate tier management → BullMQ
Opened
#276 M6-004: Migrate GC → BullMQ
Opened
#274 M6-002: Queue service — typed jobs, workers, error handling
Opened
#279 M6-007: Job event logging — emit to agent_logs
Opened
#278 M6-006: Admin jobs API — /api/admin/jobs
Opened
#280 M6-008: Verify — jobs schedule, retry, admin monitors
Opened
#282 M7-002: Define channel message protocol
Opened
#281 M7-001: Define IChannelAdapter interface
Opened
#285 M7-005: Design remote auth bridging
Opened
#284 M7-004: Design conversation multiplexing
Opened
#286 M7-006: Design agent-to-agent communication via Matrix
Opened
#283 M7-003: Design Matrix integration
Opened
#287 M7-007: Design multi-user isolation in Matrix
Opened
#288 M7-008: Publish channel-protocol.md
Opened
#291 M1-001/002/003: Persist chat messages to DB
Opened
#300 M1-004/M1-005: Load conversation history on session resume
Opened
#322 feat: M4-013/M5-001/M5-002/M5-003 — routing e2e tests + agent config + model/agent switching
Opened
#328 OC-MACP: OpenClaw MACP plugin — sessions_spawn runtime:macp with Pi dispatch and completion signaling
Opened
#382 Fix updater to check @mosaic/mosaic instead of @mosaic/cli
Opened
#383 mosaic doctor fails with ERR_PACKAGE_PATH_NOT_EXPORTED fallback miss
Opened
#387 Simplify updater to @mosaic/mosaic only and fix Gitea wrapper repo context
Opened
#390 Test issue
Opened
#391 Rename @mosaic/* to @mosaicstack/* and enhance update checker
Opened
#425 IUH-M01: mosaic uninstall — top-level teardown + shell wrapper
Opened
#426 IUH-M02: Wizard remediation — hooks visibility, password masking, headless path
Opened
#427 IUH-M03: Unified first-run wizard (collapse wizard + gateway install)
Opened
#428 IUH-M01: mosaic uninstall — top-level teardown + shell wrapper
Opened
#436 IUV-M01: Install UX v2 hotfix — bootstrap DTO, wizard failure propagation, port prefill, Pi SDK copy
Opened
#438 IUV-M03: Install UX v2 — provider-first intelligent flow + drill-down main menu
Opened
#437 IUV-M02: Install UX v2 polish — CORS→FQDN, skill installer rework
Opened
#454 fix(launcher): mosaic yolo runtime passes runtime name as initial user message
Opened
#457 install.sh does not seed TOOLS.md — breaks AGENTS.md mandatory load order
Opened
#460 FED-M1: Federated tier infrastructure
Opened
#461 FED-M2: Step-CA + grant schema + admin CLI
Opened
#462 FED-M3: mTLS handshake + list/get + scope enforcement
Opened
#463 FED-M4: search verb + audit log + rate limit
Opened
#464 FED-M5: cache + offline degradation + OTEL
Opened
#465 FED-M6: revocation + auto-renewal + CRL
Opened
#466 FED-M7: multi-user RBAC hardening + acceptance suite
Opened
#482 Federation E2E test deployment infrastructure (mos-test-1/-2)
Opened
#512 docs(AGENTS.md): STANDARDS.md path mismatch + subagent inheritance gap
Opened
#514 probe
Opened
#515 Skill YAML invalid + missing typecheck-hook install on [email protected]
Opened
#516 Fix Gitea login selection for USC repos
Opened
#520 Harden pr-merge.sh Gitea empty-uid fallback
Opened
#525 Reduce mosaic pi startup token overhead from skill catalog
Opened
#526 Fix Gitea CI wrappers after repository rename redirects
Opened
#528 Thin-core prompt diet: cut always-injected contract ~53% (AGENTS/TOOLS/RUNTIME)
Opened
#536 tools/git/issue-close.sh pins tea login to 'mosaicstack' → fails on USC instance (issue-comment.sh works)
Opened
#539 mosaic 0.0.31: npm package drops exec bits on tools/_scripts/* — breaks 'mosaic yolo' preflight
Opened
#540 US-007: mosaic-as agent registration endpoint + scoped/revocable tokens
Opened
#542 framework: add agency & persistence patterns to deployed config + guides
Opened
#544 feat(agent-reflection): durable kernel (reflection.v1 capture + risk-floor + Phase-0 scripts)
Opened
#546 feat(framework/tools): orchestration CI/dispatch helpers — lane-brief.sh + ci-wait.sh
Opened
#548 fix(framework/tools): eval injection, broken JSON, and tmpfile leak in git wrappers
Opened
#550 Wrapper hardening: TLS validation, cred-path fallback, no-CI fast-exit (framework/tools)
Opened
#558 feat(orchestration): budget windows with arbitrary reset datetimes
Opened
#559 fix(git-tools): remove eval from issue-create wrapper
Opened
#560 fix(git-tools): auto-detect Gitea --login from repo origin host (USC repos fail with default mosaicstack login)
Opened
#561 enhance(fleet-host): provide bare 'python' (python-is-python3) on agent hosts — 19x 'python: command not found'/24h
Opened
#562 feat(fleet): local CLI canary dogfood
Opened
#564 Release harden Mosaic fleet before official rollout
Opened
#569 P0: MIT license + executable-leak sanitization (framework alpha)
Opened
#571 P1+P2: public framework sanitization + blocking CI gate
Opened
#573 framework: genericize private third-party host refs (uscllc) — deferred from P2
Opened
#574 P3: extract Mosaic Constitution (L0) + gut AGENTS.md dispatcher
Opened
#576 P3.1 fast-follow: constitution governance wording + gate config-format scope + bare-launch note
Opened
#578 Fleet Phase-2: operator observability (fleet ps + heartbeat + watch + send --verify)
Opened
#580 enhance(fleet-runtime): upgrade fleet Claude Code v2.1.81 -> >=v2.1.89 — eliminates #1 error class (Read-before-Edit, 105+/24h)
Opened
#589 P4: upgrade-safe Constitution migration (both installers + fixtures)
Opened
#592 P4.1 fast-follow: fix stale install.sh comments + cmp-equal early-exit
Opened
#594 F3.1: heartbeat consistency (MOSAIC_HOME path + configurable interval)
Opened
#598 F3: complete HB reader/writer consistency + sidecar hardening
Opened
#600 F3: agent-watch viewer leak + workdir test settle-race
Opened
#604 P5 — Overlay composer + cross-harness (compose-contract)
Opened
#606 P6 — Docs, compliance matrix, alpha tag (constitution capstone)
Opened
#609 F3-m3 — mosaic update re-seeds framework + relaunches agents (R13)
Opened
#611 Fleet-polish bundle — boot-survival symmetry (disable-on-remove + add-enable + init-R5)
Opened
#614 Fleet enhancer role + two-agent floor (orchestrator + enhancer)
Opened
#616 F4 — Orchestrator chat connector abstraction + Matrix (local homeserver)
Opened
#620 Fleet onboarding-injection — comms cheat-sheet + peer roster per agent
Opened
#622 Spend-accounting template standard: PRDs/missions/task-decomposition carry PROJECTED + ACTUAL token spend
Opened
#623 mosaicstack.dev anonymized spend telemetry — endpoint + client + anonymization + aggregation (product feature)
Opened
#625 roster.schema.json: add optional tenant_id field (north-star invariant #1 has no roster home)
Opened
#626 Fleet stand-up fixes — model_hint→--model + socket-default trap
Opened
#628 Forge<->Fleet bridge: concrete forge TaskExecutor adapter dispatching stages via the fleet (agent-send.sh)
Opened
#631 CRITICAL: framework re-seed (install.sh keep mode / mosaic update) WIPES ~/.config/mosaic/fleet/roster.yaml
Opened
#633 Onboarding/comms injection MUST cover ALL agent launch paths (orchestrator + raw claude --channels), not just mosaic yolo spawns
Opened
#634 CI: eliminate cold pnpm install via pre-baked image (Phase 1)
Opened
#636 PATH B: roster-native launch-config data model (harness/yolo/model/command) for webUI binding
Opened
#642 mosaic update: framework reseed skipped when CLI is updated outside mosaic update (stale tools/, incl. tmux helpers)
Opened
#643 Cut 0.0.42: ship #552 (agent-send.sh --class) — merged 64 min after 0.0.41 was tagged
Opened
#644 Fleet never-sleeps: auto-trust workdir for fleet-launched agent sessions (factory orchestrator stalled at 'trust this folder?' gate)
Opened
#675 Installer: quick-start provider gate (#1) + local-tier gateway Redis (#2)
Opened
#684 fix(federation): enrollment URL derives from BETTER_AUTH_URL instead of the gateway base URL
Opened
#693 Spike: Evaluate headroomlabs-ai/headroom (LLM context compressor, Apache-2.0) for Mosaic — gated, lossy-risk-aware
Opened
#695 send-message.sh: false '✓ delivered' for long messages — draft detection misses wrapped input
Opened
#696 Align repo-root agent governance files
Opened
#699 credential loader breaks under HOME-redirected profiles (Hermes profile homes)
Opened
#701 git wrappers: -h/--help prints help but exits 1 (7 scripts) — phantom tool errors fleet-wide
Opened
#703 fix(framework): restore resilient Git wrapper issue creation
Opened
#704 test: #703 deployed interactive wrapper verification
Opened
#706 Tess: Pi-native Mosaic interaction agent and Hermes migration bridge
Opened
#707 Tess M1: Runtime contracts and security foundation
Opened
#708 Tess M2: Durable Pi service and agent state
Opened
#710 Tess M4: Fleet, Mos, Hermes, memory and operator plugins
Opened
#709 Tess M3: Dedicated Discord and CLI interaction
Opened
#711 Tess M5: Matrix migration, recovery, docs and qualification
Opened
#747 de-hardcode orchestrator/interaction agent brand names (Mos/Tess) from coord + durable-session + roster schema
Opened
#751 Native Kanban/SOT canonical contract and P0-P3 delivery plan
Opened
#753 KBN-010: Threat, authorization, and constraint-impact gate
Opened
#754 Runtime-neutral Mos identity and fenced cross-harness failover
Opened
#755 Mos portability M1: logical identity and durable connector lease fencing
Opened
#756 Official Discord channel plugin: harness-neutral routing and native thread policy
Opened
#758 Fleet configuration control plane and operator documentation
Opened
#766 fix(fleet): make tmux comms targets unambiguous across harnesses
Opened
#767 plan(pi): benchmark and improve harness task-completion competitiveness
Opened
#769 KBN-100: implement unified Drizzle schema and N-1 PostgreSQL migration
Opened
#771 KBN-101: separate PostgreSQL migration-owner and runtime application identities
Opened
#775 KBN-101-00: bootstrap PostgreSQL roles and pgvector ownership
Opened
#776 KBN-101-01: typed database identity config and runtime verifier
Opened
#777 KBN-101-03: sole migrator, exact ledger, and mosaic schema foundation
Opened
#778 KBN-101-02: close runtime PostgreSQL DDL and secure data importer
Opened
#779 KBN-101-04: migrate installer and wizard database secret boundary
Opened
#780 KBN-101-05: render PostgreSQL secrets and deployment topology
Opened
#781 KBN-101-07: publish database role-split operator runbooks
Opened
#782 KBN-101-06: enforce finite DDL inventory and command matrix in CI
Opened
#784 KBN-101-09: certify immutable KBN runtime privileges
Opened
#783 KBN-101-08: certify and atomically activate role-split foundation
Opened
#790 feat(launcher): 'mosaic yolo claudex' — GPT-in-Claude-Code launcher via claude-code-proxy
Opened
#791 Framework upgrades must not destroy operator-owned config under ~/.config/mosaic
Opened
#792 fleet.js: unhandled ENOENT on missing roster (+ sweep class); install.sh mangles @mosaicstack/mosaic heading
Opened
#794 harden: reject whitespace-only tmux socket_name in roster-v2 (silently selects default server)
Opened
#795 framework-tooling: codex review wrappers (PR mode) review the wrong branch + auto-post to PR
Opened
#796 EPIC: Agent Roster + webUI oversight + health watch
Opened
#797 roster: data model + event-driven update protocol (always-current)
Opened
#798 webUI: alias tabs + hierarchy master table + live terminal embed
Opened
#799 health watch + alerting (service-failure detection; e.g. gitea-pr-watch blackhole)
Opened
#800 roster storage evolution: file (integrity-hardened) -> DB + RLS
Opened
#801 Generic provider-agnostic PR/issue watcher service (pr-watch@<instance>) [epic #796]
Opened
#803 install.sh: mosaicstack.dev/install.sh returns HTTP 500 — primary advertised install path is down
Opened
#804 install.sh: unknown flags silently ignored — --next from main/mosaicstack.dev installs @latest and reports success
Opened
#805 docs(readme): document both stable and "next" (pre-release) install paths
Opened
#807 glpi: list wrappers reject HTTP 206, GLPI's normal response to a ranged query
Opened
#808 tmux/agent-send.sh: stamps a false sender whenever the sender's session is not on the destination socket
Opened
#812 framework git wrapper: Gitea comment action silently posts nothing
Opened
#814 fleet: migrate all fleet writers to an fd-held advisory lock (retire pathname sentinel locks; close release TOCTOU)
Opened
#816 Discord plugin: production activation qualification and rollback
Opened
#817 Discord plugin: managed binding and authorization administration
Opened
#820 [EPIC] Context-flush & orchestrator session-leasing: role state_class registry + flush_policy + lease lifecycle (plan-only)
Opened
#822 feat: mosaic broadcast — fleet-wide message via roster SSOT with auto-injected routing preamble
Opened
#823 docs(framework): augment mosaic-orchestrator Worker Launch Rules with WHY + pi/gpt yolo model syntax
Opened
#824 mosaic skill management CLI — register/unregister + symlink-bridge auto-sync on install/upgrade
Opened
#827 WI-0: R4 Gate0 runtime-evidence probe — BUILD-ADMISSION GATE (do FIRST)
Opened
#828 WI-1: Authenticated external lease broker — SO_PEERCRED identity + broker-minted session_id
Opened
#829 WI-2: Whole mutator-class gate (revoke-first / promote-last)
Opened
#830 WI-3: Compaction observers → revoke + runtime_generation auto-revoke
Opened
#831 WI-4: Verbatim-hashed normative fragments — B_payload / H_payload (no self-reference, byte-identical Claude↔Pi)
Opened
#832 WI-5: Broker-minted one-time receipt-challenge protocol (COMPUTE=broker / COPY=model)
Opened
#833 WI-6: Constrained recovery command + mosaic-context-refresh skill wrapper
Opened
#834 WI-7: T-C server-side branch-protection line + R1 honesty doc amendment
Opened
#835 [framework-bug/tooling][p3-low] pr-review.sh: tea pr approve/tea pr reject pass unsupported --comment flag → durable approval RoR fails closed
Opened
#838 test(broker): harden acceptance socket-read against empty/truncated reply (flaky main #1917)
Opened
#840 codex review diff-builder corrupts stdin on untracked binary files (null-byte / 'Failed to read prompt from stdin')
Opened
#841 send-message.sh (mandated comms tool) silently drops on wrong-path guess — add compat symlinks
Opened
#843 tooling: switch release channel stable ⇄ next via mosaic CLI / install.sh (consumer-side channel selector)
Opened
#849 flake: recovery_runtime_unittest b2 per-test broker-socket ConnectionRefused race (gates FCM-M5-001 completion)
Opened
#850 #812 follow-up: detect-platform.sh host-match conflates SSH transport port with HTTP(S) provider port + asymmetric default-web-port normalization
Opened
#854 roster-v2 canonical socket_name accepts empty string — tmux socket-boundary isolation validation gap
Opened
#855 framework: merge wrappers must stamp executor provenance (session/pane/PID/host) in a durable pre-merge provider receipt
Opened
#856 worker worktrees run QA gates before pnpm install → eslint/prettier/tsc/vitest 'not found' (131/147 fleet errors)
Opened
#860 flaky test: mosaic "whole mutator-class lease gate > observer revocation and monotonic TTL expiry deny the next mutator" (timing flake) blocks #856/#858 terminal completion
Opened
#862 feat: official Microsoft 365 / Graph tool suite (MCP-independent, app-registration based)
Opened
#864 send-message.sh: unknown tmux target → no live-roster hint + installer1↔installer-1 naming-drift misroutes (20 fails/13 sessions/24h)
Opened
#865 bug: tea CLI 0.11.1 silently no-ops on tea pr comment / tea issue comment — false-success durable-comment writes fleet-wide
Opened
#867 pr-metadata.sh + pr-merge.sh lack -r/--repo (sibling wrappers have it) → cross-repo PR ops fail with 'Unknown option: -r'
Opened
#869 deploy-gap: #828 lease-broker enforcement hooks shipped without a running broker daemon — bricks fleet agents (GATE_UNAVAILABLE / Stop-block)
Opened
#872 fix(tools/git): ci-queue-wait.sh crashes (JSONDecodeError) on 404 for not-yet-pushed branch
Opened
#873 feat(tools/git): per-agent Gitea identity (author-not-equal-reviewer separation)
Opened
#875 fix(tools/git): pr-review.sh _belongs case-sensitive path compare rejects mixed-case repo slugs
Opened
#880 glpi: ticket-create.sh should support setting a requester (-r flag)
Opened
#882 #869 Point-1 install-guard follow-ups (Windows .ps1 / --sync-only bypass / finalize.ts opt-out-warn)
Opened
#885 glpi/ticket-create.sh: support parent/child ticket linkage (-P) for hierarchical audit trails
Opened
#887 [EPIC] Comms-evolution: Mosaic-native Matrix layer + MACP standard (RFC-001 + RFC-002)
Opened
#891 tooling: framework tooling-upstream batch (25-07 handoff) — detect-platform / pr-review / dispatch-fresh / systemd-reset
Opened
#892 EPIC: Wake/Heartbeat Efficiency — canon framework component (§6 category-A)
Opened
#897 flaky-test: recovery_b1_adversarial_unittest.py wait_ready() TOCTOU race → ECONNREFUSED under CI load
Opened
#899 flaky-test (expedited): apply #898 wait_ready connect-probe to recovery_runtime_unittest.py (co-equal CI vector)
Opened
#905 wake/W3 hardening: align digest.sh fail-loud validator to treat top-level .claim as actionable (non-canonical locator-gate gap)
Opened
#908 wake/W4 hardening (low-pri): observed_seq incremented before store enqueue can permanently wedge the inbox
Opened
#912 CI: exercise both wake HMAC legs (W3 digest + W7 beacon) — add openssl, flip SKIP→hard-require in CI
Opened
#913 wake canon adoption gaps (dragon-lin pilot, non-blocking): install dep-check + service systemd-path link
Opened
#914 wake/digest.sh renderer nits (pilot E2E): WAKE_AGENT-prefixed ack line + digest-class locator threading
Opened
#917 wake/store hardening (low-pri, def-in-depth): gate the final observed_seq cursor write in cmd_enqueue
Opened
#918 wake/store T7 CI-timing flake: date +%s second-granularity vs <2s threshold (de-flake to sub-second)
Opened
#920 wake/digest+reconcile (BLOCKING, pilot finding #6): render-refused entry wedges whole drain (quarantine) + reconciler enumerations misclassed actionable (→ class=digest)
Opened
#923 wake/store T10 concurrency flake (pre-existing): intermittent fail on parallel-enqueue race — de-flake the synchronization
Opened
#924 wake/digest quarantine dead-letter alarm: route via WAKE_ALARM_SINK_CMD with per-wake_id dedup (not journal-local — G2a silent-miss)
Opened
#925 wake/installer: framework-ship the canon-side fallback wake (systemd timer + per-class bound in watch-list schema, installed by A10) — F7 replacement-before-retirement out of the box
Opened
#927 wake/store enqueue TOCTOU (product bug, co-feed-live): pre-lock _wake_clean_stale_tmp deletes a concurrent enqueue's in-flight write → spurious durable-write-FAILED abort
Opened
#932 wake/reconcile (pilot #7, alarm-hygiene): re-enumerates CONSUMED detector states → dup wake + spurious rc=1 CRITICAL → store records last-consumed observed_hash as 3rd accounted check
Opened
#934 wake: seq-integrity fault-injections skip in non-privileged CI — need mount-free privilege-invariant injection
Opened
#937 issue-create.sh silently drops labels/milestone on the Gitea API fallback and exits 0
Opened
#938 agent message-send wrapper reports delivery from a heuristic that is wrong in both directions
Opened
#939 git/issue-comment.sh: read-back verification false-fails when Gitea emits http:// issue_url behind TLS termination
Opened
#940 wake: digests cannot date their snapshot — emit snapshot commit SHA/ts alongside observed_hash (adapter fd-3 metadata channel)
Opened
#944 wake: §2.1 hard-locator gate is unsatisfiable for detector-built actionable board_file entries (every heartbeat-planning delta dead-letters)
Opened
#946 wake: digest ack watermark passes quarantined entries — consumer records deliveries that never happened
Opened
#947 credentials.sh: gitea-mosaicstack reads a flat .token path that a multi-identity layout never has — unusable, and it masquerades as missing access
Opened
#948 docs: CONVERGED-DESIGN.md §2.1 hard-locator enumeration reads narrower than the shipped gate — add path, and state the operative test
Opened
#949 wake/ack.sh: status --agent <name> silently reports a different lane — an agent checking its own queue is told it is empty while actionable claims wait
Opened
#950 ci-queue-wait.sh: an unparseable status is dispositioned as PROCEED — the guard cannot distinguish "checked, clear" from "could not check"
Opened
#952 wake: quarantine-audit clean-sweep message names only one of two unprovable classes
Opened
#953 wake: dead-letter retention is now load-bearing for quarantine-audit provability — record it at the write site
Opened
#954 git/issue-view.sh: no -r, so it looks up the issue number in the CWD repo and renders a wrong-repo miss as "not found" — a false negative on an existence check
Opened
#955 hook: lint agent-authored shell for $? read after a pipeline — 4 instances, 3 agents, 1 day, all near-misses
Opened
#956 Secrets program: integrate Vaultwarden PoC into the stack (seat identity, mosaic-secret, CLI enrollment)
Opened
#957 wake: a pre-announced re-baseline has no durable artifact, so reconcile cannot distinguish announced from unattributed
Opened
#958 wake: operator-side preimage definition (source-adapter.sh) is unversioned — provenance thinner than any hash it feeds
Opened
#959 issue-comment.sh exits 1 on every successful Gitea comment (scheme-only origin mismatch), and its error cites a hardcoded issue number
Opened
#960 Agent output standards: MOS-STE (adapted ASD-STE100) for docs + Google style for code
Opened
#961 wake/verification: add a mechanical precondition — confirm the running process holds config you just changed
Opened
#962 git maintenance has a failure channel and no liveness channel — two hosts, two mechanisms, one blind spot
Opened
#963 authentik wrapper: core/applications pagination block asserts count=28/total_pages=1 while delivering 7 — policy-suppressed results under a SUPERUSER token; app-list.sh affected
Opened
#966 flaky-test: wake detector D4 lock re-acquire races the holder's exit (intermittent local red)
Opened
#969 wake/preimage: the raw-form half of the both-forms deny has no needle — reverting it leaves the suite 17/17 green while a decoy leaks
Opened
#970 wake: store.sh quarantine-audit prints its CLEAN SWEEP when the dead-letter ledger cannot be parsed (jq failure swallowed by || true)
Opened
#971 wake: store.sh usage() has no test needle — the #952 surface that regressed silently is the one nothing asserts
Opened
#972 wake/digest.sh: _quarantine_entry silently DESTROYS the dead-letter ledger when it cannot read it (rc=0, no signal) — the sole evidence base for quarantine-audit
Opened
#973 wake tests: grep -q assertions conflate rc>1 (error) with rc=1 (no match) — 155 fail toward FALSE RED, 28 toward FALSE GREEN incl. 5 secret-leak canaries
Opened
#975 push-guard: close the --json-path fail-open with required repo config
Opened
#976 issue-comment.sh reports success for a comment that was never created (no readback)
Opened
#977 False-success is a CLASS: issue-close.sh has #976's exact shape, and its checked path is the fallback not the default
Opened
#978 ci-queue-wait.sh cannot block: heredoc steals stdin, every state classifies as unknown -> exit 0
Opened
#979 No wrapper edits a PR body (issue-edit.sh has no PR equivalent) — blocks a seat from correcting its own declared contract
Opened
#980 issue-create.sh: API fallback silently creates the issue as a DIFFERENT identity than GITEA_LOGIN names
Opened
#981 credentials.sh: load_credentials returns rc=0 without reading the file when env vars are pre-set (cross-instance gitea credential bleed)
Opened
#982 CI gate to reject NEW grep-idiom assertions IN SHELL SUITES (bound: grep syntax only — cannot witness the same class in other languages)
Opened
#984 wake suites: unguarded source of _wake-common.sh lets a suite exit 0 with zero assertions run
Opened
#985 validate-973 sweep: absorb rule cannot witness an unconverted verdict grep on a partially-converted line
Opened
#986 No mechanism sets the git AUTHOR field to the acting agent — MOSAIC_GIT_IDENTITY is credential-selection only, so agent commits land under a real person's name
Opened
#987 git wrappers: pr-view.sh cannot witness a PR's review verdicts, and 'tea pr review-comments' returns exit 0 with an empty table on a PR that has them
Opened
#988 git wrappers: issue-create.sh / issue-comment.sh / pr-review.sh have no -F/--body-file, so every long body is routed through shell interpolation that silently rewrites it
Opened
#989 agent-send.sh: #809's primary identity source (MOSAIC_AGENT_NAME) is absent in every agent pane on sb-it-1-dt, so all sends silently run the #808 fallback path
Opened
#990 No wrapper for Woodpecker pipeline approval — fork PRs always arrive blocked, the raw call records a human as approver, and pipeline-status renders blocked as pending
Opened
#991 issue-comment.sh: read-back verification pins the URL scheme, so every successful comment on this instance is reported as a failed create (and a retry double-posts)
Opened
#992 detector lock fd 9 is not close-on-exec: every child inherits it, and the unbounded ones (source adapter, untimed beacon sink) can hold the single-instance lock forever
Opened
#994 gate 16 is unverifiable from the record when a seat must write through a shared account
Opened
#995 ci-queue-wait.sh exits 0 when it could not measure CI state — the mandatory gate fails open
Opened
#996 issue-comment.sh reports success for a comment it never posts (tea needs a TTY; exit status unchecked)
Opened
#997 LATENT: same-named gitea_get_commit_status_json with swapped tail params puts a token in a URL path if ever co-sourced
Opened
#998 pr-review.sh posts issue comments, never review objects — gate 16 unrecordable for every wrapper-reviewed PR
Opened
#999 wake: fd-inheritance class stays OPEN after #993 — SOURCE_CMD and beacon.sh:262 are unbounded inheritors, fd set unenumerated
Opened
#1000 CI: type=service step records state=failure from pod absence at teardown (exit_code 0) on otherwise-green pipelines
Opened
#1002 AUDIT: wrapper exit codes are not derived from outcomes — 4 wrappers, 3 seats, both polarities, one night
Opened
#1003 wake: BASH_LINENO pin hardcodes [3 4] measured on one bash minor — a disagreeing bash aborts all ten suites (10/10 measured)
Opened
#1004 pr-review.sh: all six HTTP error arms discard the provider body, and the review-submit arm hardcodes a wrong cause (#865) for every non-2xx
Opened
#1005 pipeline-status.sh silently swallows a stray positional and answers about the LATEST pipeline at exit 0
Opened
#1007 get_gitea_token: per-slot identity path bypasses MOSAIC_CREDENTIALS_FILE and has no sandbox hook — test harnesses silently use production credentials
Opened
#1008 pipeline-status.sh silently swallows a positional pipeline number and answers with LATEST at exit 0 — a false green on a gate instrument
Opened
#1009 Gate-14: no fleet-wide credential log-screen; the one seat-local screen was blind to encoding AND to header shape
Opened
#1010 fix(git): reason-discard + #865 misattribution family — issue-comment.sh still carries the exact defect #1004 removed
Opened
#1011 fix(git): issue-create.sh — API fallback declares a false label/milestone incapability (D1); tea path drops unresolvable labels silently (D2)
Opened
#1012 Shared credential loader ignores MOSAIC_GIT_IDENTITY/GITEA_LOGIN — raw-API reads silently use the shared key, and the docs recommend that path
Opened
#1013 Gate-14/Gate-16: 10 git wrappers put the API token in curl argv at 16 sites — the mitigation ships in detect-platform.sh and is unused; peer seats share the uid and can read it from /proc
Opened
#1014 gitea wrappers: read-back origin pin fails closed AFTER the write when ROOT_URL scheme != configured URL — a landed comment/review is reported as a failure
Opened
#1015 pr-metadata.sh: anonymous fallback lacks the ^2 check, so a successful 200 is reported as 'unknown API error' at rc=1
Opened
#1016 CI runs an enumerated allowlist of shell suites — 11 of 16 git suites never run, including both push-guard suites
Opened
#1017 CI test membership is two hand-enumerated allowlists that re-arm their own gap: 17 of 39 framework/tools test-*.sh suites are invisible to CI, including both push guards
Opened
#1019 ci-queue-wait.sh: gate-6 queue guard returns unknown for every CI state and exits 0 — heredoc consumes stdin (already fixed in pr-ci-wait.sh, never backported)
Opened
#1020 issue-comment.sh: wrong-cwd invocation silently targets the cwd repo; bare HTTP 500 names no endpoint while Gitea 500-masks nonexistent-issue comment POSTs
Opened
#1021 wake: observed_hash names a preimage it does not have — verifier cannot learn in-band what to reconstruct
Opened
#1029 RM-02: Gate registry and negative-control CI verifier
Opened
#1031 RM-60: external trust boundary for isolated per-commit replay
Opened
#1034 RM-61: CI-contract exemption for the #1000 ci-postgres teardown artifact, signature-scoped + discrimination-proven
Opened
#1035 Release @mosaicstack/mosaic 0.0.49 — ship RM-03 guard fix to the release channel
Opened
#1037 Phase B2: graduate next's 10 in-flight commits to main (post main→next sync)
Opened
#1040 Phase B1: bring next current with main (merge + resolve conflicts)
Opened
#1042 Supply-chain integrity: sign + checksum official CLI tools; detect out-of-band modification
Opened
#1043 fleet: mechanize seat git-identity lifecycle (mint + wire MOSAIC_GIT_IDENTITY + verify write-differential) — bring-up mints tokens but never wires identity
Opened
#1044 SECURITY: get_gitea_token fails OPEN on unset identity (silent shared-credential fallback) — opposite to git-credential-mosaic's fail-closed; fleet seat silently authors API writes as shared owner
Opened
#1045 EPIC: 'mosaic cred' — one governed CLI/broker for agent credential lifecycle + access (identity validation via token→certificate; fail-closed, audited)
Opened
#1046 codex review wrappers crash on binary/non-UTF-8 diffs (invalid utf-8 byte) — blocks the independent-review gate on any PR with binary artifacts
Opened
#1047 No pr-edit wrapper: PR body/title edits force a raw PATCH or an identity compromise (pr-metadata is GET-only; issue-edit resolves login by first host match)
Opened
#1048 wake-component: reconcile has no settling window (systematic false positives) + class escalation promotes routine sources to actionable on a lost race
Opened
#1049 SECURITY: one tea logins table interleaves both estates — a wrapper pointed at the wrong host succeeds AS THE OTHER ESTATE (host-string matching is the only boundary)
Opened
#1050 test(installer): add red-first P0-P9 state-machine fixture
Opened
#1051 mosaic-brain: codify per-estate agent working memory (~/.mosaic) into the installer
Opened
#1052 SECURITY: load_credentials is not re-entrant — a second service load silently returns the FIRST service's credentials with exit 0 (defeats estate separation)
Opened
#1055 The #1044 class is not gitea-specific: 22 shared-credential call sites across 5 services have no per-identity path
Opened
#1056 fix(ci): make upgrade rollback signal control deterministic
Opened
#1057 SECURITY: repairing the credentials.json schema drift will RE-ARM the shared-credential fallback (#1043 ∘ fallback = machine-performed borrowed login)
Opened
#1063 CI queue guard: the FIXED wrapper has never reached the hosts that run it (installed artifact is the pre-fix blob)
Opened
#1064 FIXTURE-DO-NOT-ATTRIBUTE: issue-close.sh -c caller-level test (auto-closed by the test itself)
Opened
#1065 Defer hostile-same-UID credential store TOCTOU to a non-bypassable primitive
Opened
#1067 #1017 follow-up: the enumeration guard's population covers 49 of 56 suite-shaped files
Opened
#1068 greenfield-install workflow: digest equality test runs BEFORE the expected-RED comparator — digest drift silently suppresses every downstream acceptance check
Opened
#1069 greenfield fixture: 4 payload-acquisition paths are unpinned (base image, apt set, npx package, skills clone)
Opened
#1070 installer: gateway version TOCTOU — verify-after compares against the re-resolved value, not the authoritative pin
Opened
#1071 HOST FRAMEWORK SKEW: the installed ~/.config/mosaic tooling is not main (11 of 40 sampled files differ), and no drift detection exists
Opened
#1072 No CI/CD path deploys the framework to hosts — the root cause of the 46-file host skew (install.sh exists; nothing runs it)
Opened
#1074 C1 greenfield fixture is NONDETERMINISTIC on the #869 probe path — identical inputs yield comparator rc=1 or rc=0, and it flakes toward PASS
Opened
#1075 L0 Gate 8 has no hook: three agents bypassed a failed mandated wrapper in one night — a checkable rule enforced by prose only
Opened
#1076 shell test suites assume GNU coreutils but CI executes them under Alpine/BusyBox — three distinct failures in one delivery cycle
Opened
#1077 worktrees on another seat's repository silently inherit its git [user] identity — 72 worktrees on web1 commit as coder-mos1, and useConfigOnly makes it certain
Opened
#1078 SECURITY: credentials on curl argv across the framework tools — authentik/portainer/cloudflare/coolify/glpi are 100% exposed (identity, containers, DNS, and asset/ticket/user records) and were NEVER in scope of #1013's git-only remediation
Opened
#1079 pr-metadata.sh: the unauthenticated fallback never checks for success — a correct HTTP 200 is reported as 'unknown API error' and exits 1
Opened
#1080 tooling-gap: no pr-edit.sh — the wrapper set can edit an issue but cannot edit a PR, so draft/undraft is unreachable through the mandated path
Opened
#1081 issue-close.sh: closing comment silently fails — tea issue comment is not a subcommand, and the result is unchecked
Opened
#1082 detect-platform.sh: add a diagnostic for tea's misleading user does not exist error (stale token, not a missing account)
Opened
#1083 load_credentials gitea-mosaicstack cannot succeed: loader expects a flat token key, config is per-seat
Opened
#1084 TEST (mos-claude): verifying #1081 fix — safe to close
Opened
#1087 mosaic-sync-skills: unguarded ownership prefix collapses to / and can rm -f foreign symlinks
Opened
#1088 Fleet liveness: 10 timers stopped silently for 10 days — the watchers have no watcher
Opened
#1090 flaky: enrollment.service.spec.ts asserts a 100ms wall-clock budget (missed by 6ms on CI)
Opened
#1091 DEPLOY HAZARD: a framework deploy stops all 51 enabled seats from starting (holder-owner gate, absent precondition)
Opened
#1092 ARMED TODAY: restarting mosaic-tmux-holder runs 'tmux kill-server' and destroys all 39 fleet sessions
Opened
#1093 Repo hygiene reaches production: 61 live systemd units symlink into /src/jarvis-brain, and 3 targets are dirty/untracked
Opened
#1095 main is red: container image publishing fails registry auth (dormant behind a path filter, revealed by #1094)
Opened
#1096 flaky: test-fleet-units.sh 'contaminated loader' fails ~1 in 50 on clean main (pre-existing, blocks unrelated PRs)
Opened
#1097 producer: something writes root:root into bind-mounted agent worktrees (apps/gateway/dist x3), blocking pre-push hooks
Opened
#1098 Merge gate certifies rung ① only: main is red at rung ③ now, and was red for 2 of 5 recent merges unnoticed
Opened
#1099 Framework-wide: pipefail + early-exiting pipeline stage (grep -q / head / -m1) fails on success — 120 candidate sites, invisible on GNU dev hosts
Opened
#1101 Merge gate certifies rung ① only — the push instrument on the merged tree is unwatched (rungs share no denominator)
Opened
#1102 Add merged-main CI rung to the PR completion gate
Opened
#1103 Tooling gap: no wrapper can request a review — 0 of 42 git wrappers touch requested_reviewers, and 3 PRs sat unreviewed for a week because nobody could be asked
Opened
#1104 credentials.sh has no knowledge of per-slot tokens: a seat with a valid credential is told it has none, and the error names the wrong location
Opened
#1108 pr-merge.sh:417 blocks the squash-trailer remedy on exactly the PRs carrying the owner's own commits (unlinked commit address on account id=2)
Opened
#1110 installer: PATH advice is print-only (shellProfileEdits: []) — mosaic unresolvable on every fresh machine
Opened
#1111 installer: overwrites live ~/.claude/settings.json + CLAUDE.md with backup: null — destructive on configured machines
Opened
#1112 doctor: clean fresh install immediately fails its own doctor (10 warnings)
Opened
#1114 skills: installer bundle (101 skills, 6 mosaic-*) disjoint from repo skills/ on main (8 mosaic-*, none installed); doctor flags 7 of 8
Opened
#1113 doctor: drift baseline is the GATED template (receipt-observer) while installer writes ungated — doctor invites seeding the Stop-hook wedge
Opened
#1115 SECURITY: mosaic-init evals free-text answers (mosaic-init:118,142) — interactive-input command injection in the first command new users run
Opened
#1117 launcher: no fleet roster on fresh install → raw uncaught Node stack trace
Opened
#1116 mosaic-init: adapter update rewrites ~/.claude/settings.json and DROPS mcpServers block → mosaic claude refuses to launch
Opened
#1118 activation gate: PROBE_TIMEOUT_SECONDS=2.0 < cold-start 2.55-2.61s on slow HW → every bare launch aborts exit 65 with a misleading PATH/version-skew message
Opened
#1119 lease broker: systemd/user/mosaic-lease-broker.service ships but no installer/init/wizard installs or enables it → 'lease broker registration failed; runtime launch denied'
Opened
#1120 wizard: exits 0 after gateway health failure in existing-install flow
Opened
#1121 wizard: skipped optional ANTHROPIC_API_KEY prompt records literal 'undefined' as the value
Opened
#1122 next lane DOA on documented minimum Node: @next CLI crashes ERR_REQUIRE_CYCLE_MODULE on Node 20 (README floor is >=20), needs Node 22
Opened
#1123 lease activation TS capability probe: hardcoded 2000ms timeout < cold-start on slow hosts blocks gate wiring (fomo-lin E2E)
Opened
#1124 mosaic promote: transport reads pane_pid env but launcher spawnSync leaves lease env on the claude CHILD → 'no readable lease session' for every real seat (fomo-lin E2E)
Opened
#1125 promote: /mosaic-promote slash command shipped in runtime/claude/commands/ but not seeded into the seat's CLAUDE_CONFIG_DIR/commands/ → 'Unknown command', UserPromptSubmit hook never fires (fomo-lin E2E, #1124 fix re-run)
Opened
#1126 promote: receipt step requires the seat MODEL to verbatim-echo an opaque token injected via UserPromptSubmit — a well-aligned model correctly refuses it as prompt-injection → RECEIPT_MISMATCH (fomo-lin E2E)
Opened
#1128 ci-queue-wait: Gitea statuses:null classified as malformed — push guard hard-fails (exit 3) on any repo without CI
Opened
#1132 pr-merge.sh: main-only hardcode blocks every next-lane merge (wrapper policy predates next pivot)
Opened
#1133 publish.yml: next lane runs build-gateway on docs-only merges (no path exclusion) + no step-log wrapper for attribution
Opened
#1135 revoke -> re-promote structurally broken on rolled-over seat: promote-begin reads frozen MOSAIC_RUNTIME_GENERATION env while daemon/mutator read the live generation file
Opened
#1136 MOSAIC_TIER is read by nothing — federated-test.stack.yml silently deploys standalone config (keyword memory, no pgvector)
Opened
#1137 gateway image cannot migrate its own database — drizzle-kit stripped by --prod deploy, no migrate step anywhere in the boot path
Opened
#1138 gateway cannot boot in ANY shipped configuration except the federation test harness — FederationModule unconditional despite federation being designed profile-gated optional
Opened
#1139 EmbeddingService default config is self-inconsistent: ollama default emits 768-dim vectors into a 1536-dim pgvector schema
Opened
#1145 gateway: compiled dist build cannot boot — Nest DI fails on defaulted constructor param in InteractionCoordinationService (dev/tsx mode unaffected)
Opened
#1146 fix: make CI queue guard purpose-sensitive
Opened
#1149 fix: allow reviewed PR merges into next
Opened
#1150 pi: add persistent /goal controller extension to Mosaic framework
Opened
#1155 W-F: harness-homes implementation program (epic) — REV3 frozen at 2ef725ffe
Opened
#1156 Fail-loud audit: defaults/fallbacks that make absence indistinguishable from presence
Opened
#1159 W-F4/W-F6: plugin acquisition — versioned clean-room, role-scoped activation (Pi+OpenAI first)
Opened
#1158 W-F2: bundle migration — account→bundle compat, backup/sync exclusions
Opened
#1157 W-F1: launch composition — three-layer merge, schema rejection, one-registry launch, dry-run
Opened
#1162 Durability — user services, restart recovery (reboot proof needs separate approval)
Opened
#1160 W-F5: refresh safety — write-through vs rename-replace, concurrent-refresh race (gate, runs last)
Opened
#1161 A3–A6 transaction safety — no-clobber/rollback, primary lock contract, fault injection
Opened
#1163 Feature: declarative liveness gates — timer-driven staleness checks that wake an agent session
Opened
#1175 credentials.sh: gitea loader assumes one principal per host, so every gitea-mosaicstack wrapper fails with a valid token
Opened
#1176 mosaic-doctor: check the installed TOOLS-REFERENCE against the installed wrappers (host-side half of the tool-index gate)
Opened
#1177 ci-queue-wait.sh guards main by default, not the branch being pushed
Opened
#1178 KBN-101-02a: fail-closed local PGlite startup guard
Opened
#1179 #1156-A: require command authorization and system-override DI
Opened
#1180 #1156-B: fail-loud Web selection persistence truth
Opened
#1181 #1156-C: exact legacy provider, agent, route and model selection
Opened
#1182 #1156-D: reject invalid runtime/tier and fail launcher closed
Opened
#1183 P3 prerequisite: implement @mosaicstack/harness-sandbox
Opened
#1184 P3 Task 8: pin and approve native Pi 0.84.1 artifact and RPC client
Opened
#1185 W-F1 follow-on/P3 prerequisite: Pi runtime base/overlay composition
Opened
#1187 KBN-101-07a: reconcile local-start holds after #1178
Opened
#1188 get_gitea_login_for_host matches tea login by NAME, so a seat present on both hosts silently authors as the shared account (distinct from #1044)
Opened
#1190 test(mosaic): isolate background update notice from CLI smoke stderr assertions
Opened
#1191 invariant-r: host Pi drift and hardcoded-version coupling produce unrelated red
Opened
#1193 test(gateway): cross-user isolation teardown retries DB after setup failure
Opened
#1194 Installed framework on web1 is weeks-stale patchwork: 38 tools drift from main, silently un-fixing merged gate fixes (queue guard, identity flags)
Opened
#1196 Seat identity: the commit object still says the wrong author, because #1043 only fixed the token
Opened
#1197 wrapper-guard: a checkout target that never names $HOME still lands in it
Opened
#1198 ci-queue-wait.sh classifier cannot block: python3 - heredoc consumes stdin, every payload classifies unknown, and unknown is an exit-0 arm (gate 6 is vacuous)
Opened
#1199 Make workspace placement enforcement atomic against symlink replacement
Opened
#1201 receipt-observer Stop hook wedges durable Claude sessions: 4 MiB transcript cap plus ignored stop_hook_active
Opened
#1202 install-ordering guard leaves pre-existing lease hooks armed when stale mosaic lacks hidden guard command
Opened
#1203 Lease broker: framework upgrade alone wedges every tool — enforcement and activation ship on different channels with no preflight
Opened
#1204 framework-drift-check.py fails OPEN: rc=0 on a wrong --installed-root while reporting 305 not-installed
Opened
#1205 Keep-mode upgrade verify-net reverts live operator state: 142 files restored over running fleet writes (TOCTOU; follow-on to #791)
Opened
#1206 CI evaluates PR heads, never the merge result: two independently-green PRs (#1173 x #1174) turned main red
Opened
#1208 wrapper-guard blocks with no stderr: 'No stderr output' gives the agent nothing to comply with
Opened
#1209 W-F MVP: mosaic fleet launch/agent-new vertical slice + canonical ungated base (HARNESS-HOMES REV3, Task-18 assigned)
Opened
#1211 pi: add operator-configurable goal budgets and escalation
Opened
#1212 mutator-gate: mosaic_context_recover is gated by the failure it exists to recover from
Opened
#1214 docs: define main/next branch model, sequencing, responsibilities, and merge process in AGENTS.md
Opened
#1216 Branch-model layering conflict: L0 Constitution gates 5/15 hardcode main; commissioned next-first policy (#1214/PR #1215) cannot merge until controlling sources align
Opened
#1218 credential helper: global-scope mosaic.gitIdentity silently pre-empts per-seat identity on multi-seat hosts (wrong-identity path bypasses fail-closed)
Opened
#1219 fleet: seat retirement does not revoke the seat's tokens — retired identities keep working on every estate
Opened
#1220 framework: fail-closed credential helper is host-local and clobbered by upgrades — adopt git-credential-mosaic into the tree
Opened
#1221 pr-metadata.sh: normalized schema omits merged/merged_by/merge_commit_sha — wrapper-only consumers cannot see merge state
Opened
#1222 tools/git issue-* wrappers: tea-routed verification produces false-negative exits, hard breakage, and silent capability downgrades (3 instances)
Opened
#1223 pr-review.sh: no expected-commit argument, so a caller cannot pin the SHA it reviewed
Opened
#1224 pr-view.sh (and issue-view/issue-edit) accept no --login or --host, so a seat cannot read a PR it can review
Opened
#1225 wrapper-guard: every block message goes to stdout, so agents are refused with no reason (Claude Code shows 'No stderr output')
Opened
#1226 issue-edit.sh cannot select an identity (no --login, no API fallback), and get_gitea_login ignores MOSAIC_GIT_IDENTITY while get_gitea_token honors it
Opened
#1227 git wrappers: unpinned Gitea identity resolves by first host match, with no tie-break when several logins match
Opened
#1230 wrapper-guard: the percent-escape refusal reads the whole command, so a format specifier in an unrelated argument blocks a literally-spelled endpoint
Opened
#1231 tools/git has no branch-protection wrapper, so the setting that enforces the trunk-based gate has no owned path
Opened
#1232 tools/git has no pr-review-list wrapper: a seat can submit a review but cannot read the reviews on a PR
Opened
#1233 issue-comment.sh takes the body only in argv (-c): no -F/--file, so long comments ride the process table and ARG_MAX
Opened
#1234 lease enforcement: activation probe and broker health check disagree; greenfield install has no supervisor at all
Opened
#1235 installer: SHASUMS256.txt is checked for integrity but never for authenticity
Opened
#1236 fleet init --write cannot succeed on a stock Debian install: installer creates 0775, env boundary rejects group-write
Opened
#1237 greenfield dead end: fleet init writes roster v1, all roster-v2 commands reject v1, migrate-v1 is preview-only
Opened
#1238 fleet reconciler swallows every error message and stack; 'mosaic fleet doctor' can only ever say reconcile-failed
Opened
#1239 fleet init: two presets violate the agent floor, dry-run skips the check, and a failed --write still persists the rejected roster
Opened
#1240 greenfield install leaves out tmux — the fleet's only transport — and neither the installer nor doctor checks for it
Opened
#1241 fleet start exits 0 with every agent pane dead: launcher detects the failed launch, logs it as a heartbeat warning, and succeeds
Opened
#1246 CI analyzes no shell at all: prettier cannot parse .sh (rc=2) and shellcheck is absent
Opened
#1247 CLI errors reach the operator as stack traces, and 'fleet start' abandons the roster at the first failed agent
Opened
#1248 issue-assign.sh passes -assignees, a flag tea does not define — the wrapper has never worked
Opened
#1249 resolveTool() always falls back — the bundled framework in the npm package never executes
Opened
#1250 mosaic fleet init writes nothing without --write, exits 0, and says so nowhere
Opened
#1251 fleet start prints a raw Node stack trace over the top of a precise diagnosis
Opened
#1253 [INVALID] pr-merge.sh dry-run identity — measured a stale local framework copy, already fixed on next
Opened
#1254 qa-hook-stdin.sh transcribes every tool payload into logs/qa-automation.log inside the repository under work
Opened
#1255 agent-send.sh can label a message as a different named agent when identity is unset (tmux display-message returns the server's last-active session, exit 0)
Opened
#1256 Greenfield install completes clean and no fleet seat can launch: shipped roster requires 'pi' (never installed), and the pane PATH omits the Node the installer just bootstrapped
Opened
#1257 agent-send.sh reports every delivery to a TUI seat as a possible failure: send-message.sh pane-qualifies only the target form agent-send never produces
Opened
#1260 test-fleet-units.sh: contaminated-loader assertion attributes fixture-server activity to the holder (flaky ~1 in 5 with tmux present)
Opened
#1261 fleet init writes a v1 roster that fleet doctor cannot read, and writeOutcome() discards the message that says so
Opened
#1263 send-message.sh sends an unconditional flush Enter before any confirmation, duplicating every message on a runtime that auto-submits the paste
Opened
#1264 Fleet seat cannot start unattended: first run blocks on interactive identity wizard (defaults ship but are not consulted)
Opened
#1265 install.sh reports success while runtime asset linking has already failed (framework link runs before the CLI it needs)
Opened
#1266 issue-create.sh cannot select an identity: host-first login means the author is whoever tea lists first
Opened
#1267 fleet start returns rc0 with no seat, and on a RemainAfterExit unit does not invoke ExecStart at all
Opened
#1271 test-start-agent-session.sh cannot be measured in an image that installs pi — it failed every next pipeline from position 44 of a 48-element && chain, masking four suites
Opened
#1272 gitea wrappers resolve the write principal by first-host-match; a non-matching GITEA_LOGIN is discarded silently — two PRs on a production path are authored as Jason
Opened
#1273 mosaic fleet install-systemd fails closed on a fresh install: the framework's boundary check rejects the group-writable ~/.config/mosaic its own installer created
Opened
#1274 pr-merge.sh discards get_gitea_token's fail-loud return code, printing a refusal to borrow a credential and then merging on one
Opened
#1275 Release integrity workstream for alpha 0.0.50 (RI-050)
Opened
#1279 greenfield install never enables mosaic-lease-broker.service; fleet start then reports rc0 over a 4s seat death (mechanism behind #1267)
Opened
#1280 pr-review.sh/issue-comment.sh ignore MOSAIC_GIT_IDENTITY: silent host-default attribution that the read-back verifies green
Opened
#1282 Body safety test
Opened
#1283 Body safety test
Opened
#1284 Body safety test
Opened
#1285 Body safety test
Opened
#1286 T
Opened
#1287 T
Opened
#1288 Installer: seed user-owned working tree at ~/.mosaic (fleet-agent launch model)
Opened
#1289 Hook enforcement: deny file creation in fleet-agent /var/home/jason.woltje root (scratch/work/notes convention)
Opened
#1290 mosaic-brain: git-tracked ~/.mosaic user-config storage with clobber-free agent sync (skill+wrapper, hook-enforced)
Opened
#1292 greenfield install never enables/starts the shipped mosaic-lease-broker.service — every fleet seat dies at lease registration (Wall 6)
Opened
#1295 Fleet comms/session identity: watcher verification, per-agent session homes, wedge detection after binary updates
Opened
#1303 git wrappers: --login resolves a PRINCIPAL not a store — slot-store fallback + authenticated-principal verification (#1280 follow-up)
Opened
#1309 quality-rails: narrow the definition-digest audit claim + logic-change-without-version-bump guard (review 188 finding)
Opened
#1310 Brain-split host: fleet start returns 0 and starts nothing — [email protected] gates on the config home, the reconciler writes the brain home
Opened
#1312 framework-shell suites die silently when tools/_lib/credentials.sh is absent from a partial checkout
Opened
#1314 install.sh: operator-file classification is O(files x patterns) in bash with no size guard, so a large operator tree is indistinguishable from a hang
Opened
#1317 guides: three guides fail prettier 3.9.6 and will break the format gate when the pin moves past 3.8.1
Opened
#1318 git-credential-mosaic: unvalidated identity charset breaks spool JSON and the refusal dedupe
Opened
#1320 skills: folded mosaic-portainer / mosaic-woodpecker carry concrete private-network endpoints in examples — rev-security triage
Opened
#1321 verify-sanitized.sh: identity denylist does not cover private-network topology (RFC1918) — gate gap surfaced by #1320
Opened
#1323 skills: mosaic-gitea SKILL.md still teaches legacy shared-credential read + raw force-merge bypass (residual of the #1320 Should Fix class)
Opened
#1327 Installer PATH block: sentinel-managed, default-home-only profile writes (4c / D25)
Opened
#1328 ci: pin ci-base image reference; mutable :latest makes CI verdicts non-reproducible (D27)
Opened
#1331 installer: salvage the remainder of #1228 — --check can provision, plus tests and flags not on next
Opened
#1333 Skills system consolidation: monorepo package, ms- naming, style-gate promotion, sync hardening
Opened
#1336 docs(fleet): tier the north star and declare the tier-0 operator surface
Opened
#1338 D29: revoke-lease.py denies every lifecycle transition for a session that never held a lease
Opened
#1340 Lease subsystem is inert on every fleet seat: observers are installed globally, leases are provisioned only on the mosaic launch path
Opened
#1341 state_store_unittest.py is enumerated nowhere and never runs; the #1017 membership guard cannot see python suites
Opened
#1342 tea-based git wrappers hard-fail in any repo declaring extensions.worktreeconfig
Opened
#1343 git wrappers print the Gitea token in plaintext under bash -x
Opened
#1344 ci-queue-wait: --purpose merge is blind to the integration trunk, so a merge can kill an in-flight publish
Opened
#1345 Installed framework tools on sb-it-1-dt are stale: ci-queue-wait null-statuses fix exists on origin/next, not on the host
Opened
#1346 Git wrappers: port the tea-path ones onto the REST-native issue-comment.sh pattern (fallback is inconsistent; tea identity is substitutable)
Opened
#1347 Tier the north star and declare the tier-0 operator surface (AC-NS-0, NS-10, workstreams G/I/J/K/L)
Opened
#1348 Wrapper identity: a seat with no tea login acts as another user instead of failing
Opened
#1349 CI node runs jobs at ~31x local under concurrency; a 1.5s production broker deadline is missing because of it
Opened
#1351 git wrappers: no --login resolves a GUESSED shared login instead of the caller's own credential (gate-16 attribution defect)
Opened
#1353 git wrapper tests inherit MOSAIC_GIT_IDENTITY and disagree on it: no ambient value passes all 29
Opened
#1355 install.sh silently deletes symlinks under ~/.config/mosaic; operator credential stores are destroyed without a warning
Opened
#1356 tea login resolution fails open: a seat with no login silently acts as another identity
Opened
#1357 issue-view.sh cannot show issue comments (4 defects: worktreeconfig, JSON fallback, missing --comments, wrong diagnosis)
Opened
#1358 Body safety test
Opened
#1359 Body safety test
Opened
#1360 Body safety test
Opened
#1362 send-message.sh confirms delivery by a Claude-only prompt glyph, so every send to a pi pane returns rc=2 'may be UNDELIVERED'
Opened
#1364 send-message.sh: locate_input_box() can false-positive 'delivered' on a pane with no input box and two decoy rules
Opened
#1366 fleet tools: mint-seat-credential.sh joins the framework toolkit (onboarding step 6)
Opened
#1368 install.sh can reseed ~/.config/mosaic from any checkout's branch, regressing next-only fixes (stale credential helper deployed 2026-08-21)
Opened
#1369 bash -x leaks staged credentials across the wrapper fleet (parity gap held open by mint-seat-credential #1367)
Opened
#1371 longhorn: mutation webhook has no route for Kind=Backup — CRD create EOFs as a missing route, not a network fault (1.8.1)
Opened
#1372 ci-queue-wait: no sanctioned merge path for a repository with no CI
Opened
#1374 update: framework reseed misses content drift when the package is updated externally
Opened
#1375 installer writes user-level ~/.claude/settings.json; runtime settings must come from framework-controlled files
Opened
#1380 fleet: secure descriptor traversal refuses framework-created symlinks (guard-scoped fix required)
Opened
#1381 fleet: 'mosaic agent --roster <path>' is documented but inert for comms-block
Opened
#1382 config.json master config registry: schema v1 (D3:O1 ruled, config-registry proposal)
Opened
#1384 wrapper-guard.sh PreToolUse hook crashed twice with no stderr on a fleet-comms push, then passed identical shapes
Opened
#1385 install.sh breaks under dash: set -o pipefail; mosaic upgrade executes it with sh (T63 F1)
Opened
#1386 wizard --non-interactive aborts whole wizard on gateway-stage failure after finalize succeeded; no --skip-gateway CLI flag (T63 F2)
Opened
#1387 gateway headless install: no Valkey/Postgres preflight or dependency docs; generated gateway/.env has no storage keys (T63 F3)
Opened
#1389 npm publish: gateway@next bundles all @mosaicstack deps at stable versions instead of matching -next builds
Opened
#1390 mosaic gateway uninstall unusable headless: no --yes flag, piped input crashes readline
Opened
#1391 POST /api/bootstrap/setup returns 400 on valid payloads: two conflicting validation layers
Opened
#1392 Fresh postgres-tier install gets no schema: gateway never runs migrations at install or startup
Opened
#1393 mosaic gateway doctor ignores mosaic.config.json written by the CLI itself
Opened
#1394 mosaic gateway recover-token is interactive-only, no headless path
Opened
#1395 Password auth broken on next: better-auth 1.7.1 requires accounts.issuer column missing from @mosaicstack/db schema
Opened
#1396 mosaic doctor: framework-drift CANNOT_ASSERT misreported as drift; raw find stderr leaks; 21 warnings out of box
Opened
#1397 ci-queue-wait.sh --purpose merge has no disposition for a repo with no CI at all, pr-merge.sh can never merge there
Opened
#1398 Decouple memory.type from storage tier: standalone must support pgvector
Opened
#1399 Telemetry-to-issue pipeline for framework gotchas: auto-file with dedup, fail-open fallback, scrub at source
Opened
#1402 db: postgres runMigrations silently skips journal entries with older 'when' timestamps; single-transaction wrap breaks 0009 ALTER TYPE when it does run
Opened
#1404 publish pin transform mutates workspace package.json; build-gateway --frozen-lockfile red on next (post-merge 2646)
Opened
#1406 publish: next lane builds gateway images only — no web/appservice next images, so no sha-parity set exists for next-lane containerized deploys
Opened
#1407 publish: next lane builds gateway images only — no web/appservice next images, so no sha-parity set exists for next-lane containerized deploys
Opened
#1408 [email protected] ConditionPathExists not brain-home aware: autostart silently skipped for every seat
Opened
#1411 publish-next-npm mutates workspace concurrently with build-gateway kaniko COPY (PR 1405 follow-up): restore races with parallel image build
Opened
#1413 WP5b: consumer compat mode - git tools consume .mosaic/repo.json declarations (T51 phase 2)
Opened
#1414 ci-queue-wait: name the gated pipeline id/event; explicit superseded-pipeline semantics
Opened
#1415 framework tools/git: grant-reviewer.sh — grant a reviewer seat repo access via an org team
Opened
#1420 image lane bakes better-auth 1.5.5 while npm lane resolves 1.7.1 — 1395 fix dormant in containers until an image bakes >=1.7.1
Opened
#1426 Process gap: machine-reviewed PRs carry no formal Gitea approval (measured on #1425)
Opened
#1428 gateway: /api/teams endpoints unscoped — any authenticated user can enumerate all teams and member records
Opened
#1430 Bootstrap zero-user check has a TOCTOU race — concurrent setup can create two admins
Opened
#1444 feat(web): Phase P5 cutover — Gateway serves the SPA bundle, Next tree deleted
Opened
#1445 ci(web): Phase P6 — Vite build + headless E2E gate on every trunk merge
Opened
#1446 trunk image builds broken: appservice Dockerfile missing COPY scripts/ (prepare fails), no green trunk pipeline since 2799
Opened
#1448 flaky: web guards.spec.tsx GuestGuard pending-session test times out under CI concurrency (blocks unrelated PRs)
Opened
#1449 CI flake: nondeterministic mass TS2786 typecheck failures from duplicate @types/react majors in lockfile
Opened
#1450 tooling: issue-comment.sh fails on sb-it-1-dt (Configured Gitea URL not found for read-back verification) — needs REST fallback like issue-create.sh
Opened
#1451 trunk image build red: appservice.Dockerfile misses COPY scripts/ before pnpm install (prepare hook MODULE_NOT_FOUND)
Opened
#1455 T78: Official CLI Capability Migration (parent tracking)
Opened
#1456 T78 M0: publish reviewed contract (docs merge)
Opened
#1457 T78 M0: interface freeze
Opened
#1487 compose: add wrapper-first dogfood agent workspace
Opened
#1493 wrapper-guard.sh: BLOCK verdict text goes only to stdout - Claude Code PreToolUse blocks are silent
Opened
#1494 framework wrapper-guard.sh copy drift: published package lacks the porcelain-mutation hardening arm
Opened
#1495 Consolidate v2 at canonical stack checkout; preserve v1 under v1/
Opened
#1496 Tmux messaging: explicit transport-only result and safe remote quoting
Opened
#1497 Publication and planned agent-restart recovery trial
Opened
#1498 Repair native skill/launcher mismatch without live activation
Opened
#1499 Charter M20 packages/mosaic auth/provider/harness increment 1
Opened
#1500 Charter increment 2: isolated materialization and refresh fixtures
Opened
#1501 tooling: issue-assign.sh uses stale --assignees flag, breaks on tea 0.14.0 (needs --add-assignees)
Opened
#1503 Control board MVP: one page showing running agent sessions and who is waiting on me
Opened
#1504 mosaic launch <seat>: seat registration the control board reads
Opened
#1505 Control board piece 2: reply-from-board (Gate C)
Opened
#1506 Piece 3: read-only ledger for issue-tagged commits and repo seat messages
Opened
#1507 WebUI first screen: Console on the control board (piece 4)
Opened
#1508 Queue as data: one machine-readable task registry, single writer, ledger checks
Opened
#1509 Discord connector pilot: Sage answers in Shared Signals (chat only)
Opened
#1510 Bootstrap repository-native development team under Darkwing coordination
Opened
#1511 Row 6 code phase: record and display task-setter attribution
Opened
#1512 Row 6 pilot: distinguish relaunched seats from old session activity
Opened
#1513 OpenProject test instance (pm.ddkansas.com) - charter tracking