Skip to content

Port upstream pstack 0.15.32 - #37

Merged
caelaxie merged 1 commit into
mainfrom
cursor/port-pstack-0.15.32-3c24
Oct 24, 2026
Merged

caelaxie merged 1 commit into
mainfrom
cursor/port-pstack-0.15.32-3c24

Conversation

@caelaxie

@caelaxie caelaxie commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

summary

ports upstream cursor/plugins pstack after 4ec7ffa (0.15.30) through e73df47 (0.15.32). cursor-team-kit stays 1.2.0 at 88d4751. git log 4ec7ffa..e73df47 -- pstack/ cursor-team-kit/ is the thirteen commits below. nothing under cursor-team-kit/ changed.

ported

  • #791 076f4b2f57 statechart skill update with the Pele renderer
  • #792 642289e6b1 bump to 0.15.31
  • #794 00d5decc6f generated verify skills read model-check results with /statechart
  • #797 3c0fdb4e76 add the ketchup-video skill
  • #798 b1a129891c bump to 0.15.32
  • #800 7054003c37 route reflect edits out of the plugin cache
  • #801 96dec8ee58 watch-pr: distinguish fork heads during stack discovery
  • #802 fe096ef31c watch-pr: cap polling sleeps at the deadline
  • #803 86c2448db1 recognize matching inline code delimiters
  • #804 3c596e701b orch: prefer active PR over branch history
  • #805 f83fbe695e worktree-audit: GNU stat and date for transcript mtimes
  • #807 e73df471cd swarm Phase A renumber + dangling table ref

skills/statechart/, skills/ketchup-video/, skills/create-formal-verification-skill/SKILL.md, and the watch-pr and orch script changes match e73df47 byte for byte. the readme row, the guide paragraph, and the poteto-help row for ketchup-video are the upstream text.

antigravity-only adaptations

  • version 0.15.32 in plugin.json and .antigravity-plugin/plugin.json. upstream bumps pstack/plugin.json and pstack/.cursor-plugin/plugin.json. this port has no .cursor-plugin manifest. the agy manifest keeps its existing shape (logo, suggestedPrompts). root plugin.json keeps the pstack-ports homepage and repository.
  • readme pin is 0.15.32 at e73df47. cursor-team-kit links stay at 88d4751 (1.2.0).
  • reflect's new cache rule uses this port's paths: do not edit ~/.gemini/config/plugins/; copy to .agents/skills/<skill>/ or ~/.gemini/config/skills/<skill>/. upstream says plugins/cache/, .cursor/skills/<skill>/, and ~/.cursor/skills/<skill>/.
  • swarm's renumber (4/5 to 3/4, "step 4" to "step 3", "the table" to "a result table") is applied on the existing agy wording (Model tiers, invoke_subagent, Workspace).
  • worktree-audit's GNU stat/date switch is applied on the existing agy transcript dirs (~/.gemini/antigravity*/brain). upstream still reads ~/.cursor/projects/.../agent-transcripts.
  • check-plan's delimiter regex and tests are the upstream change. the existing agy program-checklist markers (/schedule, ~/.gemini/config/plugins/pstack/) stay.

skipped

  • #806 a0b0ad99fc docs only. it adds one paragraph to the Claude Code install section of pstack/README.md (third-party marketplace auto-update, /plugin, claude plugin update) and the same paragraph in harness/pstack/claude-code/README.md. this port's readme is the antigravity install doc and does not ship that section.
  • every commit above also writes harness/pstack/claude-code/ copies (statechart tree, ketchup-video, reflect, swarm, watch-pr, orch, check-plan, worktree-audit, plugin.json, readme, guide, poteto-help, create-formal-verification-skill). this repo does not ship the Claude Code harness tree.
  • upstream .github/workflows/validate-plugins.yml step that checks generated pstack harness trees. this repo's CI does not have that step, and there is no agy equivalent of the generated copy.
  • cursor-team-kit is unchanged, so deslop, control-cli, and control-ui stay at 88d4751.

limits

  • ketchup-video is ported verbatim. it has no scripts and no tests. it tells the agent to render a silent mp4 of slides and embed it. agy's subagent allowlist has generate_image and no video tool, so a live turn may not be able to render the file. the skill text is unchanged.
  • statechart installs TLC with mise when TLA2TOOLS is unset, and installs Pele plus @resvg/resvg-js on first PNG render. those are upstream behavior.

harness proof

agy 1.4.6, installed from the antigravity cli installer. commands ran against this branch with a clean HOME.

$ agy --version
1.4.6

$ agy plugin validate .
Validating pstack (.antigravity-plugin/plugin.json)

  ⚠ plugin.json: ignored: .antigravity-plugin/plugin.json takes precedence

  skills 61 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

✔ Validation passed with 1 warning

$ agy plugin install https://github.com/pstack-ports/agy-pstack/tree/cursor/port-pstack-0.15.32-3c24
Cloning plugin from https://github.com/pstack-ports/agy-pstack.git...
  [ok]    pstack
          ✔ skills      : 61 processed
          ✔ agents      : 2 processed
          - commands    : skipped (not found)
          - mcpServers  : skipped (not found)
          - hooks       : skipped (not found)

$ agy plugin validate "$AGY_HOME/.gemini/config/plugins/pstack"
✔ Validation passed with 1 warning
  skills 61 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

