mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-10 06:58:59 +02:00
docs: fold the Codex accuracy review of the release docs
Six findings, all verified against source before fixing: 1. 'Every send writes a receipt' overclaimed — fail-open sinks proceed with a stderr warning when the receipt write fails, so a fail-open send can go unrecorded (lib/egress-receipt.ts:8-14). Descriptive prose now says so; the receipted framing keeps 'attempted'. 2. 'Receipts hash the request body' is wrong for subprocess-owned sends — git pushes record sha256: null (lib/egress-receipt.ts:71). 3. 'grants shows every consent in force' overclaimed — it reports the four standing config settings (bin/gstack-egress:139-181). Reworded in README, ARCHITECTURE, and the CHANGELOG entry. 4. 'Zero-exception scanner' vs reality: the new-sink scanner carries a reasoned SCANNER_EXEMPT list (user-directed fetches, probes, instruction strings, skill prose). CLAUDE.md now names it. 5. Error-catalog cause/fix for the receipt refusal: the writer mkdirs the ledger dir itself, so 'missing' isn't a cause and bare chmod fails when it is absent — cause reworded, fix is mkdir -p && chmod. 6. gbrain-sync first-run steps described the retired binary's behavior: default repo is gstack-artifacts-$USER, and init PRINTS the gbrain hookup command (never auto-executes; bin/gstack-artifacts-init:384-419). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
1ac4683b7b
commit
eb066a4373
@@ -103,12 +103,13 @@ made, and the queue is preserved — the next run retries the whole drain.
|
||||
`gstack-brain-sync --status` shows `EGRESS_RECEIPT_FAILED` as the failure
|
||||
detail.
|
||||
|
||||
**Cause.** `~/.gstack/security/` is missing or unwritable, the disk is
|
||||
full, or `GSTACK_HOME` points at a read-only location.
|
||||
**Cause.** `~/.gstack/security/` is not writable (the receipt writer creates
|
||||
it when missing, so absence alone is not the cause), the disk is full, or
|
||||
`GSTACK_HOME` points at a read-only location.
|
||||
|
||||
**Fix.**
|
||||
```bash
|
||||
chmod -R u+w ~/.gstack/security
|
||||
mkdir -p ~/.gstack/security && chmod -R u+w ~/.gstack/security
|
||||
```
|
||||
Then run any skill (or `gstack-brain-sync --once`) to retry. Inspect the
|
||||
ledger with `gstack-egress list`; verify its hash chain with
|
||||
|
||||
+8
-8
@@ -38,18 +38,18 @@ The command:
|
||||
|
||||
1. Turns `~/.gstack/` into a git repo.
|
||||
2. Asks for a remote URL (default: `gh repo create --private
|
||||
gstack-brain-$USER`). Any git remote works — GitHub, GitLab, Gitea,
|
||||
gstack-artifacts-$USER`). Any git remote works — GitHub, GitLab, Gitea,
|
||||
self-hosted.
|
||||
3. Pushes an initial commit with just the config.
|
||||
4. Writes `~/.gstack-artifacts-remote.txt` (URL-only, no secrets —
|
||||
safe to copy to another machine).
|
||||
5. Wires the gstack-brain repo into your local gbrain as a federated
|
||||
source (via `gbrain sources add` + `git worktree`) so `gbrain search`
|
||||
can index your synced learnings, plans, and designs. Implementation
|
||||
lives in `bin/gstack-gbrain-source-wireup`. The old
|
||||
`gstack-brain-reader add --ingest-url ...` HTTP path was removed in
|
||||
v1.15.1.0 — it depended on a `/ingest-repo` endpoint gbrain never
|
||||
shipped.
|
||||
5. Prints the `gbrain sources add` hookup command for the brain host
|
||||
(never auto-executed — run it yourself, or on your own machine
|
||||
`bin/gstack-gbrain-source-wireup` does the same wiring) so
|
||||
`gbrain search` can index your synced learnings, plans, and designs.
|
||||
The old `gstack-brain-reader add --ingest-url ...` HTTP path was
|
||||
removed in v1.15.1.0 — it depended on a `/ingest-repo` endpoint gbrain
|
||||
never shipped.
|
||||
|
||||
After init, the **next skill you run** will ask you ONE question about
|
||||
privacy mode:
|
||||
|
||||
Reference in New Issue
Block a user