Skip to content

Support authenticated HTTPS in the Versionkeeping publication executor #4

Open

Description

@nisavid

Summary

The Versionkeeping publication planner accepts HTTPS push endpoints, but the executor's closed Git configuration clears every credential helper and sets noninteractive prompting. On a normal macOS checkout whose authenticated GitHub access comes from the system credential helper, planning succeeds while the guarded push cannot authenticate.

Observed while publishing PR nisavid/agents#39:

  • plan_git_publication.py returned a fast-forward ready plan with one outgoing commit, an exact existing-target lease, and no target-only commits.
  • execute_git_publication.py returned POST_PUSH_STATE_UNKNOWN with PUSH_FAILED.
  • Three independent rereads confirmed that the remote ref remained at the exact pre-push SHA, so no remote mutation occurred.
  • The checkout uses an HTTPS origin and the system osxkeychain helper. The executor installs a higher-precedence empty credential.helper, GIT_ASKPASS=false, and GIT_TERMINAL_PROMPT=0.
  • SSH is not an automatic fallback: the current host-key trust and key-authentication state may be intentionally absent.

Desired behavior

Provide an authenticated HTTPS publication route that preserves Versionkeeping's current safety properties:

  • immutable source SHA and one exact branch-update refspec;
  • exact existing/absent target lease;
  • captured endpoint fingerprint and configuration digest;
  • noninteractive operation with no credential bytes in arguments, output, plans, receipts, or repository configuration;
  • no ambient executable Git configuration;
  • one actuation attempt followed by exact remote verification;
  • fail-closed behavior for unsupported credential providers.

Acceptance

  • Define the trusted credential-provider boundary for authenticated HTTPS without reopening arbitrary command-valued helpers.
  • Add applicable macOS credential-provider coverage on GitHub-hosted macOS CI and a provider-unavailable negative path. Use disposable test credentials where required; personal desktop-keychain or provider-session behavior unavailable on those runners remains explicitly unqualified and nonblocking, not a passing claim.
  • Prove plans and receipts remain credential-free.
  • Preserve the existing SSH and local-endpoint contracts.
  • Run an independent Daybreak Blue review of the authentication and secret-handling design before implementation is accepted.

Independent-review handoff

Begin or resume this issue in a fresh evidence-reconciliation and independent Daybreak review thread that did not implement the candidate under review. If the current thread carries that implementation context, invoke handoff before review. Follow the coordinator's thread contract. Suggested skills: codex-security:security-diff-scan, codex-security:verify-fix, checkpointing-and-publishing-git-work, and publishing-reviewable-prs.

If review requires remediation, publish the exact findings and reviewed revision, invoke handoff, and move changes to a separate fresh implementation thread. Any changed candidate then returns through another handoff to a different fresh Daybreak thread for exact-revision re-review.

Every receiving thread must coordinate its revision, evidence inputs, and conclusions with Audit the Provingkit promotion and release chain and concurrent source-security work. No handoff transfers credentials, publication authority, or release authority.

Related pull request

I track PR #115 as a partial source correction to the authenticated HTTPS publication executor. The acceptance checklist remains unchanged, and live-provider behavior remains unqualified.