$ agy plugin list
Installed plugins:
- pstack (enabled, 0.15.32)
    Source:     antigravity
    Components: 61 skills, 2 agents

$ git -C "$AGY_HOME/.gemini/config/plugins/pstack" log -1 --oneline
faa84be Port upstream pstack 0.15.32

agy plugin list --json lists ketchup-video and statechart. installed version is 0.15.32. the installed skills/ketchup-video/SKILL.md and skills/statechart/SKILL.md match this branch.

the installed script ran from-chart on the bundled fixtures (TLC 2.19, TLA+ v1.7.4, tla2tools.jar, Java 21). upload.mmd exits 0 and draws the chart back unchanged:

$ node statechart.mjs from-chart upload.mmd
Wrote Upload.tla, Upload.cfg, and Upload.map.mjs from upload.mmd.
TLC on Upload.tla with Upload.cfg:
  TypeOK holds.
  TLC ran 2 times in 1.7 s.

Chart: 5 states and 8 transitions from 5 model states.
5 work, 0 break a rule.

No state breaks an INVARIANT rule.

The spec draws upload.mmd back unchanged.

Wrote chart.mmd, stories.md, summary.json in Upload-statechart.

sync.mmd exits 1, the skill's code for a broken rule, and draws bug 1:

NeverSyncedWhileOffline is broken.
Chart: 4 states and 8 transitions from 4 model states.
3 work, 1 breaks a rule.

## 1. Offline | Synced

Rule broken: You never see "Synced" while you are offline.
0. Start: Online | Synced
1. The network drops. Now: Offline | Waiting to sync
2. The server confirms. Now: Offline | Synced
$ agy --print="/statechart what the user sees when they upload a file"
$ agy --print="/ketchup-video"
Authentication required. Please visit the URL to log in:
...
error: authentication failed or timed out

both print turns stop at google oauth. this environment is not signed in. the turns never run. ketchup-video ships no script to run in their place.

$ node --test skills/statechart/scripts/test/statechart.test.mjs
# with TLA2TOOLS (TLC 2.19, TLA+ v1.7.4): 147 pass, 3 skipped, 0 fail
# skips: one mise-only test (TLA2TOOLS is set), two font tests (no Type 1 face on this machine)
# Pele 1.8.0 and @resvg/resvg-js 2.6.2 installed on first PNG render

$ bun run typecheck   # skills/poteto-mode/scripts, bun 1.4.4
tsc --project watch-pr/tsconfig.json --noEmit --strict
(exit 0)

$ GIT_CONFIG commit.gpgsign=false bun run test
83 pass
0 fail
283 expect() calls
Ran 83 tests across 5 files.

$ bash -n skills/poteto-mode/scripts/worktree-audit.sh
(exit 0)

worktree-audit on a temp repo with a transcript under ~/.gemini/antigravity-cli/brain, mtime 2024-06-15, printed LAST_CHAT 2024-06-15 via GNU stat -c and date -d.

the ci workflow on this pr passed: run 40050612447. agy 1.4.6, Validated 61 skills, 2 agents, and 23 playbooks., bun 83 pass / 0 fail, statechart node --test 58 pass / 92 skipped (no TLC on the runner) / 0 fail.

Open in Web Open in Cursor 

Bring pstack from the 4ec7ffa pin (0.15.30) through e73df47.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes requested (posted as a comment since the pr author and reviewer share an account).

blocker: no agy harness proof yet. the body's ## harness proof section still says "running", and Validate plugin is in progress on faa84be.

to clear it:

  • replace that section (or add a comment) with real output from agy plugin install + agy plugin list on head faa84be, showing pstack at 0.15.32 and the new ketchup-video skill plus the changed statechart tree loaded.
  • Validate plugin green on the same head.

scope note from the body looks right on paper (verbatim upstream for statechart, ketchup-video, create-formal-verification-skill, watch-pr, orch; agy path swaps only in reflect, swarm, worktree-audit, check-plan markers; #806 and the claude-code harness tree skipped). i'll do the full diff against upstream e73df471 once proof lands. no issue linkage needed for an upstream sync.

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pass.

  • 33 of 43 upstream files in 4ec7ffa..e73df47 match e73df47 byte for byte: statechart tree (incl. OutputFolder deletions), ketchup-video, create-formal-verification-skill, watch-pr, orch.
  • the other files apply the upstream hunks unchanged except where they need agy wording: reflect cache paths (~/.gemini/config/plugins/, .agents/skills/, ~/.gemini/config/skills/), swarm renumber on top of the agy text, readme pin. guide, poteto-help, check-plan, and worktree-audit hunks match upstream. agy divergences already on main are kept as they were.
  • #806 skipped. the readme has no claude code section.
  • no cursor manifests. skills stay in skills/. 0.15.32 in plugin.json and .antigravity-plugin/plugin.json. cursor-team-kit is untouched at 1.2.0.
  • proof: agy install + list show 0.15.32, and the installed copy is at faa84be. a live turn is blocked by login, which is accepted. ci passed on faa84be. no linked issue. not a draft.

@caelaxie
caelaxie merged commit 3d8a877 into main Oct 24, 2026
1 check passed
@caelaxie
caelaxie deleted the cursor/port-pstack-0.15.32-3c24 branch October 24, 2026 01:50
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.

2 participants