Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
00757e9
docs: record pstack-flex fork point and provenance
thisguymartin Sep 25, 2026
09373fa
feat(runner): add deepseek and minimax gateway providers
thisguymartin Sep 25, 2026
6fa309a
feat(runner): gateway preflight with OAuth-leak guard
thisguymartin Sep 25, 2026
09816a6
refactor(runner): derive gateway lanes from one provider list
thisguymartin Sep 28, 2026
53930c8
fix(runner): isolate gateway routing and reject model mismatches
thisguymartin Sep 28, 2026
1c22878
docs(dispatch): flex model matrix, routes, and receipt semantics
thisguymartin Sep 25, 2026
da63250
feat(setup): assignment-first setup with flex families
thisguymartin Sep 25, 2026
ff22251
docs: LANES.md pricing, zero-subscription walkthrough, CHANGES entry
thisguymartin Sep 25, 2026
eaf79fd
docs: add usage guide with diagrams, flows, and lane examples
thisguymartin Sep 25, 2026
69d5e1e
docs(readme): link the usage guide and install from this fork
thisguymartin Sep 25, 2026
5ede982
docs(lanes): document adding a gateway provider
thisguymartin Sep 28, 2026
92dc0bc
docs(lanes): align gateway guidance with verified model receipts
thisguymartin Sep 28, 2026
680577a
Merge pull request #1 from thisguymartin/flex/gateway-providers
thisguymartin Sep 28, 2026
375becd
Merge pull request #2 from thisguymartin/flex/dispatch-and-docs
thisguymartin Sep 28, 2026
29068bf
feat: add DeepSeek Pro and MiniMax preview model choices
thisguymartin Sep 28, 2026
d581d2b
Merge pull request #6 from thisguymartin/flex/multiple-gateway-models
thisguymartin Sep 28, 2026
83a16f1
feat(pstack): support GPT-6 role families
thisguymartin Sep 28, 2026
492f77f
Merge remote-tracking branch 'origin/main' into pr9-work
thisguymartin Sep 28, 2026
c27f756
docs: document optional GPT-6 Codex families
thisguymartin Sep 28, 2026
06e3e0e
Merge pull request #9 from thisguymartin/feat/astra-model
thisguymartin Sep 28, 2026
66e5a46
docs(readme): describe the flex lanes, routing, and roadmap
thisguymartin Sep 28, 2026
075ded9
Revert "docs(readme): describe the flex lanes, routing, and roadmap"
thisguymartin Sep 28, 2026
1888f61
feat(pstack): promote GPT-6 Codex families to stock with new defaults
thisguymartin Sep 28, 2026
7ad4ce3
docs: rewrite README as pstack-flex and document the stock GPT-6 defa…
thisguymartin Sep 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,31 @@
# CHANGES — applied substitutions

## Unreleased: GPT-6 Codex families become stock

