Release integrity workstream for alpha 0.0.50 (RI-050) #1275
Open
opened 2026-08-17 04:52:39 +00:00 by jarvis
·
5 comments
No Branch/Tag Specified
main
docs/ri-050-release-evidence
fred/guides-seat-identity-fleet-comms
next
fred/credential-fail-closed-seat-slots
feat/ri-050-qr-evaluator
docs/ri-050-forge-docs-fastfollow
fix/ri-050-registry-secrets
test/ri-050-publish-gate-negative
fix/ri-050-verify-pglite-path
docs/ri-050-qr-probe-inventory
feat/ri-050-web-stale-safety
docs/ri-050-mission-bootstrap
fix/ri-050-forge-fail-closed
feat/ri-050-publish-gate
fix/1292-lease-broker-activation
fleet/continuation-record-2026-08-17
feat/ri-050-prd-authority
fix/ri-050-macp-fail-closed
fix/1280-identity-first-resolution
feat/w-f4-store
fix/1264-fleet-unattended-first-start
fix/1269-ci-chain-unblock
fix/1256-fleet-runtime-preflight
fix/1256-fleet-pane-path-node
fix/1257-e7-draft-transition
fix/1017-enumeration-guard-population
fix/1240-fleet-transport-check
fix/1017-wire-start-agent-session
e2e-compose
fix/1241-launch-failure-visible
fix/1237-fleet-v2-dispatch
fix/1236-installer-dir-modes
fix/installer-path-and-node
docs/1216-trunk-parameterization
docs/ia-merge-current
fix/869-lease-probe-timeout
feat/workspace-hygiene-tool-enforcement
feat/1080-pr-edit
fix/1182-fail-closed-launch
fix/1179-required-security-di
feat/p3-slice0-task5-chat-runtime-router-shaggy
feat/p3-slice0-task5-chat-runtime-router
feat/wf1-composition
feat/p3-slice0-task4-web-catalog-selection
feat/lease-promotion-and-harness-isolation
ci/provision-pi-runtime
feat/p3-slice0-task3-catalog-selection
feat/p3-slice0-task2-harness-registry
adopt/965-mos-ste-writing-standard
fix/991-comment-url-scheme-normalise
feat/wf2-bundle-migration
feat/wf4-plugin-acquisition
feat/wf5-refresh-safety
fix/1145-coord-di-compiled-boot
feat/p3-slice0-task1-harness-contracts
docs/webui-phase-p-structure
feat/1150-pi-goal-extension
feat/webui-p3-chat
fix/1146-ci-queue-purpose
fix/1138-conditional-federation
feat/webui-p2-data-auth
fix/gateway-runner-image
feat/webui-p1-vite-skeleton
fix/break-c-hooks-and-web-image
docs/webui-fleet-claude-bridge-plan
fix/wizard-gateway-failure
fix/ci-queue-wait-no-status
fix/next-node-gate
fix/mosaic-init-rce
greenfield/fomo-lin
fix/1099-pipefail-wake
fix/1099-pipefail-tests
fix/1099-pipefail-sweep
fix/framework-shell-portability
fix/1043-pane-git-identity
fix/1081-issue-close-silent-comment-failure
fix/1090-enrollment-wallclock-tolerance
feat/1082-tea-stale-token-diagnostic
fix/detect-platform-silent-128-outside-repo
feat/1050-install-state-machine-red-fixture
fix/pr-merge-message-field
feat/1051-mosaic-brain-installer
feat/1045-mosaic-cred
remediation/state
fix/1056-upgrade-rollback-control-race
fix/1019-ci-queue-timeout-harness
feat/rm-02-gate-registry
fix/rm-01-reproducible-checkout
remediation/mission-setup
fix/hygiene-inert-format-gate
fix/1019-queue-guard-stdin
feat/mos-ste-writing-standard
fix/1007-suite-hermeticity
feat/push-guard-null-case-verification
mos-comms-live
docs/heartbeat-framework-layering-ms-lead
feat/869-c4-version-coupling
feat/869-c2-install-ordering-guard
feat/869-c5-doctor-activation-check
feat/per-agent-gitea-identity
fix/875-belongs-case-insensitive-slug
fix/ci-queue-wait-404-branch-absent
feat/869-c1-activation-probe
feat/869-c3-broker-supervisor
fix/865-tea-cli-comment-invocation
feat/glpi-skills
fix/860-deflake-mutator-lease-gate
fix/850-detect-platform-port-normalization
fix/856-worktree-deps-preflight
fix/835-pr-review-approve-reject-comment-flag
fix/848-truthful-evidence
fix/812-pr-review-comment
fix/849-recovery-runtime-fixture-race
docs/758-ledger-m5-001-sync
feat/834-tc-server-side-doc
feat/833-constrained-recovery-command
feat/827-gate0-probe
governance/gate0-probe3-amendment
fix/795-codex-pr-diff
fix/795-ci-base-jq
fix/795-ci-base-git
feat/791-pr3-fleet-regen
feat/791-pr2-snapshot-restore
fix/807-glpi-206
fix/808-agent-send-false-sender
feat/791-upgrade-config-protection
feat/790-mosaic-yolo-claudex-pr2
feat/790-mosaic-yolo-claudex
feat/758-v1-v2-migrator
fix/766-exact-fleet-comms
test/758-reconciler-lifecycle-gates
docs/771-kbn101-db-role-split
test/758-example-profile-dispositions
feat/758-shared-role-resolution
feat/mos-logical-identity-fencing
feat/769-kbn100-unified-schema
docs/753-kbn010-threat-gate
feat/758-roster-v2-compiler
feat/756-official-discord-plugin
docs/758-fleet-config-management
fix/mos-option2-qualification-format
docs/issue-758-m0
docs/mos-option2-qualification
mos-comms
feat/tess-interaction-agent
fix/tess-docs-format
draft/mosaic-platform-prd
fix/installer-provider-gate-and-local-gateway-redis
release/mosaic-cli-0.0.37
feat/framework-constitution-alpha
fix/git-wrapper-repo-detection
fix/woodpecker-wrapper-legacy-mosaic
fix/t-a292e96f-gitea-pr-metadata
fix/gitea-pr-metadata-login-t-a292e96f
fix/t_a292e96f-pr-metadata-gitea
fix/t_3a368a52-gitea-usc-login
fix/bootstrap-hotfix
fix/populate-known-packages-list
fix/idempotent-init
v0.0.39-alpha
mosaic-v0.0.31
fed-v0.2.0-m2
fed-v0.1.0-m1
mosaic-v0.0.29
mosaic-v0.0.28
mosaic-v0.0.27
mosaic-v0.0.26
mosaic-v0.0.25
mosaic-v0.0.24
v0.2.0
v0.1.0
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
be-coder-05
be-coder-06
be-coder-07
be-coder-08
coder-mos1
coder-mos2
coder2
coder3
f10-coder
fargo
fred
happy
jason.woltje (Jason Woltje)
merge-gate
pepper
rev-974 (Rev-974 (Mosaic reviewer seat, web1))
rev-code-01
rev-code-02
rev-security-01
rev-security-02
rev0
sanity
scooby (Scooby)
scrappy
shaggy
tess
tiny
velma
woodpecker
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mosaicstack/stack#1275
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
The SDLC gap analysis (read-only review of
nextat476db12b, 2026-08-17) found thatnextpublication can run without the full verification pipeline for the exact commit, and public Forge/MACP paths contain false-success placeholders (stub executor returningcompleted, literaltruegates, echoed review approvals, empty-command CI gates passing).Full analysis: jarvis-brain
docs/reports/2026-08-17_mosaic-sdlc-next-gap-analysis.md· decisionsSDLC-D-033throughSDLC-D-038in jarvis-braindata/decisions/mosaic-stack-sdlc-protocol.json.Scope (decided by Jason, 2026-08-17 — option B of SDLC-D-033)
Alpha 0.0.50 includes the release-integrity floor ONLY:
--simulatefor development (typedsimulatedresults that can never satisfy gates/completion); normal execution exits nonzero when a required executor/reviewer/command/CI provider is absent.@mosaicstack/prdystructureddocs/prdy/viamosaic mission --planis authoritative;mosaic prdyroutes to the same service or is an explicit Markdown import/export adapter; mission↔PRD linkage persists.Out of scope: the canonical dispatcher/control-plane vertical slice (immediately post-alpha).
DAG
Task breakdown:
docs/release-integrity/TASKS.md(added by the bootstrap PR).Every card: repo quality gates green, independent review, terminal-green CI, PR squash-merge to
next.Live evidence for RI-N1 captured 2026-08-17: pipeline 2439 (push of next@476db12b) ran publish-next-npm SUCCESS while build-gateway FAILED in the same run — publication proceeded beside a failing verification step in the same pipeline. Exactly the class RI-N1 closes. Also: PR-lane test step is red at base for ALL PRs on next (one assertion, test-start-agent-session.sh:103); fred's green PR #1270 unblocks it. RI cards sequence behind #1270 for their terminal-green merge gate.
CONTINUATION HANDOFF (2026-08-17, jarvis/dragon-lin — session moving offsite, work continues in place per Jason).
Full handoff document: branch
docs/ri-050-mission-bootstrap, filedocs/scratchpads/ri-050.md(section HANDOFF). Canonical DAG: same branch,docs/release-integrity/TASKS.md. Normative requirements: same branch,docs/PRD.md§ Release Integrity Workstream.State at handoff:
476db12b(main and next DIVERGED — always target next).5114faa2→8b34b9f3) open/mergeable; CI red only on the known lane-wide fleet test.0aa5ed35) open/mergeable; worker success + orchestrator review PASSED; same known lane-red only.99b8f6ea) open/mergeable; worker reported success; INDEPENDENT REVIEW NOT YET DONE — that is the first task.Workers: local pi zai/glm-5.3:high, per Jason. Identity pin for wrappers: GITEA_LOGIN=mosaicstack-jarvis.
Action needed (only you can fix): registry credentials for image publishes.
The Woodpecker repo secrets
REGISTRY_USERNAME/REGISTRY_PASSWORD(mosaicstack/stack) are rejected by the Gitea container registry — explicitUNAUTHORIZEDat/v2/token(pipelines 2494 + 2495 after #1306 fixed the secret references; before that the same failure was masked as an ambiguous push-permission error since at least pipeline 2439).Fix: mint a Gitea token with package Read+Write scope for an account with write access to mosaicstack/stack packages (or that account's password), update the two Woodpecker repo secrets. Then the next
nextpush should produce the first fully green gated publish (verify → build → npm → gateway image) — the last RI-V-001 evidence item.Status of the rest of the floor: publish gate LIVE and proven both directions (2486 fail-closed blocking all publish steps; 2488 first gated green npm publish). npm publishes are green and gated; only image pushes are blocked, and that predates tonight.
— topher (recorded under the jarvis principal)
Overnight run summary (topher, 2026-08-18 ~21:00→07:50 UTC).
Landed on
nextbehind the live publish gate (9 PRs, squash, head-pinned, cross-seat reviews at pinned heads):Gate evidence (the point of the mission):
verify→build→publish-next-npm).Remaining (in order):
docs/ri-050-release-evidence) and this issue closes.Mission log:
docs/scratchpads/ri-050.md(branchdocs/ri-050-mission-bootstrap). Handoff + gotchas:~/.mosaic/fleet/agents/topher/notes/HANDOFF.md(mosaic-brain).— topher (recorded under the jarvis principal pending identity provisioning)
Resolved — registry credential fixed and verified on the Gitea server (2026-08-18).
Root cause.
REGISTRY_USERNAMEon Woodpecker repo 47 held a value that cannot authenticate at all.mosaicis the pre-rename org name; Gitea's rename redirect (GET /api/v1/users/mosaic→ 307 →/api/v1/users/mosaicstack) covers API and web paths but not Basic-auth username lookup, andmosaicstackis an organization, which has no password. The kanikoconfig.jsontherefore could never authenticate, and/v2/tokenansweredUNAUTHORIZED.Fix.
write:package-only token on the existingwoodpeckerservice account (Gitea user 41, already in theci-publishteam, which carriesrepo.packages: write) viagitea admin user generate-access-tokeninside the Gitea container. Token namestack-registry-2026-08-18. Gitea forbids minting a token with a token, so the container CLI was the only route.REGISTRY_USERNAME=woodpeckerandREGISTRY_PASSWORD= that token on Woodpecker repo 47. Both retainevents=[push, tag].Verified without running a pipeline —
POST /v2/<pkg>/blobs/uploads/, upload session opened then cancelled, no layer written:mosaicstack/stack/gatewaymosaicstack/stack/appservicemosaicstack/stack/webmosaicstack/stack/ci-basejason.woltje/<nonce>(wrong-owner control)All four kaniko steps in
.woodpecker/publish.ymland.woodpecker/ci-image.ymlread that same secret pair, so this coversappservice,webandci-base, not onlybuild-gateway.One earlier claim retracted. The
ci-publishteam lists onlymosaicstack/mail-processorin its repo list, and I first called that the server-side defect. That was wrong, and it is now measured rather than argued: package permission is evaluated org-wide per team unit, sowoodpeckerpushes tomosaicstack/stack/*regardless of that list. Real detail, no bearing here.Not verified: that the stored secret value is byte-intact. Woodpecker never returns secret values, so the next legitimate merge to
nextis the first end-to-end proof. Not triggering a test push.— jarvis (dragon-lin)