Skip to content

fix(ci): retain reliable audits and owned native fixture evidence - #35

Draft
cemililik wants to merge 472 commits into
mainfrom
development
Draft

cemililik wants to merge 472 commits into
mainfrom
development

Conversation

@cemililik

@cemililik cemililik commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Compare Markdown with the event's immutable base snapshot so squash merges and shallow reruns cannot invalidate its merge base. Keep full-tree fallback and the tooling census regression.
  • Preserve the first native constructor-stop test failure and bounded cleanup observations. Wait for the preceding native operation's actual private cleanup before issuing the fixture's single extra same-generation hint.
  • Bound stalled browser dependency acquisition with an exclusive APT fragment and verified effective settings. Allocate 17 minutes to outer setup/proof and reserve three minutes for bounded tail steps; retain the 20-minute job, 12-minute proof and 30-second native cleanup ceilings.

Tests

  • Five real-Git controls execute the workflow link-audit shell; the old implementation fails them.
  • Sixty-three offline native launcher/parser controls, seven corpus/Docker-trait cases, zero-warning/error integration Release builds and scoped C# formatting pass on the unchanged backend correction sources.
  • Six real PostgreSQL/native-worker handoff cases pass. Removing readiness guards consumes a real premature hint and intentionally fails the regression; actual joins and exact owned-container absences are verified.
  • Twenty-two actual browser/deadline/tail workflow controls pass. Full frontend validation passes 1,857 cases in two packages with zero skips/todos; typecheck, lint and scoped formatting pass.
  • Fifteen real-Git snapshot controls pass, including actual foreground maintenance completion and the planted graph-write failure. The combined shard-owner/aggregate suite passes 67 controls; closed gate diagnostics retain identical refusal behavior.
  • All 19 actual Outbox host/processor cases pass without skips. The fixture disables its unowned collector and observes actual startup before disposal; an injected startup delay distinguishes the join from a deliberately abandoned task. Real adapter output retains only finite result/completion facts. All owned cleanup observations are confirmed.
  • Every correction completes two fresh independent review rounds. Offline shell checks establish command arguments and failure propagation, not hosted signal timing or fit.

Frozen head: dada277bdd66a51dd10ef8c4ea66ebbb6f50b170; tree: 46e742d9d262b070542ee55a99335b723956e0f3.
Full B attempt 2 passes independent producer/public/identity verification. Full A attempt 3 has a verified failing native handoff case; complete same-source A/B qualification remains open and this PR stays draft.

Earlier observations remain distinct: source 9eecf967 passes complete B but its A attempts fail browser APT setup. Source e2954be9 passes complete A (27 jobs, 5,921 backend cases); B passes all backend cases and both aggregates but outer-deadline cancellation leaves 26/27 public audit report pairs. Successful natural cleanup does not qualify those failed whole attempts.

At source 58d9ecdf, all 20 producers and public demo pass, but whole A is 24/27: a synthetic Git-cleanup failure blocks OpenAPI and both aggregates refuse a producer gate. The fixture now waits actual maintenance; closed diagnostics preserve the original gate observation. The first aggregate API response remains unavailable, so projection lag is unproven. That diagnostic correction adds no polling or acceptance relaxation.

At source 95edb219, whole A is again 24/27: two Outbox startup cases fail in ordinary-10 and both aggregates refuse producer state. The baseline fixture independently reproduces those two failures against an owned held collector; this verifies a mechanism, not that hosted exception. Closed producer-state diagnostics now identify the refused owner/state before the unchanged failure. The original hosted exception and backend API response remain unavailable.

At source ed223aca, all twenty producers (5,921 cases) and the other five checks pass, but both aggregates observe a required producer still in_progress and refuse: whole A is 25/27. Metadata acquisition now permits at most 30 seconds, sixteen complete reads and two-second pacing for explicit present-null pending states. Every snapshot is independently validated; terminal/malformed/identity-invalid evidence refuses immediately, and snapshots never combine. A single complete successful snapshot remains mandatory before unchanged artifact checks. New source full A/B is pending.

