Skip to content

Reconcile 30 unpushed local commits; quality_gates.yml has never run #112

Description

@jeremymanning

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

  1. 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.
  2. CI has never seen it. .github/workflows/quality_gates.yml is 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.
  3. The .claude/epics/ progress files assert completion for work no other machine has. updates/{99,100,101,102,104,106}/stream-*.md all claim stream completion.
  4. 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.yml is 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 404

Activity

  1. added a commit that references this issue on Aug 17, 2026
  2. jeremymanning commented on Aug 17, 2026

    @jeremymanning
    MemberAuthor

    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 into master immediately 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:30
    
    Question Answer
    Ever public? No — every commit reachable from origin/master was scanned; absent from all
    Blast radius 11 local commits from 6c918ca onward (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 origin
    Fix Rewrite scoped to origin/master..HEAD only, so public history was never touched; .ccpm_backup/ now gitignored

    .git was backed up before the rewrite, and refs/original/refs/heads/master -> 4feda53 holds the pre-rewrite state.

    This is a gap in the #108 audit worth noting: the security track scanned the working tree and origin/master history 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

    Local master still sits ahead of origin/master with the same (rewritten) commits. That is now redundant with the pushed branch — say the word and I will reset it to origin/master, or leave it if you prefer to keep working there.

  3. jeremymanning commented on Aug 17, 2026

    @jeremymanning
    MemberAuthor

    Resolved — the work is off the laptop and reviewed.

    Sequence:

    1. 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).
    2. PR Issue #112: Surface the test-coverage epic work for review (do not merge as-is) #128 opened as the triage surface.
    3. 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.
    4. Local master reset to origin/master (now a9393b7, 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

    Follow-ups filed

    Remaining AC on this issue

    • Decision recorded with rationale
    • No unpushed work on the laptop
    • Untracked WIP preserved on the branch
    • quality_gates.yml still 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.
  4. jeremymanning commented on Aug 17, 2026

    @jeremymanning
    MemberAuthor

    Closing: the P0 concern — 30 commits existing only on one laptop — is resolved. They are on origin/epic/test-coverage-90-percent and git rev-list --count origin/master..master is 0.

    The two leftover ACs are not P0 and are tracked where they belong:

    Keeping this open as P0 would misrepresent what is actually urgent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0-criticalBlocks everything; safety or correctness landmine

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions