Files
gstack/docs/gstack-2/STATUS.md
T

198 lines
13 KiB
Markdown

# GStack 2 status
**Status at the 2026-07-17 documentation checkpoint: `BLOCKED`.**
The candidate contains substantial implementation, but it is not a released or
verified GStack 2. `DONE` is prohibited until every P0 gate is backed by the
required evidence layer. Current blockers include the waived physical-iPhone P0
gate and the failed live v3 installed-host adversarial gate, including
incomplete representative host UI/process coverage. Native CI is green on
macOS, Ubuntu, Windows, and the Dev Container. No release-branch push, draft
PR, or PR-ready claim is authorized by this status.
## Implemented candidate surface
- [x] Pinned audit base:
`bb57306d98c97011b0919c6132705a15b1579781`.
- [x] Baseline counts and pre-existing failures captured without relabeling
them candidate regressions.
- [x] 755 unique open issue/PR records reconciled and deterministically mapped;
all 16 required upstream PR snapshots traced.
- [x] Exactly six canonical skill directories: `plan`, `design`, `qa`,
`debug`, `review`, and `ship`.
- [x] The six `/plan` top-level modes are exactly **Discovery, Product,
Engineering, DX, Specification, and Full chain**.
- [x] Standard installer matrix is green: 470/470 checks, 16 installs and two
removals with CLI 1.5.19. Project/global installs passed for Claude Code,
Codex, Cursor, Pi, OpenClaw, and GitHub Copilot; selected-skill and opt-in
compatibility-alias cases, paths with spaces, source symlink, physical
copies, and canonical hashes passed. The committed artifact is
[`evals/installation/install-matrix.json`](../../evals/installation/install-matrix.json).
- [x] A standards-based Codex runtime-absent run passed. The canonical root
`--list` returned exactly six skills; the selected install used
`time-attack/gstack/skills --skill qa` and installed only byte-identical
`qa`. `skills` 1.5.19 can count hidden aliases in its pre-filter display, so
that display is not the installed subset count. Codex then preserved pure
judgment, reported the capability setup gate and one approval prompt, made
no file changes, started no browser, created no runtime, and contacted no
GStack external service. Artifact:
[`evals/installation/standard-codex-runtime-absent-2026-07-17.json`](../../evals/installation/standard-codex-runtime-absent-2026-07-17.json).
- [x] Current six names/descriptions measure 982 characters (about 246
four-character token-equivalents), roughly 77.6% below the correctly parsed
baseline of about 1,100 in the regenerated tree.
- [x] Generated inventory contains 55 preserved modules, 16 carved sections,
25 scenarios, 16 regression definitions, and 78 assets.
- [x] Compatibility aliases remain opt-in and outside default six-skill
discovery; each prints its replacement and contains no copied judgment.
- [x] Judgment provenance, behavioral contracts, 25 structured scenarios, and
16 upstream bug-fix regression definitions implemented.
- [x] The 2026-07-17 regenerated parity rerun is green: 4,681 checks covering
55 modules, 16 sections, 25 scenarios, 16 regressions, and 78 assets.
- [x] Deterministic semantic parity is green: 295 checks across 14 suites, 15
executions, 15 comparison dimensions, 16 carved sections, and nine
authority-policy unit cases, including unsupported numeric claims. Exact
preserved source bodies are the primary
oracle. These are deterministic policy checks, not behavioral-adversarial
proof, and do not close the installed-host gate. All
three retained Claude Haiku live samples are classified `REGRESSION`; they
are preserved as noisy supplemental evidence, never cherry-picked as a
primary gate or represented as green.
- [x] The current macOS GStack 2 suite is green at commit `a8a5fa1a`: 150 pass
/ 0 fail and 1,189 assertions across 16 files.
- [x] Optional host-neutral runtime implemented with canonical paths,
repo/worktree state identity, locks, atomic writes, effect claims,
doctor/config/state/cleanup, migrations, upgrade/rollback, and uninstall.
- [x] Managed runtime installer coverage is green at 25 pass / 0 fail and 341
assertions. The deterministic clean macOS arm64 managed-bundle audit records
110 components, 1,829 files, 450,044,315 bytes, and 50 capability launchers.
This is a platform-specific bundle measurement, not a universal byte count;
platform-native package payloads differ. Setup installs frozen
production-only dependencies; the development-only Claude Agent SDK is
excluded. The Sharp/ngrok closure is included. The Hugging Face sidecar is
excluded and its package is development-only, so setup installs neither its
inference runtime nor model weights and reports the L4
capability unavailable. A clean Linux arm64 container smoke also used the
production-only install with the development SDK absent, completed a local
browser journey and Sharp full-page screenshot, and uninstalled while
preserving state.
- [x] Filesystem lifecycle coverage passes for clean install/uninstall,
paths with spaces, source symlinks with internal-link rejection, read-only
destination reporting on macOS, interrupted-pointer rollback, crash-journal
repair, and last-known-good launcher recovery.
- [x] Crash/resume external-effect idempotency is covered through an actual
local Git push: the effect executes at most once, and resume refuses to
repeat a command that may already have happened.
- [x] Context.dev public-URL/consent/failure contract is green at 22 pass / 0
fail and 139 assertions; deprecated search is typed unsupported rather than
fabricated. `context options` and explicit
`context select host|local-browser|none` choices persist without granting
Context.dev consent. A verified-key live smoke passed the official Markdown
scrape endpoint using protected input and an isolated temporary home; the key
was not persisted in the repository or permanent GStack state.
- [x] iOS candidate fixes implemented for UDID/CoreDevice identity, malformed
device-list errors, suspended-app bounded timeout, and active-bundle checks.
- [x] Default/free-test roots now include `design/test` and
`ios-qa/daemon/test`.
- [x] Focused retained capability suites are green: iOS daemon 95 pass / 0 fail
/ 229 assertions; design 101 pass / 0 fail / 381 assertions; PDF 189 pass / 0
fail / 398 assertions; and diagram 51 pass / 0 fail / 1 skip / 120
assertions. The opt-in paid diagram lane recorded two skips and is not live
provider evidence.
- [x] Physical-iOS preflight recorded 9 pass / 0 fail / 1 deploy skip and 29
assertions. The direct smoke then returned typed code
`signing_unavailable`, category `setup_gate`; it installed no app and wrote no
pass artifact. A later attempt against the explicitly selected iPhone10,6 on
iOS 16.7.10 returned `device_not_wired`; legacy USB pairing validates, but
CoreDevice pairing is unsupported. After the user explicitly authorized the
other connected phone, pairing/signing/build/install/launch/tunnel setup
passed, but `POST /session/acquire` closed its socket before the five-check
loop completed. At harness stop, no device session remained attached and the
fixture app was left installed. These are retained operator observations;
no pass artifact exists.
- [x] The user explicitly stopped and waived further physical-iPhone testing.
No more device access is authorized. The earlier partial/setup-gate evidence
remains retained, but it is not a physical-device P0 pass.
- [x] Installed-host adversarial evidence is retained without relabeling:
v1 **failed**; immutable v2 **failed** even though QA passed because the
classifier produced false negatives for debug, review, and ship; v3 offline
harness coverage is green at 18 pass / 0 fail and 111 assertions. Paid live
v3 was a one-shot run and **failed 3/4** because review failed compound
inspection. It was not retried or relabeled. Artifact SHA-256:
`fcffdf2b0ee7bb9ac1351e246546af2cd352779bda7b1f8dc4a08f51fc66ef2f`.
- [x] A current managed-bundle audit confirms no model-weight download path in
setup. The standard Agent Skills installation remains Markdown-only and
independent of the optional runtime.
- [x] An isolated local-browser journey completed navigation, snapshot,
screenshot, status, and stop cleanup. The stop acknowledgement regression
has a 2 pass / 0 fail focused test.
- [x] The live aggregate SIGINT cancellation gate passed against an isolated
local-file fixture: shutdown returned an in-memory authenticated `503`, all
five owned processes exited, and no listener, root credential state,
credential-shaped file, or device session remained; an unrelated browser
daemon survived. The focused server-factory regression passed 34/0 with 62
assertions. Artifact:
[`evals/browser/cancellation-2026-07-17.json`](../../evals/browser/cancellation-2026-07-17.json).
- [x] The uninterrupted macOS broad suite is green under singleton isolation:
6,255 pass / 226 expected skips / 0 fail and 25,509 assertions across all
384 files. This includes the complete local-browser suite. The local
Windows-safe singleton lane is also green at 2,829 pass / 57 expected skips
/ 0 fail and 8,648 assertions across all 214 selected files.
- [x] Native CI run
[`29615621805`](https://github.com/time-attack/gstack/actions/runs/29615621805)
passed at commit `a8a5fa1a`: macOS 150/0/1,189, Ubuntu 150/0/1,189,
Windows 150/0/1,145, Dev Container 150/0/1,188, and the standard installer
470/470. Each native installer discovery found exactly six skills. Sanitized
artifact:
[`evals/ci/native-2026-07-17.json`](../../evals/ci/native-2026-07-17.json).
- [x] Architecture, privacy, Context.dev, host compatibility, upgrade/rollback,
migration, and governance documentation added.
## Blocking or incomplete P0 evidence
- [ ] The paid live v3 installed-host adversarial gate is failed, not pending:
the immutable one-shot result is **3/4**, with review failing compound
inspection. Do not retry or relabel it. The six hosts remain **Verified at
the installer layer only**; representative UI/process coverage is incomplete.
- [ ] The physical-iPhone five-check loop remains incomplete and is explicitly
waived by the user. No further device access is authorized. The unsigned
Release guard and earlier preflight/setup-gate observations remain useful
partial evidence. A signed fixture was later installed and launched, but its
session-acquire request failed; no pass artifact exists and P0 remains open.
- [ ] Finish final evidence-linked disposition for every infrastructure item;
see the 25-row table in [ARCHITECTURE.md](./ARCHITECTURE.md). Current focused
evidence does not replace the remaining live gates.
## Evidence index
| Evidence | Path | State |
|---|---|---|
| Measured baseline | [BASELINE.md](./BASELINE.md) | Recorded |
| Candidate and baseline command ledger | [TEST-EVIDENCE.md](./TEST-EVIDENCE.md) | Runtime-absent, SIGINT, and native matrix pass; live v3 failed |
| Native CI matrix | [native-2026-07-17.json](../../evals/ci/native-2026-07-17.json) | macOS, Ubuntu, Windows, installer, and Dev Container green |
| Complete skill migration | [SKILL-MIGRATION.md](./SKILL-MIGRATION.md) | Generated; 55/55 assignments |
| Judgment provenance | [JUDGMENT-PROVENANCE.json](./JUDGMENT-PROVENANCE.json) | Generated; 4,681-check parity rerun green |
| Parity contract | [JUDGMENT-PARITY.md](./JUDGMENT-PARITY.md) | Green for source/render/contract/asset fixtures |
| Semantic parity | [SEMANTIC-PARITY.md](./SEMANTIC-PARITY.md) | Deterministic 295-check corpus green; retained live samples are regressions |
| Installed-host adversarial | [eval overview](../../evals/host-adversarial/README.md), [immutable live v3 artifact](../../evals/host-adversarial/runs/2026-07-17T19-48-45Z-v3-live-gpt-5-4.json) | V1/V2 failed; V3 offline 18/111 green; paid live V3 one-shot failed 3/4 (review) |
| Structured scenarios | [SCENARIOS.md](./SCENARIOS.md) | 25/25 structured routing fixtures green |
| Backlog traceability | [BACKLOG-MAP.json](./BACKLOG-MAP.json) | 755 unique items mapped |
| Context integration | [CONTEXT-DEV.md](./CONTEXT-DEV.md) | Automated contract 22/139 green; verified-key official-endpoint live smoke passed |
| Host matrix | [HOST-COMPATIBILITY.md](./HOST-COMPATIBILITY.md) | 470/470 checks; Codex runtime-absent run passed; live v3 failed; other UI launches pending |
| Privacy boundary | [PRIVACY.md](./PRIVACY.md) | Implemented contract; full retained-tool egress audit pending |
| Physical iOS | [IOS-PHYSICAL-DEVICE.md](./IOS-PHYSICAL-DEVICE.md) | Partial setup evidence only; user stopped/waived further device testing; no P0 pass artifact |
| Upgrade/recovery | [UPGRADE-AND-ROLLBACK.md](./UPGRADE-AND-ROLLBACK.md) | Runtime installer 25 pass / 341 assertions; deterministic clean macOS arm64 bundle audit recorded |
## Interpretation rules
- `MECHANICAL_PORT` means the pinned rendered judgment body remains equal after
normalization; it is not permission to rewrite prose.
- `BUG_FIX` requires its linked PR/reproduction and regression fixture.
- `NEEDS_EVIDENCE`, `DEFER_COMMUNITY`, and
`SUPERSEDED_BY_CONSOLIDATION` are auditable dispositions, not GitHub state
changes. No labels, issues, or PRs are mutated by the map generator.
- A fixture-backed structural result does not replace a live browser, physical
device, external account, native OS, or host-install result where the gate
explicitly requires one.
- Do not market or release this branch as GStack 2 while this status is
`BLOCKED`.