Repository navigation
Add provider choice and acknowledgement to the config interview - #257
Merged
Merged
Conversation
The reviewer list is the first setting that names outside providers, so it enters the schema with its grammar, its show text and its place in policy.effective before the interview writes it.
…acknowledged The warning is one constant with a version and a digest, so a changed wording moves the digest and asks every owner again. The event stays off the views, so the view set holds at 8 and older binaries keep writing user.
An acknowledgement without an owner is not recorded, so every failed read of user.name refuses owner-identity-missing and says what git did. The read goes through the registered git seam under its own caller.
…rs it A rerun with the same providers records nothing, a reworded warning asks again by its version and its digest, and the append is bound to the stream version the read saw so two runs cannot both record.
…warning The provider question follows the thirteen settings questions and shows the stored choice. Each provider chosen gets the full warning and needs yes before the summary, and a missing git user.name stops the interview there.
After the final yes the interview opens the per-user ledger, records the acknowledgement unless a current one covers it, and only then writes the settings. A ledger failure stops there with exit 3 and writes nothing else.
…e interview The list can sit in the global file as well as the project file, so its refusal names the interview and config.toml instead of baley.toml alone.
…records no acknowledgement Install renders no sandbox.network and its record keeps defaults empty, so the check holds today and stands guard for the later builds that add a network input.
…stall writes no acknowledgement A yes to the first warning must not cover the second, and an install record must leave the providers stream empty. Both were green under a wrong implementation.
Each provider's API host is compiled on the catalog, and the decision only ever adds hosts, so the owner's other settings and hosts stay as they were.
…place A settings file changed since it was read is refused, so a concurrent install is caught without taking its lock or touching its record.
…ner's choice The host reviewer stays as the file has it and only the outside providers are replaced, so a deselection never turns the host reviewer on or off.
The global file is judged, bound to the digest the owner was shown, refused through a link and rendered from its own bytes, so no other setting is lost, and the digest of what was written goes back for the settings step to bind to.
A rerun with the same answers plans no acknowledgement, no host and no list, and a settings file that cannot take the hosts refuses before anything is shown or written.
…summary The ledger's five files, each settings file and its temporary file, and the folders that may be created are named at their resolved paths, and only for the steps that will run.
… done The failing step's own lines lead with its code, then the writes already completed and the steps never started, so a rerun can finish only what is missing.
The interview now plans before it asks, so a settings file that cannot take the hosts refuses while nothing is written, and each step runs only when it has something to change. The settings step binds to the digest the reviewer step returns, so the list survives it.
…ordered writes as built Section 5 now says what the code does after the thirteen questions, the four writes after the final yes, the failure report and the new refusal. Section 6 gives the acknowledgement's fields and how it is recorded.
…tations to the code review.reviewers, the acknowledgement and the host and reviewer writes are built, so CFG-R26 and CFG-R28 say so and name Build 4's checks as unbuilt. Every file:line citation into code this phase moved points at the lines that hold what it cites.
…d acknowledgement are built The warning sentence now matches design 0003 word for word. REV-R3 and REV-R20 name what is built with its code and leave admission and the raw-response boundary to Build 4.
…as built The setup paragraph and Figure 7 show the warning, the typed yes and the four ordered writes. The host step takes no install lock and records no install.recorded, so the record's settings digest predates the file and T17's doctor must not read that as drift.
… holds the acknowledgement The view set stays at 8, but the store refuses a transaction on a project holding an event type the binary cannot read, so the old claim that an older binary keeps writing user was wrong.
…ice and acknowledgement are built The README's warning is now design 0003's paragraph word for word, and its interview paragraph lists the four writes in order. Design 0001's providers row, interview row and policy-step paragraph match design 0003 section 5.
…he C4 model Two relations changed: the command line now adds API hosts to Claude Code's settings file and writes the global settings file whole for the reviewer list. The exported blocks and their captions follow the model.
The status sentence, Figure 4 and the Build 3 table follow #253, and a T16 bullet says what the interview provides and what it hands to Build 4 and T17.
…overy The binary still reads keys and nothing checks the acknowledgement before a review or fetch yet. A rerun does not redo the ledger policy step after a written reviewer list (#255).
…ame file With no file flag, the interview's default target moves to the project file once the global file holds a role value, so a rerun inside a project writes its settings answers to baley.toml. Design 0003, design 0012 and the README claimed every rerun changes no file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Build 3 T16.
baley config interviewnow asks which outside review providers to use (openai,deepseek, both, ornone) after its thirteen settings questions, and a blank answer keeps the stored choice. For each provider named it shows the provider warning from design 0003 section 5 and needs a typedyes; any other answer, a blank or ended input declines the whole interview and writes nothing. It reads the owner's name from gituser.nameand refusesowner-identity-missingbefore the summary when git has none. The summary names every file the confirmed writes can change or create, at resolved paths. After the finalyesthe writes run in order:providers.acknowledgedin the per-user ledger (a new event type on streamprovidersinuser, no view, so the view set stays at 8), the providers' API hosts added tosandbox.network.allowedDomainsin Claude Code's settings through install's digest-checked replace, the globalreview.reviewerslist, then the settings through the apply functionconfig setuses. A step with nothing to change is skipped, so a current acknowledgement is reused rather than recorded again. A failure stops at its step and reports its code, the writes already done and the ones not started.review.reviewersjoins the settings schema, default["host"], scope both, andconfig setrefuses it aslist-not-settableand points to the interview. Install keeps every host already inallowedDomainsand records no acknowledgement. Nothing checks the acknowledgement before a review or fetch yet, that is Build 4 (#25), and the README and design 0003 say so.Verified: the workspace suite (3615 of 3615), clippy with
-D warnings,cargo fmt --checkandcargo denypass. Each of the twelve acceptance criteria has a check that ran red before its behaviour and green after, and all 38 listed developer tests pass when run by name. A rerun with the same answers against the same settings file was run with the built binary in a throwaway home folder and left every file byte for byte unchanged. Designs 0001, 0002, 0003, 0008 and 0012, the C4 model, the README and the roadmap's T16 row are updated.Known limits: a rerun with neither
--globalnor--projectinside a project writes the settings answers tobaley.tomlonceconfig.tomlholds a role value, as the interview's default target rule says; the docs now name that case. A rerun does not redo a ledger policy step that failed after the reviewer list was written (#255). Installed qualification against a live Claude Code is T17's.