- Move `astra`, `sol-6`, and `luna` from the additional matrix into the stock model matrix. The first-run sheet now assigns GPT-6 Sol high to `feature, refactoring`, `bug-fix`, `perf-issue`, and `hillclimb`; Luna high to `how explorer` and `swarm workers`; and Astra high in place of GPT-5.6 Sol on every panel. `codex:gpt-5.6-sol` stays selectable; existing sheets are untouched until a role is reassigned in setup.
- `provider-dispatch.md` gains a "Default panel" section that is the single source for the four panel lanes. `setup-pstack`, `arena`, `architect`, and `interrogate` copy it; the static invariant reads that line instead of deriving the panel from every matrix row, and the solo-code invariant checks the `sol-6` row.
- The matrix test asserts seven stock rows, the GPT-6 descriptors in the first-run sheet, and the panel contract. `UPSTREAM-FLEX.md` records the new permanent conflict surface on upstream syncs. Tracked in [pstack-flex #17](https://github.com/thisguymartin/pstack-flex/issues/17).

## Unreleased: multiple gateway model choices

- Add DeepSeek V4 Pro and MiniMax M3.1 Flash Preview as independent setup families alongside existing Flash and M3 choices. Keep provider-owned routing and existing descriptors.
- Validate unique model families and provider/model pairs instead of requiring one row per provider; cover both parent routes and substituted-model rejection.
- Document preview Token Plan access, model-specific thinking semantics, and required installed live validation. Tracked in [pstack-flex #5](https://github.com/thisguymartin/pstack-flex/issues/5).

This port applies the Cursor → Claude Code substitutions in skill bodies. Earlier drafts left them flagged; this revision resolves them. A later pass added a Codex build that shares the same skills; see [Codex port](#codex-port) below.

## pstack-flex (unreleased) — gateway lanes and optional families

Fork of open-pstack v1.4.1. Additive changes, all in port-owned files:

- Runner: new gateway providers `deepseek` and `minimax` (`runner/flex-providers.ts`). Each spawns the stock `claude` binary with the exact claude argv, plus injected environment: the lab's Anthropic-compatible endpoint, `ANTHROPIC_AUTH_TOKEN` from `DEEPSEEK_API_KEY`/`MINIMAX_API_KEY`, model pins, and an isolated `CLAUDE_CONFIG_DIR` (`~/.pstack-flex/<provider>`). Inherited `ANTHROPIC_*` values are deleted before injection so a parent's credentials or endpoint never bleed into a gateway child.
- OAuth-leak guard: a gateway lane refuses to start (in-process, `unauthenticated` receipt, exit 77) when its API key variable is missing or when its config dir carries a claude.ai OAuth credentials file, so a claude.ai login can never be pointed at a third-party endpoint.
- Gateway preflight is `claude --version`; the one-shot invocation is the real auth test. Gateway receipts force `costUsd` to null (the CLI prices at Anthropic rates) and match served models case-insensitively, falling back to `modelEvidence: "pinned-argv"` like Codex.
- `provider-dispatch.md`: new additive "Flex model matrix" section, extended route table, gateway preflight semantics, and the panel-diversity rule (arena runners and interrogate reviewers span at least two providers unless the operator explicitly confirms otherwise). The stock model matrix is byte-unchanged.
- Optional GPT-6 families: the additional model matrix declares `codex:gpt-6-astra`, `codex:gpt-6-sol`, and `codex:gpt-6-luna` with default effort `high` and selectable `low`, `medium`, `high`, `xhigh`, and `max`. Setup can assign and probe each for `architect runners` or another configurable role. Codex parents use native `spawn_agent`; Claude Code parents use the external Codex runner. GPT-6 Sol has its own `sol-6` family. Stock models and first-run role assignments stay unchanged.
- `setup-pstack`: role assignments are selected first, and only assigned families get effort questions and probes; there is no requirement to assign every matrix family (mirrors upstream PR #73 / issue #72). The first-run sheet, its stock quad, and the fail-closed write rules are unchanged.
- Tests: the model-matrix contract gains a flex-matrix section check cross-validated against the runner's gateway specs; runner, commands, parse-output, and CLI tests cover env injection, the guard, cost nulling, and case-insensitive verification. Nothing in the suite performs network I/O.

## 1.4.1 syncs to Cursor pstack 0.15.1

Open Pstack 1.4.1 tracks Cursor pstack 0.15.1 at `f8abeddd1862dc73704e3d719dd73df0d51b8c71`. Poteto-mode now requires each claim to include its evidence or a measured, inferred, or guess label in the same sentence. Agents also run any check they can run themselves instead of handing that check to the user. No playbook, model, runtime, or dependency changed.
Expand Down
1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright (c) 2026 Lauren Tan
Copyright (c) 2026 Martin Patino (pstack-flex modifications)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 4 additions & 0 deletions NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This plugin is a port of upstream MIT-licensed work. All upstream copyright notices and license terms are preserved. The open-pstack history begins from `michael-denyer/pstack-claude` through proven import commit `053ed78732e3b71826933170eafe7f7782dda844`.

## pstack-flex provenance

This repository, **pstack-flex** (Martin Patino), is a fork of [ericlitman/open-pstack](https://github.com/ericlitman/open-pstack) at v1.4.1 (`de67e6b40511814171e5e4c8ad7af3b79f07c9ee`), which ports [Lauren Tan's pstack](https://github.com/cursor/plugins/tree/main/pstack) (Cursor) to Claude Code and Codex. Provenance chain: pstack-flex <- ericlitman/open-pstack <- cursor/plugins/pstack. All licenses remain MIT; every upstream license and notice file is preserved. The flex gateway providers, optional families, docs, and tests are (c) 2026 Martin Patino, MIT, and are inventoried in [UPSTREAM-FLEX.md](UPSTREAM-FLEX.md).

## Upstream sources

| Component | Upstream | Copyright | License | License file |
Expand Down
Loading