fabro/docs
Bryan Helmkamp d70bc7a166
docs(install): address second review pass on web-install spec
Five more fixes:

P0 — Reorder wizard: Server config now precedes GitHub. The GitHub
manifest bakes <canonical_url> into redirect_url and callback_urls;
creating the App with a misdetected URL is a real-world side effect we
cannot unmake on github.com.

P0 — `persist_install_outputs` cannot be reused as-is from install
mode. Its vault path goes through `connect_api_client(storage_dir)`,
which calls back into the install-mode server itself (which doesn't
mount /api/v1/*) and would 404. Add an explicit decision: install mode
writes vault secrets directly to disk via Vault::load(...).set(...),
the same pattern persist_github_install_changes already uses. TOML and
env-file helpers remain reusable.

P1 — Bootstrap fork narrowed. Install mode triggers only when no
explicit --config or FABRO_CONFIG was provided AND the default
~/.fabro/settings.toml is absent. A typo in --config must error, not
silently install on top of the wrong target. Matches the asymmetry the
existing config loader already enforces (user.rs:81-112).

P1 — Stop overpromising rollback. The existing helper restores
settings.toml on vault failure but leaves server.env in place (verified
by install.rs:2910). Spec out the actual partial-state semantics for
v1, justify why it's acceptable (env keys are deterministic and
idempotent on retry), and call atomic rollback a deliberate follow-up.

P2 — On-disk layout corrected. Vault path is
<storage_dir>/vaults/default/secrets.json (storage.rs:38), not
<storage_dir>/secrets/.... Added the home-level dev-token file the CLI
also writes (install.rs:1994-1999) so parity is real.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 19:50:44 -04:00
..
administration docs(digital-ocean): replace stub with Droplet + compose guide 2026-04-18 16:20:01 -04:00
agents refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
api-reference feat(cli): surface debug build profile in version output 2026-04-18 09:44:54 -04:00
brainstorms feat(cli): add --prerelease to fabro upgrade 2026-04-16 20:20:14 -04:00
changelog fix(release): build musl targets via cargo-zigbuild to fix arm64 SIGSEGV 2026-04-18 16:01:45 -04:00
core-concepts docs: migrate reference and guide examples to v2 config shape 2026-04-09 11:30:52 -04:00
examples feat(template): unify workflow and config template syntax 2026-04-11 10:58:50 -04:00
execution refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
getting-started ci(release): attest SLSA build provenance for binaries and image 2026-04-18 15:05:32 -04:00
human-tools docs: migrate reference and guide examples to v2 config shape 2026-04-09 11:30:52 -04:00
ideation docs 2026-04-09 17:24:30 -04:00
images Cut over Fabro web app to a server-backed SPA 2026-04-01 21:36:01 -07:00
integrations docs: update changelog and docs for Apr 14–16 changes 2026-04-16 08:01:59 -04:00
languages Add fabro language for syntax highlighting in docs 2026-03-17 09:43:14 -04:00
logo Fix logo SVG viewBox clipping the right edge of the O 2026-03-14 14:11:36 -04:00
plans plans 2026-04-18 12:36:41 -04:00
reference ci(release): attest SLSA build provenance for binaries and image 2026-04-18 15:05:32 -04:00
superpowers/specs docs(install): address second review pass on web-install spec 2026-04-18 19:50:44 -04:00
tutorials Attractor spec hunks 14 & 16: remove error_policy and k_of_n/quorum from parallel handler 2026-03-23 14:59:35 -04:00
workflows refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
.mintignore Fix Mintlify dev server: valid navbar URL and ignore AGENTS.md 2026-03-05 16:29:50 -05:00
docs.json ci(release): attest SLSA build provenance for binaries and image 2026-04-18 15:05:32 -04:00
dot-highlight.js Remove debug markers from dot-highlight script 2026-03-17 10:23:48 -04:00
favicon.svg Rebrand docs site from Arc to Fabro 2026-03-11 21:27:58 -04:00