Skip to content

feat(pstack): support optional Sonnet Astra Luna and Terra families - #55

Open
tlmader wants to merge 2 commits into
ericlitman:mainfrom
tlmader:54-support-sonnet-gpt-56-luna-and-gpt-56-terra-model-families
Open

feat(pstack): support optional Sonnet Astra Luna and Terra families#55
tlmader wants to merge 2 commits into
ericlitman:mainfrom
tlmader:54-support-sonnet-gpt-56-luna-and-gpt-56-terra-model-families

Conversation

@tlmader

@tlmader tlmader commented Sep 5, 2026

Copy link
Copy Markdown

Closes #54

What changed

The model matrix now supports opt-in Sonnet, GPT-6 Astra, GPT-5.6 Luna, and GPT-5.6 Terra families at every selectable effort. The existing Fable, Sol, Grok, and Opus first-run panel stays byte-identical.

Setup derives active families from the final role map. It probes and smokes only that set, rejects mismatches before writing, and keeps unchanged reruns byte-identical. Sonnet uses rolling aliases and five native Claude agent definitions. The existing runner handles all cross-provider routes without fallback.

Astra expands the upstream issue for PAT-3792.

Verification

  • Bun tests, strict typecheck, static invariants, and plugin validation pass.
  • The exact candidate is installed in every affected harness.
  • The changed behavior passes from each real user surface.
  • The installed version, action, and observed result appear below.

Live evidence:

  • Commit ae37a16 passed 160 Bun tests, strict TypeScript checks, manifest parsing, static invariants, and git diff --check.
  • Claude Code 2.1.261 loaded the exact plugin with --plugin-dir. Native pstack-sonnet-high returned PSTACK_NATIVE_SONNET_OK from claude-sonnet-5.
  • Codex CLI 0.153.4 installed the exact local marketplace candidate. pstack:setup-pstack returned PSTACK_CODEX_PLUGIN_OK with all four optional descriptors in matrix order.
  • The external runner returned PSTACK_MODEL_PROBE_OK for Sonnet, Astra, Luna, and Terra. Sonnet verified the provider-reported claude-sonnet-5; all three Codex receipts preserved the requested model and high effort in exact argv.
  • Native Codex probes returned the expected markers for Astra, Luna, and Terra at high effort.
  • Independent Fable and Opus reviews returned PASS after the accepted findings were fixed. The no-comments pass reported no remaining refactor flags.

@mergify

mergify Bot commented Sep 5, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown

Greptile Summary

This PR expands pstack's model registry with opt-in Sonnet, Astra, Luna, and Terra families while retaining the existing first-run panel.

  • Adds five native Sonnet effort profiles and rolling-alias normalization.
  • Generalizes setup around the active families derived from the final role map.
  • Extends runner and matrix coverage for all newly supported model families.
  • Updates package documentation and static panel invariants.
  • One setup edge case remains: removing every active family allows configuration writes that cannot pass the subsequent behavioral smoke.

Confidence Score: 4/5

The PR should not merge until setup rejects an empty active-family set or supports completing its behavioral smoke for an alias-only configuration.

Removing all active families can pass validation and write the model sheet, after which the required smoke has no active descriptor or cross-judge to run.

Files Needing Attention: plugins/pstack/skills/setup-pstack/SKILL.md

Important Files Changed

Filename Overview
plugins/pstack/skills/setup-pstack/SKILL.md Generalizes setup to configurable active-family sets, but does not prevent an empty set that makes post-write smoke impossible.
plugins/pstack/skills/poteto-mode/references/provider-dispatch.md Expands the authoritative model matrix and routing contract while preserving the original first-run panel.
plugins/pstack/skills/poteto-mode/scripts/runner/model-aliases.ts Adds Sonnet to the shared rolling-Claude-alias boundary and concrete revision normalization.
plugins/pstack/skills/poteto-mode/scripts/runner/model-matrix.test.ts Updates matrix parsing and assertions for eight families, explicit first-run membership, and native profiles.
tests/skill-collision-repro.sh Derives the default panel from active matrix rows and broadens checks against pinned Claude revisions.
plugins/pstack/agents/pstack-sonnet-high.md Adds a representative bounded native Sonnet profile; the other four effort variants follow the same contract.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Load and normalize role map] --> B[Derive current active families]
  B --> C[Operator adds or removes families]
  C --> D[Build final role assignments]
  D --> E[Select effort per active family]
  E --> F[Probe active families]
  F --> G[Render and validate family-set equality]
  G --> H[Confirm and write configuration]
  H --> I[Run mixed-panel behavioral smoke]
  C -->|All families removed| Z[Empty active set]
  Z --> F
  Z -->|No descriptor or cross-judge available| I
Loading

Reviews (1): Last reviewed commit: "feat(pstack): support optional Sonnet As..." | Re-trigger Greptile

Comment thread plugins/pstack/skills/setup-pstack/SKILL.md
Review: Empty Active Set Persists

@ericlitman ericlitman left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Gavel verdict: Approve

0 blocking findings; 1 unconfirmed plausible finding; 0 killed by adjudication.

Quorum: 4/3 successful reviewers.
Continuity: 0 open · 0 resolved · 0 reopened.
Scope: initial full review.

Top findings

No blocking findings.

Non-blocking findings

  • MEDIUM plugins/pstack/skills/setup-pstack/SKILL.md:123 RIGHT Batch native smoke lanes within Codex's child limit — On a four-slot Codex parent with Sol, Astra, Luna, and Terra active, this launches four native spawn_agent smoke lanes before draining any, but the parent leaves only three child slots. The fourth launch is rejected after step 9 has already written the configuration, so setup cannot complete for a newly supported target set. Run native smoke lanes in capacity-bounded waves and retain their outputs for the subsequent judge.
  • LOW plugins/pstack/skills/setup-pstack/SKILL.md:46 RIGHT Live evidence does not cover the reviewed head — The reviewed head adds the alias-only/empty-active-set rejection here, but the only commit identified in the recorded verification is ae37a16, while the candidate is 8ef15f8. No installed version or real-surface result demonstrates this new behavior from the current head in either Claude Code or Codex, so the non-draft PR does not satisfy the repository's exact-candidate merge gate. Install 8ef15f8, exercise this rejection from both affected harnesses, and record the installed commit, action, and result.

Gavel run panel:8ef15f8b93bb5123b97c547d9238ecda4e44bb28:kvLSXLRl85t:yPAZicdhlC8 · Commit 8ef15f8b93bb5123b97c547d9238ecda4e44bb28
Judge: native (primary) openai/gpt-6-astra · tools: yes
Full record: GET /gavel/run/panel:8ef15f8b93bb5123b97c547d9238ecda4e44bb28:kvLSXLRl85t:yPAZicdhlC8

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.

Support Sonnet, GPT-5.6 Luna, and GPT-5.6 Terra model families

2 participants