2026-06-24 - 2026-09-24
Overview
17 Releases published by 1 user
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
operator-ergonomics-v1
Published
sessions-v1
Published
adapter-seam-v1
Published
release-model-v1
Published
mission-task-v1
Published
config-hello-v1
Published
poc-container-hello-v0
346 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)
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
159 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
#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
#966 flaky-test: wake detector D4 lock re-acquire races the holder's exit (intermittent local red)
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
#984 wake suites: unguarded source of _wake-common.sh lets a suite exit 0 with zero assertions run
Closed
#985 validate-973 sweep: absorb rule cannot witness an unconverted verdict grep on a partially-converted line
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
469 Issues created by 24 users
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
#709 Tess M3: Dedicated Discord and CLI interaction
Opened
#710 Tess M4: Fleet, Mos, Hermes, memory and operator plugins
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
#777 KBN-101-03: sole migrator, exact ledger, and mosaic schema foundation
Opened
#776 KBN-101-01: typed database identity config and runtime verifier
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
#831 WI-4: Verbatim-hashed normative fragments — B_payload / H_payload (no self-reference, byte-identical Claude↔Pi)
Opened
#830 WI-3: Compaction observers → revoke + runtime_generation auto-revoke
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
#1113 doctor: drift baseline is the GATED template (receipt-observer) while installer writes ungated — doctor invites seeding the Stop-hook wedge
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
#1115 SECURITY: mosaic-init evals free-text answers (mosaic-init:118,142) — interactive-input command injection in the first command new users run
Opened
#1116 mosaic-init: adapter update rewrites ~/.claude/settings.json and DROPS mcpServers block → mosaic claude refuses to launch
Opened
#1117 launcher: no fleet roster on fresh install → raw uncaught Node stack trace
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
#1156 Fail-loud audit: defaults/fallbacks that make absence indistinguishable from presence
Opened
#1155 W-F: harness-homes implementation program (epic) — REV3 frozen at 2ef725ffe
Opened
#1158 W-F2: bundle migration — account→bundle compat, backup/sync exclusions
Opened
#1159 W-F4/W-F6: plugin acquisition — versioned clean-room, role-scoped activation (Pi+OpenAI first)
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
5 Unresolved Conversations
Open
#56
Performance optimization
Open
#54
Additional LLM providers — Codex, Z.ai, LM Studio, llama.cpp
Open
#206
bug: Shift+Tab thinking cycle is a no-op when model has no reasoning support
Open
#207
bug: ProviderService.getDefaultModel() returns first available model with no reasoning guarantee
Open
#642
mosaic update: framework reseed skipped when CLI is updated outside mosaic update (stale tools/, incl. tmux helpers)