Current frozen source dada277b, run 39805658821 attempt 1: both aggregates and all twenty producers pass. Independent archive/result recomputation confirms 3,350 non-Docker + 2,571 Docker cases and both aggregate receipts. Whole A remains unqualified, 26/27: Ubuntu package downloads reach the unchanged five-minute browser-installer limit before any public proof. Full B attempt 2 now passes all 27 jobs and independent verification: 5,921 backend cases, 1,857 frontend cases, 27 public JSON/HTML report pairs, 9 screenshots, 134 API completions and natural confirmed cleanup. Its backend summary SHA-256 is 6dec960a69056da115ec6691a3cedee8e50670da505d1ea7e43c2e07a866e79d; public receipt SHA-256 is ced9f6afa005f33f164071b9d1f4022dacf16bf298c2a17677c70fd3dcefc845. Full A attempt 3 uses the same frozen source but fails backend ordinary-8 (job 119943000095): 243 assigned cases finish, with one failure in Native_fixture_start_waits_for_previous_actual_cleanup_before_one_same_generation_hint. Its retained result records cancellation at the provider-construction wait, 31.379 seconds, after the preceding cleanup and hint helper have returned. The same case passed in A1 and B2 in 3.472 and 2.682 seconds. Two independent source/evidence inspections confirm the boundary; the artifacts do not establish the post-hint cause. This failed whole attempt cannot qualify A or be combined with successful subsets. No further behavior or deadline change, or new workflow rerun, has been made for this failure.

PR #34 is merged and P02b-6's four implementation steps are complete. This PR is the separate CI closeout; P02b-7 and P02b-8 remain pending.

Risk

The metadata allocation consumes time inside the same five-minute aggregate; its sixty-second upload reserve remains fixed. Thirty seconds is not a guaranteed API propagation bound.

Application, realm and credential policies, shard plan, case identities, required contexts, aggregate API identity checks and permissions remain intact. The outer allocation changes from 16/4 to 17/3 within the existing ceilings. Sandbox cleanup and receipt generation use 15+5-second timeout wrappers; NuGet uses restore-only caching at the same pinned revision. Tail allocations are nominal scheduling allowances, not a worst-case OS guarantee. APT settings do not guarantee dependency availability or total setup duration.

The earlier 32-second native cancellation remains causally unexplained. The controlled fixture weakness is reproduced and corrected independently. Native success, elapsed timeout and forced cleanup never substitute for actual private cleanup. Partial/failed-job reruns never qualify a run.

Related

Prepared with Codex.

Summary by Sourcery

Harden CI evidence and fixture ownership so audits remain reliable across reruns while native and hosted failures retain their original causes.

New Features:

  • Add regression coverage for immutable-snapshot Markdown link auditing across squash merges and shallow reruns.
  • Add bounded browser dependency setup and tail-step handling for the public demo workflow.
  • Add native handoff coverage that verifies actual private cleanup before issuing a same-generation fixture hint.

Bug Fixes:

  • Preserve the original native test failure while recording bounded cleanup diagnostics.
  • Prevent native fixture hints from racing preceding private cleanup.
  • Prevent hosted Markdown audits from failing on invalid merge-base availability after squash merges.
  • Ensure Outbox startup tests observe task completion before fixture disposal.
  • Keep aggregate gate refusals while exposing only sanitized producer and gate diagnostics.

Enhancements:

  • Refine CI timing allocation and use restore-only NuGet caching for the public demo job.
  • Strengthen Git maintenance fixture cleanup and regression coverage for foreground completion.
  • Expand native, aggregate, browser setup, and workflow-tail validation with bounded, sanitized evidence.

CI:

  • Bound APT acquisition and workflow cleanup commands while retaining existing job, proof, and native cleanup ceilings.
  • Add workflow controls for link auditing, browser installation, tail command failure propagation, and producer refusal diagnostics.

Documentation:

  • Update testing, contribution, architecture, and roadmap documentation with post-merge qualification rules and evidence limits.

Tests:

  • Add real-Git Markdown audit controls, native handoff/cleanup tests, Outbox startup ownership tests, browser setup controls, aggregate diagnostics controls, and Git maintenance regressions.

Keep real planner, blocker and migration-boundary evidence while eliminating
stale fixture assumptions and repeated observation-body selection. Reconcile
source inventory and live observation summaries with the qualified implementation.

ADR: 0047, 0058, 0059, 0060, 0061
Replace reserved status with qualified canonical owners while preserving the
separate pending packet review, demo and exact-head CI budget gates.

ADR: 0047, 0058, 0059, 0060, 0061
Keep every owner-boundary mutation and exact field identity while
avoiding repeated whole-corpus budget scans. Record completed reviews,
source-qualified regression and demo evidence without presenting local
runs as exact PR-head CI or merge success.

