You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Proposal: stateless, instruction-only host mode for hosted/multi-tenant runtimes #3061
Proposal: a stateless, instruction-only host mode for agent runtimes that serve gstack skills to many users. In those runtimes there is no gstack install, no ~/.gstack state root, and no local helper binaries. Each user's data has to stay in the runtime's own tenant-scoped storage.
Today a host config can suppress resolvers (PREAMBLE, learnings, aside, brain cache). But many skill bodies still instruct the agent to read and write $GSTACK_STATE_ROOT/projects/..., call bin/gstack-* helpers, log telemetry, or use the Aside agent. On a hosted runtime with file tools, that would put user documents into untracked home-directory state.
Measurements (v1.91.31.0, rendered with a custom render-only host that suppresses those resolvers)
Fenced steps that still use gstack state, helpers or telemetry, plus prose references:
skill
coupled steps
prose refs
office-hours
24
14
plan-ceo-review
7
9
plan-eng-review
5
6
retro
6
7
spec
7
3
Only investigate stays complete once those steps are removed. To ship office-hours, we maintain a downstream overlay: a reviewed replacement for each affected section, pinned to the upstream section's SHA-256 so drift fails the build. That works, but every overlay is a fork of your text.
Proposal
A host capability, e.g. capabilities.state: 'none'. Under it, resolvers that touch state or helpers render a host-provided hook instead of shell steps.
A few named hooks, so hosts map one concept instead of rewriting prose:
A generator check: a state: 'none' render fails if it still contains ~/.gstack, $GSTACK_, bin/gstack-* or --event-type.
The gbrain resolvers already work this way (GBRAIN_CONTEXT_LOAD / GBRAIN_SAVE_RESULTS are concepts a host can map), so this generalizes an existing pattern.
We're happy to send a PR, starting with office-hours plus the generator check, if this direction works for you.
Thanks @m-check1B for the idea. In the Oct 11 triage we grouped the open feature requests by theme so related asks get built together instead of one at a time. This one is part of the New hosts theme in TODOS.md (https://github.com/garrytan/gstack/blob/50d020ad9/TODOS.md#L54-L69), tracked as a whole in #3137. Closing it here so the open list stays actionable; it isn't rejected, and the theme credits every linked reporter when it's picked up.
Activity
capy-ai commentedon Oct 11, 2026
Thanks @m-check1B for the idea. In the Oct 11 triage we grouped the open feature requests by theme so related asks get built together instead of one at a time. This one is part of the New hosts theme in TODOS.md (https://github.com/garrytan/gstack/blob/50d020ad9/TODOS.md#L54-L69), tracked as a whole in #3137. Closing it here so the open list stays actionable; it isn't rejected, and the theme credits every linked reporter when it's picked up.
capy-ai commentedon Oct 25, 2026
Reopened under the
parkedlabel: this is tracked in the New hosts theme in TODOS.md and tracking issue #3137 (https://github.com/garrytan/gstack/blob/main/TODOS.md#p3-feature-themes-from-the-wave-9-triage-filed-2026-10-11), and what fixes it is the stateless, instruction-only host mode (requirements recorded under "parked in Wave 9" in TODOS.md). Closed-but-tracked read as closed, so parked issues now stay open until they ship, are duplicates, or are declined (https://github.com/garrytan/gstack/blob/main/docs/triage.md).docs(triage): already-fixed reports close as fixed, duplicates use Gi…
v1.91.235.0 docs(triage): parked issues stay open under the `parked` …