Repository navigation
sync: Cursor pstack 0.15.36 as Open Pstack 1.17.0 (#262) - #264
Conversation
Statechart takes upstream's final compiler, launcher, Pele renderer instructions and test corpus (eb4db2b through 519d36a). Ketchup-video comes from 3c0fdb4. Both stay typed-only. poteto-help gets both rows, and create-formal-verification-skill tells the next agent to read and follow the typed-only statechart skill (00d5dec). Root test and typecheck now run statechart's suite. Statechart gets a lockfile, pinned typescript and @types/node, and fixes for three type errors and one macOS tmpdir symlink failure in upstream's code. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
watch-pr skips fork heads during stack discovery (96dec8e) and caps a poll sleep at an explicitly set deadline (fe096ef); it adds no implicit timeout. check-plan's punctuation scan strips matching multi-backtick code spans (86c2448), with upstream's tests rewritten for the port's exported checkPlan. worktree-audit picks GNU or BSD stat and date flags (f83fbe6) and keeps the port's transcript location. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ates Interrogate takes upstream's run-based adversaries (ab1f702). Each adversary routes with isolated-write in its own worktree, which the parent prepares at the reviewed HEAD with the scope's uncommitted changes. A provider without isolated-write is a named dropout, and no completed adversary means incomplete coverage. The four reference files go. Interrogate stays model-invocable. Arena's judge is never from the parent's provider; a judge entry that does not run is a dropout, with no substitute slug or default pool. Reflect copies a skill out of the plugin cache into the harness's skill folder, mapped in codex-tools.md (7054003). Setup counts interrogate reviewers as writers. Poteto-mode takes goal restatement, explain the number before measuring and background steers, without the fallback chain. Swarm's Phase A is numbered 1 to 4 (e73df47), and Explain the Number writes the decision first. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Orchestrate takes upstream's agentic playbook (c742dd6) and scripts/orch is deleted. Workers go through provider dispatch in dedicated local worktrees, state lives in a notes file under the config home, and PR waits use watch-pr. A worker is replaced only on affirmative failure evidence, and a tool error is a named dropout, never a retry on another model. Autopilot-stack becomes "Autopilot-full without the merge" (ab1f702). Autopilot-full step 2 keeps the guarded rebase and push and takes the stacked-owner, fork and split-remote rules from the old stack playbook, so the landing invariants move with them; the stack's merge-frontier check becomes a no-merge check. Autopilot-full, multi-phase-plan, babysit and autonomous-run take the evidence-based blocking rule, the same-files rebase trigger, push-each-unit and the goal scope. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The verifier registers statechart and ketchup-video, maps statechart's scripts to shipped tools, drops the orch tools row and maps the deleted orch paths so the live gate can classify them. UPSTREAM.md moves the sync point to 2776ddd (pstack 0.15.36), adds the new exclusions and ledger lines, and NOTICE.md gets the provenance row. CHANGES.md describes 1.17.0, README-UPSTREAM.md takes upstream's README, README.md says how to turn on auto-update for open-pstack, and docs/reference.md drops orch. Every version string is 1.17.0. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The generic skill case gives interrogate no scope to review. The fixture's last commit breaks sum(), and the check requires that the scope checkout stays unmodified, since interrogate reports and adversaries work in their own worktrees. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge Protections🟢 All 2 merge protections satisfied — ready to merge. Show 2 satisfied protections🟢 Queue ready pull requestsAutomatically queue non-draft pull requests targeting main after verify and live-gate pass on the head and every review thread is resolved.
🟢 🚦 Auto-queueWhen all merge protections are satisfied and these conditions match, this pull request will be queued automatically.
|
bun run static runs scripts/release_test.py, which writes scripts/__pycache__/. A broad git add picked it up, and the live gate refuses it as an unmapped path. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
incomplete review: no reviewer completedprimary native-openai/openai/gpt-5.6-sol streamfallback native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowprimary native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowfallback native-anthropic/anthropic/claude-opus-5-5 oauthprimary native-openai/openai/gpt-6.1-sol streamfallback native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowprimary native-openai/openai/gpt-6.1-sol streamlargest inputs: plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/sany.out (526320 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out (222451 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out (215348 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out (212750 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out (181104 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/sany.out (179510 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out (173792 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/sany.out (150638 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/sany.out (135251 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/sany.out (131632 bytes)
🛑 10 blocking findings🔴 Critical · Avoid expanding all simultaneous arrow combinations 🔴 Critical · Avoid materializing every regional start combination 🔴 Critical · Large interval values exhaust the worker heap 🔴 Critical · TLC output descriptors leak across rule reruns 🔴 Critical · Native Windows crashes when starting the janitor 🟡 Medium · ChartRun input produces an empty successful chart 🟡 Medium · Preserve digit-prefixed model-value identifiers 🟡 Medium · Orchestrate verifier rule cannot be met on native-only sheets 🟡 Medium · Allow legitimate string values in default labels 🟡 Medium · ChartBound helper shadows a valid input module WalkthroughThis PR syncs Open Pstack to upstream Cursor pstack
Advisories (3)
Since the last review
Repair promptRead the
Details
First review of this pull request. @unfret review · @unfret status · @unfret help |
|
@unfret review |
|
[High impact] The update changes shared guidance and tools used across several Open Pstack workflows. The PR still needs the existing Orchestrate fix before merging because Claude Code sub-coordinators cannot start their assigned workers. Findings
SummarySyncs Open Pstack to Cursor pstack 0.15.36 as version 1.17.0.
Reviews (2) · Last reviewed commit: "sync: leave statechart's upstream test c..." · Reviewed by Greptile |
There was a problem hiding this comment.
incomplete review: no reviewer completedprimary native-openai/openai/gpt-5.6-sol streamfallback native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowprimary native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowfallback native-anthropic/anthropic/claude-opus-5-5 oauthprimary native-openai/openai/gpt-6.1-sol streamfallback native-anthropic/anthropic/claude-opus-5-5 provider 400 context_overflowprimary native-openai/openai/gpt-6.1-sol streamlargest inputs: plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/sany.out (526320 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out (222451 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out (215348 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out (212750 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out (181104 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/sany.out (179510 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out (173792 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/sany.out (150638 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/sany.out (135251 bytes), plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/sany.out (131632 bytes)
Live evidence: Open Pstack
|
statechart/scripts/test/ is 2.9 MB of upstream test data and TLC output. With it, the review service's reviewers overflow their context on this PR twice, so the head never gets a review. Upstream's CI runs that suite. The root typecheck still checks statechart's scripts. Refs #262 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🛑 10 blocking findings
🔴 Critical · Avoid expanding all simultaneous arrow combinations
🔴 Critical · Avoid materializing every regional start combination
🔴 Critical · Large interval values exhaust the worker heap
🔴 Critical · TLC output descriptors leak across rule reruns
🔴 Critical · Native Windows crashes when starting the janitor
🟡 Medium · ChartRun input produces an empty successful chart
🟡 Medium · Preserve digit-prefixed model-value identifiers
🟡 Medium · Orchestrate verifier rule cannot be met on native-only sheets
🟡 Medium · Allow legitimate string values in default labels
🟡 Medium · ChartBound helper shadows a valid input module
Check
Live evidence: Open Pstack
|
✅ Merged into
|
Why
Upstream Cursor pstack moved from 0.15.29 to 0.15.36. This brings Open Pstack level with it as 1.17.0, keeping our Claude Code and Codex adaptations. Closes #262.
Summary
Interrogate in the port:
Excluded from upstream, with reasons in
UPSTREAM.md: the fallback chain on a rejected model slug, and refilling a rejected arena seat with the parent model. Both break the named-dropout rule. The per-commit adopt/adapt/exclude table is on #262 and in the batch design record.Evidence
scripts/upstream-audit.pythenscripts/upstream-merge.pyagainstcursor/main2776ddd): 415 verbatim, 6 clean, 15 resolved by hand, 6 removed, 6 unmapped (Cursor manifests and guide, already excluded).mainhas nostatechartskill and runsorchtests. After:bun run testruns poteto-mode, 498 pass, 0 fail;bun run typecheckchecks statechart's scripts. Statechart's upstream test corpus (scripts/test/, 2.9 MB) is not imported: with it, Unfret's reviewers overflowed their context twice on this PR (9051c97). Before that cut, statechart's suite passed here: 267 pass, 67 skipped for lack ofTLA2TOOLS, 0 fail.check-planinline-code fix: newcheck-plan inline codetests pass.9051c97: passed (evidence comment on this PR). It needs a new run on the current head. Features, in Claude Code and Codex:skill-invocation:interrogate(new seeded-defect recipe: the fixture's last commit breakssum(); the check requires the scope checkout to stay unmodified),skill-invocation:reflect,skill-invocation:poteto-mode, andproject-skillwith--self-test(this PR changes verifier files).Merge Danger
Door: two-way
Revert restores 1.16.0 content. No data or config migration.
Blast Radius: every-skill
Shared files (
codex-tools.md) reach all skills. Interrogate behaves differently: it now needs writer-capable providers, and devin, opencode, dsh, amp, agy and cursor drop out of it until #263 lands. Orchestrate users lose theorchCLI.Acceptance criteria
design-262.mdand applied as listed in the build report;UPSTREAM.mdrecords the new exclusions.isolated-writelanes… named dropout" — done ininterrogate/SKILL.md; live:skill-invocation:interrogate(pending).scripts/orch/is deleted… with its row infeatures/registry.json" — done; deleted orch paths map tononRuntime, andplaybooks/orchestrate.mdselects poteto-mode.statechartandketchup-videoare added and registered" — done; both infeatures/registry.jsonskills, statechart scripts undertools.reflectnever edits a skill under the plugin cache…" — done; destinations incodex-tools.md#reflect-skill-copies. Live:skill-invocation:reflectcovers reflect's transcript path, not the copy (see Not verified).UPSTREAM.md.tests/skill-collision-repro.shmoves the fork and topology checks to Autopilot-full and adds no-merge checks.Gate results
On
a718159:bun run testbun run typecheckbun run staticclaude plugin validate plugins/pstackno-commentspass on the owned code in the diff: 0 comments added, no edits.Not verified
Statechart's test suite does not run in this repository; upstream's CI runs it.
Reflect's cache-to-local copy, live. The reflect recipe forbids edits.
Statechart's first run (mise installs Java and TLC; needs network). No headless case exists for it.
The README's Claude Code auto-update steps (
/plugin→ Marketplaces → Enable auto-update).claude plugin updateexists in Claude Code's CLI help.Codex user skill folder
$HOME/.agents/skills/: taken from this machine's layout, not from Codex documentation.Port patches to upstream files
Statechart's code fails strict typecheck as shipped upstream:
exitClassgets a0 | 1 | 2return type. Itsscripts/test/folder is left out. Both are inUPSTREAM.md's ledger.🤖 Generated with Claude Code