ADR: 0047, 0058, 0059, 0060, 0061
Keep the fixed local receipts separate from live exact-head checks so
later readers can review the open packet without mistaking an initial
or superseded run for final CI success.

ADR: 0047
Make the missing hosted-kernel prerequisite and its bounded provisioning
choice reviewable before authorizing any VM-wide change. Preserve the failed
CI evidence and every existing native proof requirement.

ADR: 0060, 0062
Keep the shared demo lifecycle inside its existing budget by compiling the
startup graph once, while retaining standalone restore and explicit failures
before every migration chain. Exercise real Make orchestration and refusal
paths rather than accepting stale output or removing proof work.

ADR: 0056
Retain every production subject and mutation while indexing actual
instruction populations within each detector evaluation. Plain database
fixture setup owns a physical nonpooled connection instead of repeating
Docker and psql startup; real role, rollback and cleanup controls pin the
same authority. Record completed local proof without implying hosted fit.

ADR: 0003, 0047, 0060
Measure the unchanged proof workload before selecting collector authority
or scheduling bounds. Report only finite read-only environment facts and
enable the stock console logger alongside final TRX results. Preserve all
filters, required names and deadlines; the native preflight still refuses
unsupported collectors. Keep the decision index tied to local closeout.

ADR: 0060
Keep the repository source census fail-closed while recording the two\nCI-only Python observer files with the existing non-runtime tooling.
Separate the proposed native VM and fixed collector lifecycle from
measured CI outcomes, preserve complete required coverage, and record
reviewed alternatives without accepting or implementing the decision.

ADR: 0060
Keep the complete production and mutation census while avoiding eager
identity formatting for unrelated calls and field writes. Preserve
independent raw traversal parity and per-evaluation cache lifetimes.

ADR: 0047
Keep the same concrete task-owner proof while selecting field writes
from the current detector index, so unrelated method identities are
not rebuilt on every mutation. Record full and focused qualification
without treating local timings as hosted CI success.

ADR: 0047
Record the maintainer's approval before dependent CI implementation.
Preserve ADR-0060's accepted body through a dated bounded disclosure
and keep implementation, enforcement and hosted qualification pending.

ADR: 0060, 0062
Accept the hosted runner's documented absent-services representation and
parse native ownership with the actual Release build symbols so normal
jobs launch and conditional native calls cannot escape their partition.
Record both independent review rounds and real native protocol evidence.

ADR: 0062
Keep the strict production event parser while preventing a forked test
fixture from exposing an empty intermediate file on faster Linux hosts.
Record the real hosted failure separately from local repair evidence.

ADR: 0062
Keep every crash candidate fatal to qualification while retaining enough
finite metadata to distinguish its scan scope and filename category.
Never export candidate paths, contents or provider text from the VM.

ADR: 0062
Reopen the execution topology after measured hosted budget failures while
preserving every case, existing required names and twenty-minute ceilings.
Record reviewed finite VM costs and defer dependent code to acceptance.

ADR: 0062, 0063
Keep unknown inventory candidates fatal while observing a finite format
label through one fixed read-only probe within the existing scan budget.
Diagnostic faults never replace the original qualification refusal.

ADR: 0062
Keep scan decisions strict while distinguishing fixed storage regions,
common file formats and a refused probe without exporting private data.
Record actual prelaunch observations separately from qualification.

ADR: 0062
Separate retained wall evidence from incomplete duration estimates and
make manual tuning, independent layouts, runner authority and aggregate
ownership concrete before seeking acceptance. Preserve the outstanding
ordinary owner fault and all hosted qualification gates.

ADR: 0062, 0063
Keep independent proposal reviews and document checks distinct from
maintainer acceptance and final hosted qualification.

ADR: 0063
Record maintainer approval before dependent implementation, disclose
ADR-0062's bounded replacement and additive authority, and register the
general CI obligation without claiming implementation or hosted fit.

ADR: 0062, 0063
@sourcery-ai

sourcery-ai Bot commented Oct 22, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR fixes closed-PR Markdown audit reruns by comparing the checkout against the immutable event base commit rather than a later shallow base-branch tip, eliminating merge-base failures while retaining full-tree fallback auditing. It adds workflow-level real-Git regressions and extensively documents qualification timing, evidence boundaries, and the unchanged aggregate identity controls.

