Skip to content

Epic: resolve recurrent QA preflight and catalog-context failures #401

Open

Description

@barbatdev

Problem

Recurrent QA preflight failures leave operators unable to distinguish catalog/profile resolution, actor admission, and model availability. Existing reports cover overlapping parts of this class; an installation update is not a justified remedy when the effective installation is already consistent.

Desired outcome

Coordinate and resolve the existing QA preflight reliability reports as one root-cause cluster, with deterministic public-interface evidence and actionable diagnostics rather than repeated live-model attempts.

Scope and non-goals

Existing children: #329 (admission stages and doctor), #374 (stage inputs and resolved route diagnostics), #324 (relative catalog/profile resolution). Reuse existing mechanisms and ownership safeguards. Lifecycle conflict diagnostics #373 and provider transport behavior #345 are adjacent but separate; do not claim them resolved by this epic. No new model calls or user configuration takeover are required for preflight reproductions.

Acceptance criteria

  • Reproduce and disposition each child on current main with named tests; close nothing solely from a green CI run.
  • Setup and run resolve the same supplied catalog/profile context, including the relative-path scenario in Bug: qa run silently ignores the route profile when the catalog path is not canonical-absolute #324.
  • Admission refusals identify the failed stage and useful bounded context without secrets; doctor does not confuse admission readiness with model readiness.
  • Refusal guidance describes the effective route rather than falsely asserting the placeholder route.
  • Ship focused reviewed fixes with regression evidence, docs/help updates, and no unauthorized runtime writes or model launches on rejected requests.
  • Link delivered PRs and exact acceptance evidence for each child before closing this umbrella.

Evidence

Canonical reports: #329, #374, #324. Maintainer explicitly requested an umbrella epic and end-to-end resolution using maintainer triage/review/delivery guidance. Read-only inspection of an affected deployment found matching alpha20 binary/ledger/catalog, all 18 Pi asset hashes matching, and a correct update preview returning all 19 operations unchanged; this does not establish the unknown context of the original rejection.

Activity

  1. barbatdev commented on Oct 31, 2026

    @barbatdev
    ContributorAuthor

    The verified preflight fixes are delivered on main at e19f02179f3484bfd9378677d791653dbfbbfd0e. Eight focused PRs merged in order, all below 400 changed lines: #402 parser (188), #403 admitted profile ids (134), #404 default-source refusal (122), #405 setup root agreement (162), #406 typed admission (155), #407 refusal/profile diagnostics (310), #408 route escaping (70), #410 doctor scope (219). Every merge required passing current CI, a pinned head SHA, and complete source-tree identity with its verified slice; the final tree matches the tested candidate exactly.

    Acceptance evidence is recorded on #324, #374 and #329. Full Go tests, vet, race and all 15 repository policy tests passed on the canonical clean snapshot; independent final verification passed 19 named tests plus four package suites/vet with no severe blockers. Expected fail-closed refusals retain ownership and symlink protections; no real provider calls or runtime repair were needed for these preflight tests.

    #324 and #374 are resolved. #329 is partially resolved and stays open: stage reporting does not establish whether the cause is transient or persistent. This umbrella also stays open pending that explicit acceptance disposition. Provider transport #345 and lifecycle #373 remain outside scope. Current-main delivery is not proof that an installed alpha20 deployment has received these fixes.

  2. barbatdev commented on Oct 31, 2026

    @barbatdev
    ContributorAuthor

    Maintainer disposition: retain the shipped stage diagnostics and define a concrete reproduction before promising transient/persistent causal classification. #329 now carries the bounded protocol: synthetic disposable state and fake backend only, fixed-input identities, at most three timed attempts, exact exit/stdout/stderr plus launch/no-write evidence, and explicit stable-refusal/changed-input/changed-outcome/not-reproduced interpretations.

    The existing public CLI shadow-refusal control and seven-category admission table passed three test repetitions on the delivered source tree. These repetitions use fresh fixtures and are not a reproduction of the original minute-scale incident; the timed same-fixture experiment remains unexecuted. No production host, credentials, provider calls, automatic retries, or repair changes are involved.

    #324/#374 remain resolved. #329 remains the canonical residual investigation; this umbrella stays open for that evidence or an explicit not-reproduced disposition. No new generic issue or speculative runtime fix is needed.

  3. barbatdev commented on Oct 31, 2026

    @barbatdev
    ContributorAuthor

    The #329 bounded protocol has been executed: three timed identical attempts (0/30/120 s) on a disposable synthetic fixture with the fake backend produced an identical stable refusal (actor_shadow_unverified, exit 70, no launch, inputs unchanged), and the isolated control (removing the shadow) flipped admission to success. Details and exact output are on #329.

    Interpretation is bounded: the delivered tree's admission is deterministic under fixed observed inputs over the tested window. The original incident was not reproduced and its cause remains unknown; the shadow trigger is established only for the control scenario. #329 and this umbrella stay open for a real paired-attempt reproduction or an explicit not-reproduced disposition. No product change, no runtime repair, no provider calls.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions