mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-17 10:25:33 +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
|
Only an explicit `--force-restart` replaces a live-but-unresponsive
|
||||||
daemon (tabs, cookies, and logins are lost). `browse stop` against a
|
daemon (tabs, cookies, and logins are lost). `browse stop` against a
|
||||||
daemon that already died is success: the desired end state holds, so it
|
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
|
### Multi-workspace isolation
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ in sync.
|
|||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
```bash
|
```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)
|
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) |
|
| 2+3 | `bun run test:evals` | ~$4 combined | E2E + LLM-as-judge (runs both) |
|
||||||
|
|
||||||
```bash
|
```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: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)
|
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`:
|
`./setup` also registers one default-on Stop hook in `~/.claude/settings.json`:
|
||||||
`gstack-timeline-stop` (closes dangling session-timeline entries when a session
|
`gstack-timeline-stop` (closes dangling session-timeline entries when a session
|
||||||
is interrupted; fail-open — 2s internal budget, always exits 0, can never block
|
is interrupted; fail-open — 2s internal budget, always exits 0, can never block
|
||||||
a session). Skip it with `./setup --no-team`, remove it with
|
a session). Opt out persistently with `./setup --no-timeline-stop-hook` — the
|
||||||
`gstack-settings-hook remove-source --source gstack-timeline-stop`;
|
choice lands in the `timeline_stop_hook` config key, survives upgrades, and an
|
||||||
`gstack-uninstall` removes it too.
|
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
|
Hook registration is canonical-only: every hook command points at the stable
|
||||||
`~/.claude/skills/gstack` install, never the tree setup ran from, so deleting
|
`~/.claude/skills/gstack` install, never the tree setup ran from, so deleting
|
||||||
|
|||||||
Reference in New Issue
Block a user