Repository navigation
🚑 fix: verify: Use a private Linux keyring - #470
Conversation
Record the first-command conditions for trash, core diagnostics and tool credit in COR-629 through COR-631 Keep the global flags contract aligned with current core and transcript output
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
Keep the no-code scope while naming the existing catalog overpromise in the conditional diagnostics idea
Resolve template links with the Copier revision and bundled links with the running ncly version Replace the private modeling skill reference with public steps and reject blob/main links in pinned sources
7ef8e87 to
d1200c0
Compare
1ae9968 to
83ce9a7
Compare
d1200c0 to
dfdec32
Compare
|
Note 🤖 GPT-6.1-Sol responding on behalf of pascalandy Independent Claude Haiku 5.5, effort xhigh, ran verify-nicely on clean source66a7ed509d8f7cb1e72ddad020eeb9ed6e2e18ed on om1. This quote records that tested source, not a later changed input. All original196 checksum entries passed parent readback. Required cleanup and quote preceded copying; the six run folders and delegate work folder are gone. No personal cookies, real keys or caller-session auth were used. Home/work paths are normalized below. The complete auth guide passes with the private Linux keyring. Cleanup logs out the fake key, reads AUTH_MISSING and stops the private session. The independent digest comparison, omitted from copied quotes, is recovered from the actual command_execution236 and says digest match: yes; no key value is copied. Baseline Doctor before prepare Complete auth quote Actual independent digest comparison Complete auth cleanup quote Private-session lifecycle evidence Recorded post-cleanup exit checks User-service item paths only, before and after by GPT-6.1-Sol via Codex |
dfdec32 to
c580c4f
Compare
83ce9a7 to
11a204e
Compare
- Purpose: keep the moved overview readable as a standalone paragraph - Impact: state the template behavior with complete sentences
Read the final ERROR record before diagnostic truncation so sign-in refusals cannot inherit a temporary warning Keep network failures retryable and name the browser setting in the download failure hint
Refuse invalid outputs and missing keys before generating and opening an unnamed run Keep named-run locking and verified completion replay ahead of attempt checks without deleting lock files
Distinguish the executed preparation checks from the dry-run calls in the same Verify feature
- Purpose: Prove the existing-run answers after successful unnamed preflight - Impact: Fix only the generated ID in a test subprocess; preserve normal call ordering and saved bytes
Require an explicit accepted limit ID tied to every matrix row of its privacy case while retaining independent output and bad-variant checks Keep private text searches strict and reject missing, unrelated, duplicate or placeholder limit bindings
Move the seven acceptance rules unchanged to their own linked page before extending their privacy condition
Require the accepted Limit row and every matrix row to name the same Output case Keep the independent metadata reader and missing-acceptance controls strict The unrelated hotel-network limit now fails even when the matrix names its ID
Keep the ordinary private-text negative control and route accepted retention through the scoped limit contract
- Purpose: Reject an accepted limit whose text contains only bindings, its ID or placeholders - Impact: Name missing Limit text and share the Output grammar while keeping independent artifact checks
- Purpose: keep an unfinished limit from suppressing the private-text check - Impact: reject None or Fill: parts anywhere in the Limit cell, with public regression controls
- Purpose: make the contract describe the actual limit and private-text checks - Impact: condition generic privacy examples and define the whole-part placeholder rule
11a204e to
de5af07
Compare
c580c4f to
d2f6629
Compare
Correct the final review's remaining documentation and comment claims. Keep executable behavior unchanged.
Remove caller GIT_* state from every update program and check the owned package trees with exact reader allowances
Preserve the all-GIT-variable update contract while giving Copier a scratch HOME fallback Document that the shared helpers also serve check, contract and readiness probes
- Purpose: describe the implemented environment readers without an exclusivity claim - Impact: label current command behavior accurately and retain caller-setting rules
Correct the final review's remaining documentation and comment claims. Keep executable behavior unchanged.
d2f6629 to
54bb169
Compare
de5af07 to
a25867e
Compare
Name every GIT_* variable and use the existing check and readiness terms.
Keep one isolated Secret Service across scratch steps and stop its daemon and bus during cleanup
Stop the owned session after state or marker loss and after six hours Keep normal auth cleanup and missing-program behavior covered by real private-session tests Install Linux CI prerequisites and put Verify guidance under contributing
- Purpose: distinguish private Linux cleanup from macOS login-keychain removal - Impact: correct comments without changing executable cleanup behavior
Correct the final review's remaining documentation and comment claims. Keep executable behavior unchanged.
Exit before serve loses its local daemon PID. Prove normal stop status and cleanup through the real private helper, keeping abandonment controls.
a25867e to
c111638
Compare
|
Note 🤖 GPT-6.1-Sol responding on behalf of @pascalandy Verify29 (Haiku5.5 through Claude Code, xhigh) drove the real private Linux setup at clean top Baseline and final quoted evidence: Actual exposing readings and command exits: Old-red/new-green regression on the real helper, run by Cook before commit: The independent diagnostic challenge leaves H1 (returned-local scope) surviving the paired facts, eliminates a daemon-only cause with the Bash control, and eliminates environment differences in the lab only. It did not establish what killed the old daemon; session teardown also killed the trap-free control. The minimal repair exits before serve loses its local daemon PID. Physical-stop semantics stay unchanged. Normal marker-loss/expiry loop endings now record0 instead of the incidental shell-error1; explicit signal/failure still records1. Limits: Verify29 stores no key, so it does not prove logout failure recovery or secret deletion. Full earlier auth evidence keeps its recorded source. A synthetic daemon ignoring TERM can block trap wait; the bounded caller then fails loudly. Real GNOME honored TERM in the observed controls. Six-hour expiry is source-level, not a six-hour run. RunB also ended all five process identities through ordinary cleanup, but its final stopped/log bytes were not saved before deletion; only RunA proves those bytes and repeat-stop. Cleanup and quote exit0; both owned run paths/work folder are gone. This is pre-merge proof; a merged/deployed field re-read remains due. by GPT-6.1-Sol via Codex |
|
Note 🤖 GPT-6.1-Sol responding on behalf of @pascalandy Final owner-gate evidence for Signoff36 passed all six remaining heads in one invocation on om1, 06:16:23–07:39:36 America/Montreal on 2026-11-04. Recipe, token reader, private supervisor, pipeline and launcher all exited 0. This head's new status ID is Tests used a private D-Bus session and recipe umask The complete layer log follows. Host-specific paths are normalized. Release output belongs to disposable test fixtures, not a Nicely release. Earlier failed invocations remain historical evidence rather than passing retries. Raw layer-log SHA-256: by GPT-6.1-Sol via Codex |
Outside the plan: Pascal assigned this Epic 16 correction on 2026-11-03.
A scratch HOME on Linux could still reach the caller's Secret Service. Verify now starts and unlocks one private D-Bus/keyring session per run, routes every step to that bus/runtime, and stops the daemon and bus during cleanup. Missing
dbus-run-sessionorgnome-keyring-daemonfails launch by name. The Linux integration test skips by name if a prerequisite is absent; macOS retains its existing path.The test builds the real CLI and drives Verify start, auth fixture preparation, login, keychain-source status, logout, missing-key status, cleanup logout and quote. An invalid caller bus makes the old behavior fail at login with
KEYRING_UNAVAILABLE, without reaching the user's session. The repaired test passes on om1 and independently checks that the private daemon PID is gone. Both missing-program launch controls pass. The issue'sbusctl ... SearchItemscall gives identical service-nicely item paths before and after; it reads paths only, never secret values.The auth guide moved into smaller linked chapters as a neutral prerequisite. Shell checks and commit lint/limits pass.
Closes #445
User-session item-path observation around the om1 integration test (no values read):
busctl --user call org.freedesktop.secrets /org/freedesktop/secrets org.freedesktop.Secret.Service SearchItems 'a{ss}' 1 service nicelyBefore:
After:
Earlier-head CI: full
just checkpassed atea04ea6a6008e6b2d234f07bb486e7adbfafdfd8(workflow check).Independent Verify evidence
Independent Claude Haiku 5.5 at effort xhigh ran verify-nicely on the clean stack top
9b68ad4cf7394aca8ed37d17ef1c8ed44e1129e0on om1. The tested top contains this PR. The quotes below are complete. Run cleanup succeeded before quoting and copying the evidence. The temporary run folders were then trashed. This evidence is local Verify, separate from CI and owner signoff.A fresh auth-only run closes the missing baseline Doctor record in the earlier run. Baseline version and Doctor passed before prepare. All 36 framed auth steps matched their expected exits, including masked terminal input, the grant, digest, revoke, refusals and Ctrl-C. The independently computed fake-key digest equals
51d59ca5d825fb5e3cfa09d5874c09d39095468f57bcf030744e31749fb93fcf, the fixture answer. The copied quotes contain zero occurrences of the fake key. Cleanup logged it out, read AUTH_MISSING, removed build and scratch, and stopped the private keyring and bus. All nine files in the original evidence manifest passed SHA-256 readback.Complete auth, cleanup, baseline Doctor and keyring quote
User-session item paths, before and after the independent run
That call reads item paths only. Auth CLI calls used the private Verify session. Querying its bus after cleanup is neither required nor possible because cleanup stops it. The brief requested the saved Doctor transcript to be quoted after cleanup. It did not request a new Doctor call against a removed build. The macOS-only no-default-keychain step is n/a on Linux. The delegate thread finished and settled, and its temporary work folder is absent.
First-pair fixes and new-head evidence boundary
Previously recorded layer head:
1ae9968857b9155fd8d0116379fe360bbc4b0775. Earlier CI, owner-status and Verify quotes below describe their explicitly recorded earlier heads. They do not certify this new head. New-head full checks and fresh affected Verify are pending.Stop a private keyring session if its owned state or runtime marker disappears, and expire it after six hours. The real abandonment controls fail on the old helper and pass after repair; normal private auth and missing-program controls also pass. CI now installs dbus and gnome-keyring explicitly. The six-hour cap is source-enforced; no six-hour elapsed test is claimed.
Then-current layer head:
83ce9a7bedb0ebe93533bb689ad7033708f30985. The stack is clean and pushed. Earlier proof retains its explicitly recorded source; new-head checks, final owner statuses and the remaining review passes are still required.Complete independent Verify8 evidence, read back after publication. The omitted release flag and independent digest comparison were recovered from actual command history. The false progress-byte warning is corrected there.
Then-current validation layer head:
a25867e8e3c55ce3318a34d459f9afbe61b4e8ff. Earlier progress entries name historical heads. The extra final fix-only passes, new-head required checks and owner statuses remain pending. The stack is not Ready.The final-pair corrections are confined to their owning documentation, template text and comments. Existing proof keeps its recorded tested head; a bounded independent supplement will close Verify22's missing live restoration comparisons and README copy. The new #468 and top dependency intersections and protected-path hits are empty under Chef's receipt-retention rule.
Earlier candidate reconciliation
Candidate layer head:
c111638593a3f1c3a9f24cd71f2130701ffd466e. This update preserves historical proof at its named source. Final-head CI and recipe owner statuses remain pending; steps 5 and 8 stay unticked. The final extra reviewers found no critical or warning issue at c1ded76. Their last comment and terminology proposals were applied by the Cook afterward and have no additional barrage review.The final #445 repair keeps the EXIT trap inside serve while its local daemon PID exists. The real-helper regression fails on the old helper with stopped=1 and an unbound-variable diagnostic. Normal stop, both abandonment controls, real CLI auth and named missing-program tests pass on the repair. Stop retains physical-resource semantics. Normal loop termination on marker loss or expiry now records 0 instead of the incidental shell-error 1; explicit signal/failure paths remain 1. No daemon leak or secret loss was observed. A fresh independent private-session Verify and full macOS check are required at the new top.
Final frozen-head validation
Ready for Chef validation at
c111638593a3f1c3a9f24cd71f2130701ffd466e. This section supersedes pending-state statements in the historical progress entries above. All nine heads are frozen, clean and pushed. Every final head has passing CI and a successful recipe-owned signoff status. CodeRabbit auto review is disabled and its check is skipped, not an approval. The recorded barrage reviews are complete.CI at this exact head: passing Check 1, passing Check 2. Owner status:
signoff=success, ID58039110225. Complete owner-recipe evidence and layer log.The final independent private-keyring evidence reads stopped as exactly 0\n with an empty supervisor log, and proves repeat-stop and owned-resource absence. It does not claim failed-logout secret deletion.
The final-top macOS check passed all 11 checks at 531b3b4. Historical failed runs remain recorded, with Chef dispositions and follow-ups. The last comment and terminology corrections after the exhausted final barrage pair have no additional barrage review. The keyring behavior repair has old-red/new-green regression evidence and independent final-head Verify29. No further source changes followed those checks.
by GPT-6.1-Sol via Codex