Activity

  1. nisavid commented on Aug 24, 2026

    @nisavid
    OwnerAuthor

    Implementation evidence refresh

    The authenticated HTTPS implementation is merged in PR nisavid/agents#55 at 0ca226c6ced4229718d627fcbaa367d325c12ce6 (reviewed head c5d7201). The cross-platform provider checks and credential-free plan/receipt behavior are present in that merged change.

    The issue remains open because the acceptance item requiring an independent Daybreak Blue review has not been completed here. No release eligibility or security approval is inferred from the merge or green checks; the remaining review is explicitly deferred to the Daybreak-capable follow-up lane.

  2. nisavid commented on Aug 31, 2026

    @nisavid
    OwnerAuthor

    Scout discrepancy (2026-08-31)

    The issue's August 24 checkpoint says the independent Daybreak review was still incomplete, while merged PR nisavid/agents#55 states that an independent review of 5080ed6...c5d7201 was clean. Those records do not identify the same durable review artifact, so the open issue cannot safely be treated as complete from the PR-body assertion alone.

    Keep this as a task under the release map until the exact reviewed revision and review evidence are linked here and the acceptance checklist can be reconciled. No reimplementation is implied by this graph repair.

  3. transferred this issue fromnisavid/agentson Sep 1, 2026
  4. self-assigned this
    on Sep 16, 2026
  5. nisavid commented on Sep 16, 2026

    @nisavid
    OwnerAuthor

    I am coordinating the independent evidence reconciliation and Daybreak review of the authenticated HTTPS publication executor at published commit 089e62e306734d66187d74e7122d8ad17f418714, following the accepted preview publication. The review will reconcile the historical agents PR55 evidence with the current Provingkit source and address every acceptance item in this issue.

    The reviewer receives public source and public evidence only. It may run isolated, credential-free checks, while source edits, authenticated provider operations, real publication, and live-host actions remain outside the review. Any valid finding will carry its reviewed revision and evidence into a separate implementation handoff before a fresh independent review. The existing README recovery and live-rollout reservations remain with their owners.

  6. nisavid commented on Sep 17, 2026

    @nisavid
    OwnerAuthor

    I recovered the complete independent review of 089e62e306734d66187d74e7122d8ad17f418714, verified against its original SHA-256 995b7b02b3295ce7397781c2e99f73df8f92deea0f53b0fc373198b92fd625b2. It reports two credential-boundary findings and a separate historical public-review provenance gap. The original temporary evidence artifacts are unavailable, so the fresh author must reproduce the findings rather than inherit their validation claims.

    I am handing remediation to a separate fresh Daybreak author against current public commit 147e1ddfc969b5119001488ce1556627d3b2449b. The intervening destination commit/DCO policy from PR #80 remains part of that candidate. I reconciled ownership with the preview coordinator: this issue retains its existing coordination claim, and there is no competing adapter/test/reference owner. PR #84's shared Kit-definition edit must be reconciled before publication of any resulting Versionkeeping identity change. The author may correct valid findings within this source boundary and must return any consequential unresolved policy choice. A different fresh reviewer must assess the resulting complete boundary before acceptance. No credential access, real provider operation, installation, or publication is delegated.

    Recovered independent review, unchanged

    Authenticated HTTPS publication evidence reconciliation and independent review

    The current Versionkeeping boundary at 089e62e306734d66187d74e7122d8ad17f418714 is not clean against issue 4. The immutable-source, exact-lease, endpoint, single-attempt, postcheck, SSH/local, noninteractive, and hosted-provider controls are supported at their tested layers. Two current credential-boundary findings require revision: the default host-compatible HTTPS route executes ambient command-valued helpers without binding them into the reviewed configuration digest, and the credential preflight captures provider response bytes in the executor process. The historical PR 55 record also has a separate public-provenance gap: its body claims a clean Daybreak review, but the complete surveyed public review surfaces contain no Daybreak review artifact.

    This is a review result only. It does not close issue 4, accept the implementation, qualify a real credential provider or personal Mac, authorize publication, or start remediation.

    Reviewed identity and public lineage

    • Public claim receipt: issue 4 comment 5695975350; supplied receipt SHA-256 34e29b25c0ef0d1400e67df72cd7be92d18c5b8d5a8edc2597e2d5a77efe58dd; verified public body SHA-256 d316b6c96d841921629c340f6598ce3bf159933d63ace2841b10e469414789fc.
    • Reviewed Provingkit commit: 089e62e306734d66187d74e7122d8ad17f418714; tree f22dc56cc332b9bf5e8da78f3d1c656dbee0cc51; parent 8783281f165676d5202c455efc10018fb3b4ec07.
    • Public codeload archive SHA-256: 914b9d6d2de42ccfacf9f354eac7181d4906de57b2637b508e6e2f69b430ad28.
    • The recursive public tree response was not truncated: 866 entries, including 662 blobs. The safe extraction contains 662 regular files. Recomputed Git blob IDs and byte sizes match every public tree blob; both sorted manifests have SHA-256 4f3442e270c8e194adac329d8d6b805a14e7ae06d5bc272d902e54c19d0b6960.
    • release/provingkit/agents-commit-map.tsv:18 maps agents merge 0ca226c6ced4229718d627fcbaa367d325c12ce6 to Provingkit extraction commit 3eed97b75760ce371cb7a372190b89b767c02d39. Its adapter blob c8b4580d8d741f19e9262e98961315beffb12c48, publication-reference blob 4e4163adf94c61e5631a490177d041a74aa881ec, and workflow blob 49cfc12b92ac3c0be8120af223a0c10a62a5d4d5 match PR 55's final public file records.
    • The current boundary is assessed with deterministic public diff public-evidence/reviewed-boundary-3eed-to-089e.patch, SHA-256 b03f4d12f67e8f7c9e9f4875de03f11fea2e10fa45f5ac08958bbc207fc9657c.

    The reviewed commit is later preview-publication integration; the material HTTPS evolution is nevertheless in its frozen tree. Commit 82e59940a06ba2d130fe1df2c6dc6c1479bed51e introduced the host-compatible default and credential preflight. Commit df1603060acc0fe792e218b5cb9a37894a9a2fc2 then preserved XDG_CONFIG_HOME for that profile. boundary-source-identities.tsv records the exact historical and current blobs.

    Historical review reconciliation

    Agents PR 55 has base 5080ed6fcf7e9198919dace0c031acebd39ef1fb, final head c5d72018002f577a5c1058a305052d7ae5ce9866, and merge commit 0ca226c6ced4229718d627fcbaa367d325c12ce6. Its body says an independent Daybreak review of 5080ed6…c5d7201 was clean.

    That prose is not backed by an exact public review artifact in the surveyed record:

    • 14 public review records, 18 inline review comments, and 3 PR issue comments contain zero Daybreak references.
    • The only approval attached to exact head c5d7201… is CodeRabbit review 4998393876. The other exact-head records are comments from CodeRabbit, Greptile, and nisavid; none identifies a Daybreak reviewer or immutable Daybreak result.
    • All eight recorded exact-head checks succeeded, including Ubuntu, macOS, and Windows credential-provider jobs. Those checks establish their tested behavior, not reviewer identity or an independent security review.
    • Issue 4 comment 5498561428 explicitly says the Daybreak acceptance item remained incomplete. Comment 5498561527 records the same discrepancy and rejects the PR-body assertion as sufficient evidence.

    Historical disposition: valid public-provenance gap. I did not use private transcripts to fill it. This fresh review binds the current Provingkit tree and must not be represented as retroactive proof for PR 55.

    Current findings

    F-001 — The default HTTPS route admits mutable ambient helper commands outside the reviewed digest

    Severity: high. Status: valid finding. Patch-risk result: contradicted.

    GitRepository defaults to host-compatible (adapter.py:991–1010). That profile inherits HOME, XDG_CONFIG_HOME, proxy state, SSH_AUTH_SOCK, and host PATH (adapter.py:135–154, 1047–1074), does not mask global or system Git configuration (adapter.py:1077–1107), and rejects HTTPS credential settings only from local and worktree scopes (adapter.py:1130–1150). Its broader inert-policy pass likewise restricts executable-config rejection to local and worktree scopes (adapter.py:1290–1312). The tests make this inheritance intentional: test_git_publication_adapter.py:453–480 asserts that the host-compatible profile reads global Git configuration, while 482–507 proves only the hardened profile masks it.

    Source → control → sink:

    1. Source: mutable global or system Git configuration reached through inherited HOME or XDG_CONFIG_HOME, including command-valued credential.helper.
    2. Control: _configured_classes can see credential.*, but enable_https_credentials passes scopes={"local", "worktree"} and marks credentials enabled without selecting a trusted provider.
    3. Sink: git credential fill runs with that inherited configuration in ensure_https_credentials; the same Git environment reaches endpoint probes and the branch-update command.

    The network-denied counterexample installs a synthetic global command helper under a synthetic XDG_CONFIG_HOME. The unrestricted inventory sees credential.*; the HTTPS gate's selected scopes see an empty set. The default preflight accepts and executes the helper. Changing the global helper command leaves the reviewed digest unchanged because _config_digest hashes destination-selection fields, endpoint fingerprint, default branch, and the profile name, not the effective inherited configuration (adapter.py:2015–2047; execution.py:316–325).

    This directly contradicts issue 4's “no ambient executable Git configuration” requirement and its trusted-provider/fail-closed boundary. It also narrows what the documentation may claim: publication-execution.md:82–90 correctly says host-compatible inherits helpers, but 92–100 then describes ordinary publication as using closed platform-provider sets. ADR 0002 deliberately chooses compatibility (docs/adr/0002-host-compatible-git-operation-profiles.md:9–19); that choice cannot inherit the stronger issue 4 claim.

    The explicit hardened path is legitimate counterevidence to a broader “Versionkeeping cannot support guarded HTTPS” claim. It masks global/system configuration, clears ambient helpers, rejects all relevant scopes, selects an identity-checked platform provider, and fails closed when the provider is unsupported (adapter.py:1077–1107, 1151–1178). The defect is the default/claim/procedure boundary and the missing binding for inherited effective configuration, not the absence of any closed implementation.

    Required correction: make the closed profile an explicit invariant of any issue 4 publication plan and procedure, or make the authenticated route closed by construction; bind the effective provider/configuration identity or make ambient configuration irrelevant; and add a negative global/system command-helper test that proves no execution before any remote operation. Host-compatible publication may remain an explicitly weaker compatibility contract.

    F-002 — The credential preflight captures provider response bytes in the executor

    Severity: medium. Status: valid finding. Patch-risk result: contradicted.

    ensure_https_credentials invokes git credential fill with stdout=subprocess.PIPE, stores the completed process, and evaluates result.stdout.strip() (adapter.py:1180–1212). Credential protocol output contains the selected username and credential. The synthetic counterexample records that the call used a pipe and that the result presented to the executor held nonempty provider output. It prints only booleans and never emits the fixture value.

    Source → control → sink:

    1. Source: credential response returned by the selected or inherited provider through Git's credential protocol.
    2. Control: prompt suppression and endpoint validation prevent interactive acquisition and URL userinfo, but no control keeps provider stdout outside the parent.
    3. Sink: CompletedProcess.stdout in the executor process.

    I found no path that writes this value into arguments, plans, receipts, diagnostics, repository configuration, or the returned execution receipt, so this is not evidence of an external credential disclosure. It still contradicts the maintained statement that credential bytes “are never read by the planner or executor” (publication-execution.md:140–142) and expands the sensitive in-memory boundary unnecessarily.

    Required correction: make availability probing return status only while discarding credential-protocol output outside the planner/executor, or remove the duplicate preflight and rely on the one guarded Git actuation's typed result without retry. Add a test that fails if the parent requests a pipe or receives provider bytes.

    Supported controls and rejected counterclaims

    • Immutable source and exact refspec — supported. The plan requires the request's full source SHA and derives exactly <source SHA>:<full destination ref> (core.py:242–268; execution.py:187–223). test_source_sha_is_immutable_when_head_moves passes.
    • Present and absent target leases — supported. Existing targets use --force-with-lease=<ref>:<exact SHA>; absent targets use --force-with-lease=<ref>: (core.py:247–266). The executor re-probes the exact target and rejects drift before actuation (execution.py:327–345). Present-drift, absent-creation, and exact-removal tests pass.
    • Endpoint identity — supported. The planner stores only a SHA-256 endpoint fingerprint; the executor resolves the push URL again, compares the fingerprint, and binds the captured endpoint through one ephemeral --config-env alias (execution.py:291–307; adapter.py:1770–1805). Endpoint mutation and remote-name redirection tests pass. The claim that a reviewed remote name can redirect the push is rejected by this source and test evidence.
    • Configuration identity — valid finding. Selection changes and profile changes invalidate the plan, but mutable inherited effective configuration does not. F-001 is the distinct counterexample.
    • Noninteractive operation — supported. GIT_ASKPASS, GIT_TERMINAL_PROMPT=0, GCM_INTERACTIVE=never, batch-mode SSH, closed editors, and timeouts are set (adapter.py:1052–1075). No interactive provider or external endpoint was invoked here.
    • One actuation attempt and exact verification — supported. push_attempted is set immediately before one _run_endpoint push; the executor then probes the exact ref. Post-actuation failures become POST_PUSH_STATE_UNKNOWN without retry (execution.py:349–391). Push failure, timeout, and verifier-failure tests each observe one call.
    • SSH and local regressions — supported. HTTPS credential activation returns immediately for non-HTTPS endpoints; SSH remains batch-mode and owner-secure local endpoints retain ancestry checks. Protocol allowlist, secure-local, hostile ext, endpoint alias, and local execution tests pass. The claim that the implementation silently falls back from HTTPS to SSH is rejected: no such transition exists.
    • Plan and receipt fields — supported at the static and selected-test layer. Strict plan and receipt shapes have no credential fields, credential-bearing endpoint values are rejected, and the synthetic counterexample output is boolean-only. The loopback HTTPS test that combines this with a local TLS server was excluded because this review required network syscalls to remain disabled.
    • Hardened provider selection and unavailable negatives — supported at the constructed/hosted layer. Mocked Linux, macOS, and Windows unavailable-path tests pass locally. Public current-commit check readback shows successful Ubuntu, macOS, and Windows provider jobs. This does not repair the default host-compatible bypass.

    Acceptance and focus matrix

    Issue 4 item or selected focus Disposition Evidence or limitation
    Trusted HTTPS provider without arbitrary helpers valid finding Hardened supports it; default host-compatible executes the F-001 global helper.
    Immutable source SHA and one exact refspec supported Exact full SHA/refspec validation and local execution tests pass.
    Exact existing or absent target lease and remote-work preservation supported Exact lease construction, re-probe, drift blocks, and Git lease are all present.
    Captured endpoint fingerprint supported Fingerprint is reviewed and rechecked; captured endpoint alias prevents later remote-name redirection.
    Reviewed configuration digest valid finding It binds profile/selection, not inherited helper identity or other effective host configuration.
    Noninteractive operation supported Prompts, editors, askpass, GCM interaction, and SSH prompting are closed.
    No credential bytes in arguments, output, plans, receipts, logs, or repository config valid finding Those durable/external sinks are clean, but F-002 shows credential response bytes in executor memory and contradicts the documented isolation boundary.
    Unsupported or unavailable provider fails closed valid finding Hardened and its negative tests fail closed; default host-compatible accepts any inherited helper that returns data.
    One actuation attempt followed by exact remote verification supported One push call, exact post-probe, and no-retry unknown-state tests pass.
    SSH and local endpoint regression supported Non-HTTPS paths do not activate credentials; secure local and SSH contracts pass their tests.
    Realistic Git and platform interfaces supported Actual /usr/bin/git serves local file transports; platform identity logic and current hosted jobs cover GitHub runners. Sandbox root UID observation is the sole constructed identity adjustment.
    Current GitHub-hosted macOS coverage supported Job 104754442199 at the reviewed commit succeeded and exercises the hardened macOS provider path.
    Personal Mac, real keychain/session, external GitHub authentication, or real push unavailable Deliberately excluded; no inference is made from fixtures or hosted runners.
    Historical PR 55 Daybreak artifact valid finding PR-body prose and green CI are not an immutable public review artifact; none was found across the full surveyed public review surfaces.
    Current independent Daybreak pass valid finding This fresh pass is complete for the frozen revision but not clean because F-001 and F-002 remain. Root owns acceptance.
    Security and authentication focus valid finding F-001 and F-002.
    Correctness and remote-state focus supported Exact source/ref/lease/endpoint/postcheck behavior survives distinct drift and uncertainty counterexamples.
    Test-quality focus valid finding Strong guarded-update tests exist, but default ambient-helper execution and parent credential capture lack rejecting tests.
    Architecture and maintainability focus valid finding The two-profile model is explicit, but ordinary-publication wording transfers the closed-provider claim to the weaker default.
    Documentation and procedure focus valid finding Credential-isolation prose contradicts stdout=PIPE; the issue 4 profile precondition is not enforced as procedure state.
    Performance and availability focus supported Bounded Git timeouts and no retry are present; no additional performance defect was found in the reviewed scope.
    Scope, dead code, and unrelated cleanup focus rejected Current findings are reachable through the maintained CLIs and procedure; no adjacent cleanup is needed to state or fix them.

    Validation results and constructed conditions

    The rubric was frozen before source execution in validation-rubric.md, SHA-256 628d23e6f0fc380798ed6221925e9abe1209e8ae443d46c56ffece9f3f62d024. threat-model.md records the assets, trust boundaries, attack paths, and authorization limit.

    Credential-free execution used validation-artifacts/network-deny-exec, a locally compiled seccomp launcher that denies socket and connect with ENETUNREACH and carries the filter across Git subprocesses. Its direct probe returned errno 101. Processes began with env -i, synthetic HOME, synthetic XDG_CONFIG_HOME, fixed PATH=/usr/bin:/bin, and no account or provider state.

    The source rejects /usr/bin/git, /usr/bin/ssh, and otherwise-safe local ancestry in this harness because sandbox-owned root filesystem objects appear as UID 65534. The test runner therefore changes only that constructed observation: it admits the two fixed source-allowlisted executables and treats UID 65534 as root for local ancestry. It does not change copied candidate files, endpoint/configuration behavior, helper scope selection, plan construction, execution flow, or assertions. The counterexample uses the same fixed-executable identity adjustment. This condition means the local run does not independently qualify root-ownership detection; public source and hosted jobs supply that evidence.

    Numeric outcomes:

    • Public source reconciliation: 662/662 extracted blobs and sizes matched; 0 mismatches.
    • Counterexample: 8/8 expected security-observation booleans matched. Ambient helper executed: true. Preflight accepted: true. Credential stdout pipe: true. Nonempty provider output in parent: true. Digest unchanged after helper-command change: true. Credential value printed: false.
    • Copied suite: 143 discovered; 7 real-provider/platform-actuation tests excluded; 1 loopback-network fixture excluded; 135 selected; 135 passed; 0 failed; 0 errors; 0 selected skips; 4.798 seconds.
    • Static compilation: 16 copied boundary Python files compiled in memory; 0 failures.
    • Current public hosted readback at 089e62e…: ubuntu-latest credential provider job 104754441757, macos-latest credential provider job 104754442199, windows-latest credential provider job 104754442126, and Versionkeeping source contract job 104754441698 each show “This job succeeded.” The provider workflow has no path filter and pins checkout/setup actions; its tests run under the hardened profile because PublicationExecutionTests.setUp forces it (test_git_publication_execution.py:245–264).
    • Patch-risk JSON: validator exit 0 with no output. Recommendation revise; impact high; regression likelihood critical; regression protection partial; recoverability managed; confidence high.

    Excluded authority leaves exact limitations: no real helper invocation, credential generation, account/session/keychain inspection, external authentication, network connection, remote push, personal Mac contact, CI dispatch, provider/hardware access, source mutation, commit, push, tracker write, or acceptance operation. The GitHub-hosted macOS observation qualifies only that runner, workflow, tests, and reviewed revision. It does not qualify a desktop keychain's unlock, persistence, session, or live-consumer state.

    Ralph review state

    Cycle 1, final frozen revision 089e62e306734d66187d74e7122d8ad17f418714: not clean. F-001 and F-002 are valid current findings; HIST-001 is a separate historical provenance gap. No candidate changed after validation, so all selected focus results bind the same final revision. A second cycle would only repeat the same source and is not a completion criterion. Source edits and successors are outside this review; remediation requires a separate fresh author and then a different fresh reviewer on the remediated immutable revision.

    Procedure capture and consumer status

    This review consumed the public checkpointing-and-publishing-git-work procedure at current blob 534cd2f4745d363c328c4b961c11c4a779b5aa34 and applied capturing-agent-procedures to the method correction. method-correction.md proposes the owner/source scope, closed-provider contract, verification, adaptation rule, and downstream consumers. No shared procedure was edited.

    Procedure disposition: valid finding for issue 4 authenticated HTTPS consumers. A remediation task should invoke the captured correction, update the owning Versionkeeping source/tests/prose, and produce a new immutable review input. This task is not rollout issue 70 or maintenance issue 72 and does not discharge their separate issue 69 procedure-consumer obligations.

    Artifact index

    • source-manifest.json: reviewed revision, public archives, tree/blob reconciliation, extraction lineage, and boundary-patch identity.
    • historical-evidence-summary.json: PR 55 public-review counts, exact-head approval/check identities, and issue 4 discrepancy pointers.
    • boundary-source-identities.tsv: exact critical blobs at historical extraction and current review head.
    • public-evidence/public-tree-blobs.tsv and public-evidence/public-source-git-blobs.tsv: complete public tree and extraction Git-blob manifests.
    • public-evidence/public-source-file-sha256.txt: complete extracted-file SHA-256 manifest.
    • evidence-manifest.tsv: SHA-256 and byte count for every retained public-evidence file.
    • validation-artifacts/counterexamples.json, network-denial-probe.json, selected-tests.log, and static-compile.json: runnable validation receipts.
    • patch-risk-assessment.json: validated codex-security patch-risk object.
    • method-correction.md: captured reusable procedure correction proposal.
    • commands.md: exact command shapes, numeric outcomes, and constructed conditions.
    • artifact-digests.tsv: SHA-256 and byte count for every returned review artifact except itself; the handoff returns that manifest's own digest separately.

    The SHA-256 of these exact report bytes is returned alongside report_markdown.md; it is intentionally not embedded in the file because embedding it would change the bytes.

  7. nisavid commented on Sep 18, 2026

    @nisavid
    OwnerAuthor

    The guarded HTTPS source correction has a clean independent Daybreak review. It checks the reviewed configuration profile before credential activation or endpoint probing and makes credential preflight depend on status while discarding provider output. The accepted host-compatible/hardened distinction remains explicit; live provider behavior is still unqualified.

    I integrated the seven reviewed files unchanged onto current main 9f703468fc7a634e63d890211b5c2e3c3e27f252 and applied the coordinated Versionkeeping member-reference update, preserving every other Kit member. The local checkpoint is cb67369f0426c040700e69324a311a9b0bf92cdc. Its credential-free 164-test selection, 62 validator tests, Versionkeeping validation, source-disposition validation, and composite Kit validation pass. Seven provider/loopback methods remain excluded and one platform test is skipped.

    The independent source review SHA-256 is 2ce56fa471e3d0aa9dd290e57c1bf9f990ca2fedbf6bccf366c20bb1920b6900; the reviewed source-manifest SHA-256 is e54abc536c271f5f189b89b79408791013a47b0661ffa452c77002c8e761578a. Exact-byte integration and evidence continuity are under separate inspection before publication. This does not close the historical PR #55 evidence gap or qualify a live credential route.

  8. nisavid commented on Sep 18, 2026

    @nisavid
    OwnerAuthor

    I published the reviewed HTTPS correction as draft #115 at cb67369f0426c040700e69324a311a9b0bf92cdc. It rejects configuration-profile drift before credential activation or endpoint probing and makes credential preflight discard both output streams. The seven source-reviewed files are unchanged; integration adds only the prescribed Versionkeeping member-pointer update. #80 remains historical input.

    The source review and integration review have no unresolved findings within their stated scopes. On the committed candidate, I verified 163 provider-free owner tests with one platform skip, 62 Versionkeeping validator tests, 83 Kit tests, the three source validators, and the diff check. The independent PR-text review also completed cleanly; canonical publication audit and exact body readback passed.

    The integration parent is 9f703468fc7a634e63d890211b5c2e3c3e27f252; the current PR base is 3b8f3618a5899e1993eb45d259c3725ef1dd71fd. I have not validated their merge. Hosted checks are pending, and live-provider and personal macOS behavior remain unqualified. This is a draft source checkpoint; the issue’s remaining qualification and acceptance work stays open.

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

Metadata

Metadata

Assignees

Labels

wayfinder:taskWayfinder prerequisite task ticket

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions