mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-06 21:46:40 +02:00
Merge origin/main into garrytan/slim-gstack-skills
VERSION → 1.15.0.0 (MINOR bump on top of main's v1.14.0.0). Branch's v1.13.1.0 work (preamble compression + real-PTY harness + 5 plan-mode tests passing) consolidated with v1.15.0.0 work (6 new E2E tests on the harness + parseNumberedOptions + budget regression utils) into a single release entry — v1.13.1.0 never landed on main, so its content rolls into the final shippable version per the never-orphan rule in CLAUDE.md. Conflicts resolved: - VERSION: 1.13.1.0 (HEAD) + 1.14.0.0 (main) → 1.15.0.0 - package.json: matching 1.15.0.0 - CHANGELOG.md: replaced HEAD's 1.13.1.0 entry with a consolidated 1.15.0.0 entry above main's untouched 1.14.0.0 entry. Itemized changes split per-version (no shared header). CLAUDE.md adds "Scale-aware bumps — use common sense" guidance under CHANGELOG + VERSION style. Big diffs (>2K LOC, new capability) bump MINOR; PATCH is for fixes/small adds; MAJOR for breaking changes. Codified after a v1.14.1.0 PATCH attempt got correctly pushed back on for a ~10K-line additions / -24K-line removals release. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,57 @@
|
||||
# TODOS
|
||||
|
||||
## Sidebar Terminal (cc-pty-import follow-ups)
|
||||
|
||||
### v1.1: PTY session survives sidebar reload
|
||||
|
||||
**What:** Today the Terminal tab's PTY dies with the WebSocket — sidebar
|
||||
reload, side-panel close, even a quick navigate-away in another tab close
|
||||
the session. v1.1 should key the PTY on a tab/session id so a reload
|
||||
reattaches to the existing claude process and you keep `/resume` history.
|
||||
|
||||
**Why:** Mid-task resilience. When you've been pair-programming with claude
|
||||
for 20 minutes and an accidental Cmd-R blows it away, the cost is real.
|
||||
|
||||
**Pros:** Better UX, fewer interrupted sessions. **Cons:** Session-tracking
|
||||
state, ghost-process risk, lifecycle bugs (when DOES the PTY actually go
|
||||
away?). v1 chose the simple "PTY dies with WS" model deliberately.
|
||||
|
||||
**Context:** /plan-eng-review Issue 1C decision (cc-pty-import branch,
|
||||
2026-04-25). v1 ships with phoenix's lifecycle. **Depends on:**
|
||||
cc-pty-import landed.
|
||||
|
||||
**Priority:** P2 (nice-to-have).
|
||||
**Effort:** M. Likely needs a per-tab session map keyed by chrome.tabs.id
|
||||
plus a TTL so abandoned PTYs eventually exit.
|
||||
|
||||
---
|
||||
|
||||
### v1.1+: Audit `/health` token distribution
|
||||
|
||||
**What:** Codex's outside-voice review on cc-pty-import flagged that
|
||||
`/health` already surfaces `AUTH_TOKEN` to any localhost caller in headed
|
||||
mode (`server.ts:1657`). That's a pre-existing soft leak — anything
|
||||
running on localhost gets the root token by hitting `/health`.
|
||||
|
||||
**Why:** cc-pty-import sidesteps it by NOT putting the PTY token there
|
||||
(uses an HttpOnly cookie path instead). But the underlying leak is still
|
||||
shippable surface. A second extension or a localhost web app could
|
||||
currently scrape `AUTH_TOKEN` and hit any browse-server endpoint.
|
||||
|
||||
**Pros:** Closes a real privilege-escalation path on multi-extension
|
||||
machines. **Cons:** Either we tighten the gate (Origin must be OUR
|
||||
extension id, not just any chrome-extension://) or we move bootstrap
|
||||
discovery off `/health` entirely. Either has migration cost for tests
|
||||
and the existing extension.
|
||||
|
||||
**Context:** codex finding #2 on cc-pty-import plan-eng review. Not in
|
||||
scope of that PR; deliberately deferred to keep PTY-import small.
|
||||
|
||||
**Priority:** P2.
|
||||
**Effort:** M.
|
||||
|
||||
---
|
||||
|
||||
## Testing
|
||||
|
||||
## P1: Structural STOP-Ask forcing function across all skills
|
||||
|
||||
Reference in New Issue
Block a user