mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-09 14:38:59 +02:00
docs: update project documentation for v1.78.0.0
README.md: the persistent timeline Stop hook opt-out (#2677) — flag, env var, and config key with resolution order. BROWSER.md: browse stop against a dead daemon now reaps the recorded headless Chromium child, identity-verified (#2709). CLAUDE.md + CONTRIBUTING.md: free-suite test count ~7,000 → ~8,700 (8,660 as of this wave). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
3df8e98ca4
commit
bd4a7216e0
+4
-1
@@ -193,7 +193,10 @@ for the full design + decision trail.
|
||||
Only an explicit `--force-restart` replaces a live-but-unresponsive
|
||||
daemon (tabs, cookies, and logins are lost). `browse stop` against a
|
||||
daemon that already died is success: the desired end state holds, so it
|
||||
cleans the stale state file instead of booting a daemon just to stop it.
|
||||
cleans the stale state file instead of booting a daemon just to stop it —
|
||||
and reaps the headless Chromium child recorded in that state file if one
|
||||
survived. The reap verifies the recorded start time AND a Chromium-looking
|
||||
cmdline before sending any signal, so a recycled PID is never killed.
|
||||
|
||||
### Multi-workspace isolation
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ in sync.
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
bun run test # run before every commit — free, ~90-100s for the full ~7,000-test suite
|
||||
bun run test # run before every commit — free, ~90-100s for the full ~8,700-test suite
|
||||
bun run test:evals # run before shipping — paid, diff-based (~$4.35/run max)
|
||||
```
|
||||
|
||||
|
||||
+1
-1
@@ -154,7 +154,7 @@ Bun auto-loads `.env` — no extra config. Conductor workspaces inherit `.env` f
|
||||
| 2+3 | `bun run test:evals` | ~$4 combined | E2E + LLM-as-judge (runs both) |
|
||||
|
||||
```bash
|
||||
bun run test # Tier 1 only (run before every commit, ~90-100s for the full ~7,000-test suite)
|
||||
bun run test # Tier 1 only (run before every commit, ~90-100s for the full ~8,700-test suite)
|
||||
bun run test:e2e # Tier 2: E2E only (needs EVALS=1, can't run inside Claude Code)
|
||||
bun run test:evals # Tier 2 + 3 combined (~$4.35/run)
|
||||
```
|
||||
|
||||
@@ -275,9 +275,13 @@ Beyond the slash-command skills, gstack ships standalone CLIs for workflows that
|
||||
`./setup` also registers one default-on Stop hook in `~/.claude/settings.json`:
|
||||
`gstack-timeline-stop` (closes dangling session-timeline entries when a session
|
||||
is interrupted; fail-open — 2s internal budget, always exits 0, can never block
|
||||
a session). Skip it with `./setup --no-team`, remove it with
|
||||
`gstack-settings-hook remove-source --source gstack-timeline-stop`;
|
||||
`gstack-uninstall` removes it too.
|
||||
a session). Opt out persistently with `./setup --no-timeline-stop-hook` — the
|
||||
choice lands in the `timeline_stop_hook` config key, survives upgrades, and an
|
||||
explicit "no" removes a live registration. `GSTACK_TIMELINE_STOP_HOOK=no` and
|
||||
`gstack-config set timeline_stop_hook no` work too (flag > env > config).
|
||||
`./setup --no-team` skips it for that run, `gstack-settings-hook remove-source
|
||||
--source gstack-timeline-stop` removes it by hand, and `gstack-uninstall`
|
||||
removes it too.
|
||||
|
||||
Hook registration is canonical-only: every hook command points at the stable
|
||||
`~/.claude/skills/gstack` install, never the tree setup ran from, so deleting
|
||||
|
||||
Reference in New Issue
Block a user