Skip to content

fix(server): agents find T3's pstack, and pstack is on by default - #117

Open
ScriptedAlchemy wants to merge 5 commits into
mainfrom
fix/pstack-plain-mention-locator
Open

ScriptedAlchemy wants to merge 5 commits into
mainfrom
fix/pstack-plain-mention-locator

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

T3 turns off native Codex and Claude pstack plugins in the sessions it starts, since its own pack replaces them. But that pack only reached the agent through an explicit $pstack:<skill>. In a real thread, "use pstack principles" left a Codex agent with no copy. It asked the user where pstack was, then read a stale Cursor plugin cache. pstack was also off unless turned on in Labs.

  • A user-authored message that names pstack without invoking a skill now gets a short <t3_pstack> locator. The locator gives the pack path, says skills live at <pstack>/skills/<name>/SKILL.md, and says running a workflow with T3's model roles needs $pstack:<skill>. Nothing runs and no roles are resolved, since pstack skills are invocation-only by design. Turn start and steering now share one referencesPstack predicate. Before this, steering never expanded a plain mention. Agent-authored messages, notifications, and the pstack-off setting are unchanged.
  • pstackEnabled now defaults to true. Turning it off in Settings → Labs → Zack is saved and wins. Settings files never stored the old default, so an opt-out saved before this change reads as on again; that is intended, since pstack should be on for everyone, and turning it off again sticks.
  • A /goal that names pstack gets no locator, since Codex stores a goal's text as its objective.

Tests: extended the PstackPack expansion case (it fails on main) and the steering plain-name row. The ws config-stream toggle test now starts from the new default. Every test that references pstack or the settings defaults passes (server, contracts, shared, client-runtime, web, mobile), as does vp run check:changed.

🤖 Generated with Claude Code

T3 turns off native pstack plugins in the sessions it starts, but its own
pack only reached the agent through an explicit $pstack:<skill>. A plain
"use pstack principles" left the agent with no copy, so it asked where
pstack was and read a stale Cursor cache instead.

A user message that names pstack without invoking a skill now gets a short
locator naming T3's pack. Turn start and steering share one predicate, so a
mention mid-turn is covered too. No workflow or role resolution runs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@changeset-bot

changeset-bot Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a1102c5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

T3 ships pstack built in, so new environments and settings that never chose
now get it. An explicit off in Settings → Labs → Zack still wins.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@ScriptedAlchemy ScriptedAlchemy changed the title fix(server): agents find T3's pstack when a message names it fix(server): agents find T3's pstack, and pstack is on by default Nov 13, 2026
Codex stores a goal's text as its objective, so the pstack locator became
part of the goal and could push it past Codex's length limit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant