Commit Graph
375 Commits
Author SHA1 Message Date
Time Attakc bab020dea9 feat(ios-qa): adaptive XCUITest QA — semantic tap, nested content (#14)
feat(ios-qa): adaptive XCUITest QA — reaches nested controls, verifies taps
2026-07-21 14:44:03 -07:00
Time Attakc 63c648516d feat(gstack2): consolidated runtime — execution-result contract, profiles, capability readiness, hardening (#10)
feat(gstack2): consolidated runtime — execution-result contract, profiles, capability readiness, hardening
2026-07-21 14:41:32 -07:00
SinabinaandClaude Opus 4.8 c2ac1f32c0 feat(ios-qa): adaptive XCUITest runner that reaches nested controls and verifies taps
JSON-driven XCUITest runner plus SwiftUI/UIKit fixture apps that drive a
real app by bundle id. The runner resolves the actual switch inside a
SwiftUI Toggle wrapper, and when a center tap misses the full-width row it
retries on the control's trailing edge via an element-anchored normalized
offset (adaptive, not a raw screen coordinate), then verifies the switch
value actually changed. A tap that silently does nothing is now reported
as an interaction failure, not a false product defect. Validated on the
simulator and on a physical iPhone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 14:19:14 -07:00
SinabinaandClaude Opus 4.8 466b1ec744 feat(ios-qa): add XCUITest execution-plan module
Standalone planner that turns the IOSQAFlow JSON contract into an
xcodebuild XCUITest invocation for simulator or physical device, using
semantic selectors (identifier/role/label) and no coordinate taps.
Pure plan generation; covered by 7 unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 14:19:14 -07:00
SinabinaandClaude Opus 4.8 52a6101706 fix(gstack2): treat hard runtime failure as not-ready in capability readiness
A capability whose binary launches while the managed runtime hard-fails
(e.g. skill-API mismatch) was reported as `degraded`/ok:true/exit 0, diverging
from plain `gstack doctor` (ok:false/exit 1) for the identical report. Split
the branch so runtime `warn` stays `degraded` and runtime `fail` maps to
`failed`, and add a regression test for the runtime-fail + capability-pass case.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 14:12:54 -07:00
SinabinaandClaude Opus 4.8 d240b0fa6a fix(security): clear post-merge OSV advisories
New advisories landed after the integration work: fast-uri (High) and hono
(3x Medium) picked up fixed releases, and a Medium surfaced on
@hono/node-server. Bump the fast-uri and hono override pins to their fixed
patch releases (3.1.3, 4.12.27), clearing four findings.

The remaining @hono/node-server advisory is reachable only through the unused
@modelcontextprotocol/sdk transitive (no source imports it, no Hono server is
started); its only fix is a major bump the SDK pins against. Record that
assessment in .osv-scanner.toml so the scheduled scan stays honest instead of
alarming on an unreachable path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 13:38:13 -07:00
SinabinaandClaude Opus 4.8 cb1792fc58 Merge codex/gstack-2 into gstack2-runtime-integration
Reconcile the four integrated v2 runtime implementations (unified execution
result contract, execution profiles, capability readiness, GitHub security)
with main's browser-provider hardening.

Conflict resolutions:
- runtimeContract() generator: keep new execution-result + doctor-capability
  paragraphs, adopt main's `[matching browser flags]` fallback wording;
  regenerate the six RUNTIME.md.
- package.json: keep the strict isolated test:gstack2 runner and marked 18.0.6
  security bump; adopt main's playwright-core alias.
- bun.lock: regenerated via bun install.
- release-hardening.test.ts: adopt main's browser-provider assertions
  (resolveServerLaunchTarget, --browser managed smoke loop).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 13:15:03 -07:00
Sinabina 37144e8b05 fix(gstack2): harden integrated runtime verification 2026-07-21 12:29:01 -07:00
Sinabina a84a6e233d fix: harden browser provider activation 2026-07-21 12:13:33 -07:00
Sinabina e3effb3fc4 feat: require explicit browser provider consent 2026-07-21 12:07:01 -07:00
Sinabina 75b3576670 fix: use portable archive paths on Windows 2026-07-21 11:07:36 -07:00
Sinabina bec9b9bea4 fix: exclude Windows validator from runtime artifacts 2026-07-21 11:02:26 -07:00
Sinabina f7d44a4e5a fix: keep release smoke fixture inside project
Create the browser smoke page under GITHUB_WORKSPACE so the runtime's local-file trust boundary permits it on every runner, and advance the immutable bootstrap channel to RC3.
2026-07-21 10:43:57 -07:00
Sinabina dbf94804ad fix: make runtime release six-platform safe
Use an allowed local file URL for the browser smoke test, centralize keyless archive signing after native builds so Windows ARM64 does not require an unavailable Cosign binary, and advance the immutable bootstrap channel to RC2.
2026-07-20 16:58:31 -07:00
Sinabina b0047cc525 fix: add production runtime RC release channel
Publish signed prerelease artifacts from v2.0.0-rc.* tags, bind bootstrap trust to the immutable RC tag, make missing-release errors actionable, and install the six public skills from the canonical subpath.
2026-07-20 16:51:59 -07:00
Sinabina 09492d34b4 chore(security): harden GitHub workflows 2026-07-20 16:23:41 -07:00
Sinabina 2e1e52eae7 feat(gstack2): add capability readiness process 2026-07-20 16:23:38 -07:00
Sinabina a1b2b05a18 feat(gstack2): infer execution profiles 2026-07-20 16:22:43 -07:00
Sinabina 9b5ae4071d feat(gstack2): add unified execution result contract 2026-07-20 16:22:28 -07:00
Sinabina d6ef673e4d feat: add provider-aware browser QA setup
Detect host-native browser tools before offering the isolated local Chromium fallback, add a common readiness fixture, harden managed browser startup, and verify standards installs expose one canonical QA skill.
2026-07-20 16:01:24 -07:00
Sinabina f14445bb00 feat: componentize GStack 2 runtime and release integrity 2026-07-20 14:16:23 -07:00
Sinabina b0ea2296d1 record final cross-platform validation evidence 2026-07-17 14:56:54 -07:00
Sinabina a8a5fa1aa3 stabilize native Windows integration gates 2026-07-17 14:41:24 -07:00
Sinabina 6d3eb795e8 finish native Windows launcher validation 2026-07-17 14:29:16 -07:00
Sinabina b6e4ad5adb close Windows lock handoff races 2026-07-17 14:25:45 -07:00
Sinabina 9bb382f2ee stabilize runtime state on native Windows 2026-07-17 14:21:10 -07:00
Sinabina 9b3188e74b bound cross-platform runtime deadlines 2026-07-17 14:07:50 -07:00
Sinabina 2bc7775f89 make runtime provenance platform-neutral 2026-07-17 13:40:04 -07:00
Sinabina d0d770e811 stabilize generated iOS assets on Windows 2026-07-17 13:34:53 -07:00
Sinabina 39bc307b0c record host and cancellation evidence 2026-07-17 13:31:05 -07:00
Sinabina cb53351652 harden clean-host generation and shutdown 2026-07-17 13:30:19 -07:00
Sinabina c0f280dbf7 record live Context and device evidence 2026-07-17 12:43:53 -07:00
Sinabina 8b7c31d8a4 record committed-tree test totals 2026-07-17 12:21:08 -07:00
Sinabina 84a1509a65 record reproducible runtime bundle evidence 2026-07-17 12:10:00 -07:00
Sinabina d7357c288f harden runtime packaging and verification 2026-07-17 12:09:49 -07:00
Sinabina 20d2840bd3 record final container verification 2026-07-17 11:11:06 -07:00
Sinabina 7d760ff1d1 document gstack 2 evidence and blocked gates 2026-07-17 11:08:51 -07:00
Sinabina 9919c4cdd3 add gstack 2 parity and lifecycle gates 2026-07-17 11:08:32 -07:00
Sinabina b6572ebbb7 implement six-skill gstack 2 runtime 2026-07-17 11:08:14 -07:00
Sinabina ce37bd36a9 record gstack 2 baseline and backlog map 2026-07-16 17:46:41 -07:00
Sinabina 2c487305d6 fix physical iOS bridge reliability 2026-07-16 17:43:58 -07:00
t bb57306d98 plan-eng-review: verify server-gated UI outcomes
Reconstructs PR #1874 from its source template and generated section.
2026-07-14 11:10:59 -07:00
t 2e3695339e review: check loosened inputs and stale user strings
Reconstructs the useful review-method additions from PR #2141 and keeps generated output in sync.
2026-07-14 11:10:38 -07:00
t 411b606021 docs(privacy): disclose hourly GitHub update check
Reconstructs PR #1083.
2026-07-14 11:10:38 -07:00
t 0af2add848 fix(extension): restrict getPort token to extension origin
Reconstructs PR #1822 with an origin check so content scripts and missing origins fail closed while valid extension pages retain bootstrap access.
2026-07-14 11:10:38 -07:00
t d0fd2c0fcc fix(deps): upgrade diff to clear GHSA-73rr-hh4g-fpgx
Reconstructs the shared fix from PRs #1599 and #1172 without their VERSION or npm lockfile changes.
2026-07-14 11:10:38 -07:00
Garry TanandClaude Fable 5 7c9df1c568 chore(release): v1.60.1.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 23:49:09 -07:00
Garry TanandClaude Fable 5 80d944a2df docs(todos): periodic CI matrix covers 9 of ~66 e2e files — file the coverage decision
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 23:49:09 -07:00
Garry TanandClaude Fable 5 88dec06907 fix(test): autoplan-dual-voice sandbox registers skills + assertions read real stream-json
Root cause of months of silent local failure: the sandbox copied skill dirs to
the repo root, but claude >= 2.x resolves slash commands strictly from
registered skills, so /autoplan short-circuited with 'Unknown command' (0
turns, ~1s) on every attempt. Install /autoplan + review skills at
project-level .claude/skills/ (same pattern as skill-routing-e2e).

Also: the transcript filter matched entry.type === 'tool_use', a shape that
never appears at the top level of raw stream-json, so assertions only ever saw
the final result text; filter on assistant/user events instead. Hang
protection accepts the Phase 1 review dispatch (Agent/Task tool call carrying
review instructions) as progress evidence, since full Phase 1 completion is
15+ min of subagent work. Budget raised to 10 min / 40 turns.

Invisible in CI: the file is in neither evals.yml nor evals-periodic.yml
matrices (coverage decision filed in TODOS.md).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 23:49:09 -07:00
Garry TanandClaude Fable 5 bb4de3926f fix(test-harness): return promptly when a timed-out child leaves pipe-holding orphans
proc.kill() only signals the sh -c wrapper; the claude child survives as an
orphan that inherited our stdout/stderr pipes, blocking the stream drain until
it exits (observed: a 600s spawn timeout stretching to 1431s and tripping bun's
per-test timeout with no result). On timeout, cancel the stdout reader; race
the stderr drain against child exit + 5s grace. Streamed transcript lines
survive the cancel, so callers still get their evidence.

Regression test: test/session-runner-timeout.test.ts (fake claude spawns a
pipe-holding orphan; fails in 30s without the fix, passes in 8s with it).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 23:49:09 -07:00