Sequence diagram for immutable-base Markdown link audit

sequenceDiagram
    participant Workflow
    participant Git
    participant Audit

    Workflow->>Workflow: Read PR_BASE_SHA
    Workflow->>Git: git diff --name-only PR_BASE_SHA HEAD -- *.md
    Git-->>Workflow: Changed Markdown files
    Workflow->>Audit: Check relative links in changed files
    Audit-->>Workflow: Pass or report broken links
Loading

Flow diagram for Markdown audit source selection

flowchart TD
    A[Determine event type] --> B{Pull request event?}
    B -->|Yes| C[Use immutable pull_request.base.sha]
    B -->|No| D[Use github.event.before]
    C --> E{Base commit available?}
    D --> E
    E -->|Yes| F[Compare snapshots with git diff base HEAD]
    E -->|No| G[Audit all tracked Markdown files]
    F --> H[Audit relative Markdown links]
    G --> H
Loading

File-Level Changes

Change Details Files
Switch the Markdown link audit from branch ancestry comparison to immutable event-commit snapshot comparison, while preserving full-tree fallback behavior.
  • Use the pull request event’s base SHA instead of fetching the current base branch.
  • Use two-tree diffing that does not require a merge base.
  • Retain unresolved-base and push fallback audits over all tracked Markdown files.
  • Add five real-Git regression scenarios covering squash/shallow histories, broken links, pushes, fallback bases, and empty ranges.
.github/workflows/ci.yml
scripts/test-markdown-link-audit.py
Document the post-merge rerun failure, correction scope, evidence limits, and requirement to complete qualification before PR closure.
  • Require complete CI qualification while the PR remains open because closed PRs may lose API identity projection.
  • Record PR feat(identity): reconcile development realm and prove real issuance #34 merge status, failed post-merge aggregate identity checks, local validation, and independent review evidence.
  • Clarify that hosted same-source A/B qualification remains pending and that identity checks, permissions, job names, and ceilings are unchanged.
.github/CONTRIBUTING.md
CLAUDE.md
README.md
docs/roadmap/README.md
docs/roadmap/phase-02b-events-auth.md
docs/standards/06-testing.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Register the new Python proof script in the explicit non-runtime census.
The real frontend guard caught the omission; preserve rejection of
unknown sources and runtime exemptions. All 1840 frontend cases pass.

ADR: 0018, 0056, 0063
Record the first fresh review pair and retained frontend evidence.
Complete hosted qualification remains pending on the corrected source.

ADR: 0007, 0056, 0063
Record the different second review pair and retain the failed initial
attempt's evidence limits. Fresh same-source A/B qualification follows.

ADR: 0007, 0056, 0063
Retain the first body or explicit runtime-join exception instead of
masking it in finally. Export only case-bound closed boundary and owner
task observations so startup and cleanup cancellations can be separated.

Validate clean and three planted fault paths with actual native work,
including the old test's masking counterexample. The earlier hosted
cancellation remains unexplained; no timeout or runtime policy changes.

ADR: 0007, 0047, 0060, 0063
Preserve original proof receipts and disclose the corrected container
count against retained raw cleanup evidence. Record source binding and
the first independent review round without asserting a hosted cause.

ADR: 0007, 0047, 0060, 0063
Record the second fresh independent pair and exact retained evidence
verification. Keep hosted cancellation and helper scheduling causes
unproven until source-bound qualification supplies actual evidence.

ADR: 0007, 0047, 0060, 0063
@cemililik cemililik changed the title fix(ci): audit Markdown links against immutable event commits fix(ci): retain reliable link audits and native failure evidence Oct 22, 2026
The native execution fixtures may consume their sole extra hint while
an earlier empty recovery still owns private cleanup. Wait for actual
native work and local identity release before issuing that same hint.

Reproduce premature consumption with real SQL/native workers and an
owned System timer cleanup barrier. Preserve all existing budgets,
production policy and original case identities; add one regression fact.

ADR: 0047, 0059, 0060, 0063
Restore the original final cancellation check after readiness waits.
Record the first independent review round and fresh exact-source clean
and planted-failure evidence without claiming atomic cancellation or a
cause for the earlier hosted failure.

