- Implement gstack-memorable enable command to register the Memorable CLI hook
- Implement gstack-memorable disable command to unregister the Memorable CLI hook with consent and registration verification
- Implement gstack-memorable status command to show vendor CLI, gate, registration owner, receipt counts and recent errors
- Create memorable_recall consent key tracked by gstack-egress grants with revoke capability
- Write egress receipts before every prompt handed to the Memorable vendor binary, fail-closed if receipt cannot be written
- Refuse to hand over prompts carrying live-shaped credentials to the vendor
- Skip repositories with trust policy set to deny or read-only
- Run vendor binary in allowlisted environment within gstack process group with 4.5 second execution budget
- Wrap vendor responses in trust envelope
- Add gstack-settings-hook list-items command with event, owned-by, and command-regex filters for read-only identity view
- Add runExternal function to hosts/claude/hooks/spawn-bin.ts for contained third-party executable execution
- Add memorable_recall config key with on/off values, default off
- Add memorable-recall row to gstack-egress grants table
- Improve redaction scan performance for 256 KiB log-like prompts from 1,573 ms to 65 ms
- Improve redaction scan performance for 512 KiB log-like prompts from 6,182 ms to 126 ms
- Windows support for Memorable bridge due to lack of process group containment
From gstack
Memorable (memorable.sh) is a third-party CLI that remembers how you did a task and recalls it the next time you ask for something similar. This release lets you register that hook through gstack instead, with gstack-memorable enable, and nothing changes until you run it.
When you do, gstack records its own consent key (memorable_recall, listed by gstack-egress grants with its revoke command), writes an egress receipt before every prompt it hands to the vendor binary and skips the hand-off if the receipt cannot be written, refuses to hand over a prompt carrying a live-shaped credential, skips repositories whose trust policy is deny or read-only, runs the binary in an allowlisted environment inside its own process group under a 4.5 second budget, and wraps whatever comes back in the trust envelope.
gstack-memorable status shows the vendor CLI, the gate, who registered the hook, receipt counts and recent errors. disable turns it off and verifies both the consent and the registration before it says so.
Claude Code only; Windows is refused for now because there are no process groups to contain the vendor.
Redaction scan, 256 KiB log-like prompt: 1,573 ms to 65 ms.
Redaction scan, 512 KiB log-like prompt: 6,182 ms to 126 ms.
Hook cost per prompt with the bridge disabled: no hook to 49 ms.
gstack work per prompt before the vendor runs: no hook to ~25 ms.
Tests in the free suite covering this bridge and the hook manager: 0 to 128.
bin/gstack-memorable enable | disable | status, the Memorable recall bridge (Claude Code only, off by default).
hosts/claude/hooks/memorable-user-prompt-hook (bash shim plus memorable-user-prompt-hook.ts), the UserPromptSubmit hook the bridge registers.
memorable_recall config key (on | off, default off) and a memorable-recall row in gstack-egress grants.
Egress receipts for the memorable-recall sink, fail-closed: no receipt, no hand-off. gstack-settings-hook list-items --event [--owned-by ] [--command-regex ], a read-only identity view. runExternalinhosts/claude/hooks/spawn-bin.ts`, the contained way for a hook to run a third-party executable.