Repository navigation
Reconcile 30 unpushed local commits; quality_gates.yml has never run #112
Copy link
Copy link
Closed
Labels
P0-criticalBlocks everything; safety or correctness landmineBlocks everything; safety or correctness landmine
Description
Part of #108 · Phase 0
Problem
Local master is 30 commits ahead of origin/master:
$ git rev-list --left-right --count origin/master...master
0 30
Last pushed commit: 6df494a (2025-09-03). All 30 unpushed commits are titled Issue #99..#106: ... — the entire "Achieve 90% Test Coverage" epic (#98).
Why this matters
- The work is invisible. Anyone reading github.com/ContextLab/clustrix sees no evidence this epic happened. None of AWS Provider Comprehensive Testing #99-Loop Analysis Testing #106 has a completion comment.
- CI has never seen it.
.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. - The
.claude/epics/progress files assert completion for work no other machine has.updates/{99,100,101,102,104,106}/stream-*.mdall claim stream completion. - Single point of failure. 30 commits of work exist on exactly one laptop, unbacked.
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:
- (a) Push as-is, then fix forward. Preserves history and unblocks CI immediately.
- (b) Push to a branch (
epic/test-coverage-90-percent), open a PR, and let Phase 1/2 triage which tests survive. - (c) Cherry-pick the infrastructure commits (coverage config, CI, quality gates) and drop the mock-heavy test additions.
Recommendation: (b). It gets the work off one machine immediately, makes it reviewable, and avoids merging ~2,500 new mock occurrences into master right before an issue whose whole purpose is removing them.
Acceptance criteria
- A decision is recorded on this issue with rationale
- No unpushed work remains on the laptop (
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 superseded - Untracked WIP is dealt with:
coverage_detailed_report.txt,.claude/epics/test-coverage-90-percent/103-*.md,updates/103/
Verification
git rev-list --left-right --count origin/master...master # 0 0 (or the branch is pushed)
gh api repos/ContextLab/clustrix/actions/workflows/quality_gates.yml # not 404Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P0-criticalBlocks everything; safety or correctness landmineBlocks everything; safety or correctness landmine
Activity
Issue #98: Preserve in-flight epic working files for #103
jeremymanning commentedon 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:
origin/masterwas scanned; absent from all6c918caonward (tracked file, so every later tree carried it).ccpm_backup/— an accidental 245-file, 1.2 MB backup of local.claude/settings, never tracked on originorigin/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
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 review103-*.md,updates/103/) committed to the branch rather than lostLocal
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.jeremymanning commentedon Aug 17, 2026
Resolved — the work is off the laptop and reviewed.
Sequence:
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).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
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%.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.@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.Follow-ups filed
pytest.iniis dead config shadowingpyproject.toml(found while red-teaming; explains why theaddoptsstory differed between branches)Remaining AC on this issue
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.jeremymanning commentedon Aug 17, 2026
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) #131Keeping this open as P0 would misrepresent what is actually urgent.