Repository navigation
Reconcile 30 unpushed local commits; quality_gates.yml has never run #112
Description
Activity
- addedP0-criticalBlocks everything; safety or correctness landmineBlocks everything; safety or correctness landmine
on Aug 17, 2026 - added a parent issue
on Aug 17, 2026 - added a commit that references this issue
on Aug 17, 2026 Decision recorded: option (b) — pushed to a branch for review. PR #128.
29 commits are now on
origin/epic/test-coverage-90-percent(3fa3627..aa9d80d). The work is off a single laptop and reviewable. PR #128 is explicitly marked do not merge as-is, so Phase 1/2 (#114, #117) can triage which tests survive rather than merging ~2,500 mock occurrences intomasterimmediately before the issue that removes them.A live PyPI token blocked the first push
GitHub push protection rejected it:
remote: - GITHUB PUSH PROTECTION remote: - Push cannot contain secrets remote: —— PyPI API Token —— remote: commit: 6c918ca remote: path: .ccpm_backup/.claude_20250828_140214/settings.local.json:30Question Answer Ever public? No — every commit reachable from origin/masterwas scanned; absent from allBlast radius 11 local commits from 6c918caonward (tracked file, so every later tree carried it)Source .ccpm_backup/— an accidental 245-file, 1.2 MB backup of local.claude/settings, never tracked on originFix Rewrite scoped to origin/master..HEADonly, so public history was never touched;.ccpm_backup/now gitignored.gitwas backed up before the rewrite, andrefs/original/refs/heads/master->4feda53holds the pre-rewrite state.This is a gap in the #108 audit worth noting: the security track scanned the working tree and
origin/masterhistory for AWS/HF/generic patterns, but not the unpushed commits, and PyPI tokens were not in the pattern set. Push protection caught what the audit did not — which is itself the argument for enabling secret scanning (#111).Remaining AC on this issue
- Decision recorded with rationale
- Work no longer exists only on the laptop (lives on a pushed branch, per the AC's second clause)
-
quality_gates.ymlstill returns 404 — it is on the epic branch, notmaster, so it will not run until Issue #112: Surface the test-coverage epic work for review (do not merge as-is) #128 (or a subset of it) lands -
.claude/epics/test-coverage-90-percent/progress files still claim completion; reconcile during Issue #112: Surface the test-coverage epic work for review (do not merge as-is) #128 review - Untracked WIP (
103-*.md,updates/103/) committed to the branch rather than lost
Local
masterstill sits ahead oforigin/masterwith the same (rewritten) commits. That is now redundant with the pushed branch — say the word and I will reset it toorigin/master, or leave it if you prefer to keep working there.Resolved — the work is off the laptop and reviewed.
Sequence:
- 29 commits pushed to
origin/epic/test-coverage-90-percent(blocked first by a live PyPI token;.ccpm_backup/stripped from the 11 affected local commits, public history never touched). - PR Issue #112: Surface the test-coverage epic work for review (do not merge as-is) #128 opened as the triage surface.
- Reviewed in depth, then closed without merging — see the review comment on Issue #112: Surface the test-coverage epic work for review (do not merge as-is) #128.
- Local
masterreset toorigin/master(nowa9393b7, with tests/integration/ is unmarked, so the documented unit-test command provisions billable AWS EKS clusters #109 merged).git rev-list --count origin/master..master→ 0.
The branch is retained on the remote, so nothing is lost.
Why it will not merge
- All 637 new tests live outside
tests/unit/, so none ever run in CI — the epic's own goal is unmet, and the PR edits the README coverage badge 10% → 5%. - It adds ~2,678 lines of production modules with zero importers (
notebook_magic_{aws,azure,gcp,ssh,enhanced}.py) — precisely what Delete ~5,100 lines of orphaned modules (13% of the package has zero importers) #122 deletes — which also import the mock shim Remove mock-awareness from shipped code (production branches on isinstance(..., Mock)) #116 removes. - It contains an unreviewed behavior change to
@cluster: comprehensions become auto-parallelization candidates (loop_analysis.py, 787→1712 lines). Now tracked separately as Unreviewed behavior change: comprehensions become @cluster auto-parallelization candidates #132. - +695 mock occurrences, ~28% growth on the 2,513 that Replace assertion-free mock tests with tests that actually execute (2,513 mock occurrences) #117 must remove.
Follow-ups filed
- pytest.ini is dead config that silently shadows pyproject.toml (--strict-markers, testpaths, markers all inert) #130 —
pytest.iniis dead config shadowingpyproject.toml(found while red-teaming; explains why theaddoptsstory differed between branches) - Extract the salvageable pieces from the closed test-coverage epic (PR #128) #131 — extraction plan for the salvageable pieces
- Unreviewed behavior change: comprehensions become @cluster auto-parallelization candidates #132 — the comprehension-parallelization behavior change
Remaining AC on this issue
- Decision recorded with rationale
- No unpushed work on the laptop
- Untracked WIP preserved on the branch
-
quality_gates.ymlstill 404s — it lives only on the closed branch. Tracked in Extract the salvageable pieces from the closed test-coverage epic (PR #128) #131, to land non-blocking (it has never actually executed: it needs two jobs that both fail). -
.claude/epics/test-coverage-90-percent/progress files still claim completion for work that will not merge — reconcile or archive.
- 29 commits pushed to
Closing: the P0 concern — 30 commits existing only on one laptop — is resolved. They are on
origin/epic/test-coverage-90-percentandgit rev-list --count origin/master..masteris 0.The two leftover ACs are not P0 and are tracked where they belong:
quality_gates.ymllanding non-blocking → Extract the salvageable pieces from the closed test-coverage epic (PR #128) #131.claude/epics/progress files reconciled → Extract the salvageable pieces from the closed test-coverage epic (PR #128) #131
Keeping this open as P0 would misrepresent what is actually urgent.
Part of #108 · Phase 0
Problem
Local
masteris 30 commits ahead oforigin/master:Last pushed commit:
6df494a(2025-09-03). All 30 unpushed commits are titledIssue #99..#106: ...— the entire "Achieve 90% Test Coverage" epic (#98).Why this matters
.github/workflows/quality_gates.ymlis committed locally but returns HTTP 404 on GitHub — it has never run. The "quality gates" acceptance criterion of Performance & Quality Optimization #101 is therefore unenforced despite being marked done locally..claude/epics/progress files assert completion for work no other machine has.updates/{99,100,101,102,104,106}/stream-*.mdall claim stream completion.Decision required
This is a judgement call, not a mechanical fix. The 30 commits add test files that, per the audit, are heavily mock-based — some of them are the very tests Phase 2 intends to replace. Options:
epic/test-coverage-90-percent), open a PR, and let Phase 1/2 triage which tests survive.Recommendation: (b). It gets the work off one machine immediately, makes it reviewable, and avoids merging ~2,500 new mock occurrences into
masterright before an issue whose whole purpose is removing them.Acceptance criteria
git rev-list --count origin/master..master->0, or the commits live on a pushed branch)quality_gates.ymlis on GitHub and has completed at least one run (no longer 404).claude/epics/test-coverage-90-percent/progress files are reconciled with reality, or removed if supersededcoverage_detailed_report.txt,.claude/epics/test-coverage-90-percent/103-*.md,updates/103/Verification