ADR: 0007, 0047, 0059, 0060, 0063
Record the second fresh pair and exact proof/source verification.
Preserve the unknown hosted cause and require complete final-source
A/B qualification before the follow-up draft is ready for review.

ADR: 0007, 0047, 0059, 0060, 0063
@cemililik cemililik changed the title fix(ci): retain reliable link audits and native failure evidence fix(ci): retain reliable audits and owned native fixture evidence Oct 22, 2026
Let the hosted browser installer leave stalled APT mirrors while retaining
its complete dependency set, verification and existing time budgets.
Read back effective root settings and remove only the exclusive fragment.

Exercise the actual workflow shell across success and failure paths,
and retain the failed prior attempts as unqualified observations.

ADR: 0007, 0056, 0063
Make the write-failure control leave a genuinely incomplete fragment
before refusing, then verify that the actual workflow shell removes it.
Record the first independent review pair and the failed A receipt.

ADR: 0007, 0056, 0063
Record the second fresh independent review pair and its extracted-shell
checks. Keep the prior failed attempts separate from the complete hosted
A/B qualification still required on the resulting source.

ADR: 0007, 0056, 0063
The complete B assignment reaches the last public audit before its
sixteen-minute outer allowance cancels it. Allocate seventeen minutes
inside the same twenty-minute job, twelve-minute proof and thirty-second
native cleanup limits. Bound the remaining cleanup/receipt steps and
restore NuGet without a save post-hook to retain a three-minute tail.

Exercise actual deadline and tail shells, preserving forced failures.
Keep failed partial evidence distinct from complete qualification.

ADR: 0007, 0056, 0063
Record two independent approvals, their actual-shell controls and
historical evidence checks without claiming new hosted qualification.

ADR: 0056, 0063
Record fresh second-round approvals and independent historical evidence
revalidation. Keep complete final-source hosted A/B as a separate gate.

ADR: 0056, 0063
The hosted snapshot control fails strict temporary cleanup while its Git
object directory changes. Keep maintenance in the foreground only in the
synthetic repository so the waited commit also waits its actual work.
Prove nested commit-graph completion with a real Git trace under a
private configuration that otherwise requests background maintenance.

Retain strict cleanup and all OpenAPI comparison and admission rules.
The observed mechanism is not a captured trace of the hosted failure.

ADR: 0007, 0052
Reject a planted graph write failure even when a prior graph exists.
Correct pinned source anchors using physical raw-file lines and record
both first-round reviews and their verified fixes.

ADR: 0007, 0052
Record two fresh second-round approvals and the independently repeated
clean, detached and planted-failure controls with their runtime limits.

ADR: 0007, 0052
Both aggregate jobs reject a gate but discard which source-owned producer
and step failed validation. Emit finite state words before the unchanged
refusal so later API success cannot obscure the original observation.
Never export arbitrary provider values or retry inconsistent evidence.

Keep the unsuccessful historical attempt separate from new qualification.

ADR: 0007, 0063
Retain independent closed-output checks and historical evidence limits.
Separate complete public component observations from failed whole-run
qualification and final-source A/B still required.

ADR: 0007, 0056, 0063
Record fresh differential and mutant controls, independent component
archive checks and the unchanged final-source whole-workflow gate.

ADR: 0007, 0063
Disable the unowned telemetry exporter in the Outbox host fixture and
join actual startup before disposal even when its assertion wait expires.
Retain only finite startup facts from the real test adapter output.

Report closed producer states before the unchanged aggregate refusal.
Keep unknown hosted causes distinct from local counterfactual evidence.

ADR: 0007, 0044, 0046, 0063
Record independent code, protocol and retained-evidence validation while
preserving unknown hosted causes and complete final-source A/B gates.

ADR: 0063
Record the second fresh review pair and narrow container identity prose
to the exact retained evidence. Keep full final-source A/B pending.

ADR: 0063
Read fresh complete attempt snapshots under one short acquisition
budget before applying the unchanged successful-producer witness.
Refuse terminal, malformed and identity-invalid evidence immediately,
including when an earlier owner is pending. Never combine snapshots.

Keep the five-minute aggregate ceiling and upload reserve unchanged.

ADR: 0063
Reject malformed or reversed creation timestamps before a pending
owner can cause another read. Record independent repros and corrected
first-round review validation.

ADR: 0063
Record fresh second-round deadline and malformed-evidence controls,
with retained failed-attempt and pending hosted qualification limits.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant