Sprint 58 / V0.29.12 -- housekeeping (5/6) + enable migration-drift CI (BL-022) - #3
Merged
Merged
Conversation
… metadata, Windows UTF-8, index.lock, Story.md retirement, deploy-gate tripwire, real-MariaDB CI); F-118/F-104; no freeze
- NEW backfill_story_metadata.py: idempotent, deterministic backlog v2.0.0 metadata-drift repair. Real-end-state signal = archived sprint passes:true (not the stale live status field). 50 shipped stories -> complete; US-422/423 superseded preserved; US-446 pending (never guessed complete). Dates proxy-derived from sprint-close date, marked in per-story metaBackfill. - backlog_schema.py: accept 'superseded' as a valid story status (was feature-only; US-422/423 carried it pre-existing -> lint errored). - backlog.json: 53 stories backfilled (metadata-only, no semantic change). - 22 tests, ruff clean. VC1 pm_status --backlog exit0; VC2 sprint_lint --backlog 0 errors; VC3 re-run idempotent no-op. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add offices/pm/scripts/_encoding.forceUtf8Stdio() as the canonical UTF-8 stdio recipe (SSOT, sibling to _freeze.py); guard stdout AND stderr. Wire the crash-surface scripts that print backlog/sprint data or user text carrying U+2192 arrows: sprint_lint (imports the helper), chain_validate_aggregate and backlog_set (inline the guard to preserve Stdlib-only self-containment). VC1: on live cp1252 stdout (PYTHONIOENCODING unset) chain_validate_aggregate prints 199 arrows EXIT 0; backlog_set prints an arrow; sprint_lint --backlog EXIT 0. New test_encoding_helper.py (5 tests) incl. a real-cp1252-TextIOWrapper functional proof. 32 pass across sprint_lint suites + encoding; ruff clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tory SSOT) Scrub active mirror-requirement sites: PM folder-structure table + PRD template step-1 -> backlog.json is the single story SSOT, per-story US-*.md mirrors retired/optional (authority: 2026-06-29 simplification spec §4.3). specs/rule-13-audit-discipline.md still asserts mirror existence but is read-only for Ralph -> filed pm/issues handoff. No skill/command instructs mirrors (grep of all .claude/*.md = 0 hits). graduate_story.py already synthesizes an archive record from JSON when no mirror exists. Docs-only; no code changed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-m 'not slow', HALTs on red)
…atform enablement) Ships the full CI-enablement kit for US-464's live real-MariaDB migration-chain test, but VC1 (the live test EXECUTES + gates in CI) is unverifiable in-loop: no CI runner exists (.github/workflows had only README.md; pylint.yml removed US-186) and the Windows bench has no Docker. Per US-470 conditionalOutcome + Atlas TIGHTEN -> passes:false, TD-055 stays OPEN-downgraded, HUMAN_INTERVENTION_REQUIRED. - requirements-dev.txt (NEW): testcontainers>=4.0.0, dev/CI-only -> VC2 GREEN (not in prod/shared reqs, grep-verified) - .github/workflows/migration-drift.yml (NEW): MariaDB 11.8 service container (Atlas TIGHTEN-2) + OBD2_MARIADB_TEST_DSN + pytest -m integration + fail-on-skip guard; narrow triggers (pull_request->dev/main + workflow_dispatch, never push) - workflow README + DSN docs; TD-055 annotated OPEN-downgraded (not closed) - create_all caveat in test_deploy_context_drive_simulator.py -> new coverage + BL-022 (pinned-docstring test still green, ruff clean) - BL-022 blocker + PM handoff inbox note Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…5 = ENABLE GitHub Actions (resolves BL-022 path) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mcornelison
added a commit
that referenced
this pull request
Jul 31, 2026
… supersedes bonding theory Atlas + CIO live on-Pi debug 2026-07-31: the capture P0 was a persistent BT soft-block (stale /var/lib/systemd/rfkill/*:bluetooth=[1] restored every boot), fixed live + verified across 2 reboots via eclipse-rfkill-unblock.service. Supersedes both the US-441/432 code-regression theory (bad bisect, A-18) and the bonding-primary theory (bonding demoted to P1 hardening). Two P0 durability fixes dispatched to Ralph (deploy-bake + pair_obdlink); PM owes version-bump + deploy. Remaining #3 reconnect-transport-reset + #4 origin RCA to groom. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016b1XQVcNeLH9uzNHszr4Ex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sprint 58 housekeeping: US-465 backlog metadata backfill + un-break pm_status, US-466 Windows UTF-8, US-467 index.lock helper, US-468 Story.md retirement, US-469 run-not-trust deploy-gate. US-470 ships the migration-drift CI workflow + dev-only testcontainers dep.
This PR is the FIRST run of migration-drift.yml (BL-022) -- proves the real-MariaDB migration-chain test EXECUTES on GH runners (MariaDB 11.8 service). Green run closes BL-022 + US-470 + TD-055.
Generated with Claude Code.