Commit Graph

52 Commits

Author SHA1 Message Date
Vincent Koc 2e4683ba7f fix(qa): finish aggregate suites without shared cache races (#120816)
* fix(qa): bound parallel aggregate script runs

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com>

* test(tui): wait for adopted session frame

Punchcard-Session: amber-workshop-workshop-36

---------

Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com>
2026-08-10 03:32:04 +08:00
Vincent Koc e14b36cdbf fix(qa): update Control UI scenario code references (#120801) 2026-08-09 09:42:38 +08:00
Vincent Koc a1d20ae31b test(tui): cover session lifecycle and resume (#119465)
Punchcard-Session: ember-workshop-lantern-bs
2026-08-05 12:16:06 +08:00
Vincent Koc bfcce12e6b fix(tui): restore provider auth in installed local mode (#119283)
* test(tui): cover local recovery and auth flows

* fix(tui): restore installed local auth

* test(qa): allow TUI scenario teardown margin

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): constrain local CLI launcher ownership

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): satisfy local auth validation gates

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): strip inspector flags from auth child

Punchcard-Session: ember-workshop-lantern-bs
2026-08-05 05:40:13 +08:00
Vincent Koc c1a2f4dde7 fix(tui): keep whitespace-prefixed bang input in chat (#119245)
* chore: start T06 local shell proof

* fix(tui): preserve whitespace before bang submits

* fix(tui): defer paste expansion until submit

* fix(tui): preserve bang spacing across blocked retry

* fix(tui): keep whitespace bang chat out of history

* fix(tui): preserve bang routing across trim
2026-08-05 00:19:53 +08:00
Vincent Koc cdd0856f4d test(tui): prove streaming and tool card rendering (#119251) 2026-08-04 23:32:59 +08:00
Vincent Koc 52954a1fa8 chore(tui): add Gateway boundary PTY coverage (#119191)
* test(tui): prove gateway boundary flows

* test(tui): tighten gateway boundary assertions

* test(tui): satisfy gateway boundary lint

* test(tui): harden gateway boundary PTY proof

* test(tui): strengthen gateway lifecycle proof

* test(tui): validate gateway history metadata

* test(tui): isolate gateway model proof

* test(tui): isolate gateway model replies

* test(tui): isolate gateway boundary fixtures

* test(tui): settle gateway session adoption
2026-08-04 21:25:02 +08:00
Vincent Koc 121c6c1042 test(tui): prove command surfaces through PTY (#119165) 2026-08-04 18:08:53 +08:00
Vincent Koc 4bdf9ca789 fix(tui): block terminal controls in system messages (#118998)
* fix(tui): sanitize rendered system messages

* test(tui): keep PTY safety proof within lint budget

* test(tui): clarify terminal safety PTY proof

* test(tui): de-churn terminal safety harness

* fix(tui): sanitize connection status output

* test(tui): split PTY harness support

* fix(tui): sanitize selector and footer output

* fix(tui): harden terminal display boundaries

* fix(tui): harden terminal display boundaries

* fix(tui): harden terminal output boundaries

* test(tui): repair terminal safety proof

* test(tui): harden terminal safety oracle

* test(tui): type OSC terminator candidates

* fix(tui): authenticate current terminal rendering

* fix(tui): harden terminal output safety evidence

* test(tui): keep PTY cell type internal

* test(tui): reject literal tabs in PTY oracle

* test(tui): reject literal backspace in PTY oracle
2026-08-04 16:35:41 +08:00
Vincent Koc 0dc9970624 test(ui): cover Control UI auth transports (#118866)
* test(ui): cover control ui auth transports

* test(qa): register control ui auth transport scenarios

* test(ui): allow loaded control ui startup

* test(ui): allow loaded screenshot capture

* test(ui): scrub loopback proof URLs

* test(ui): keep transport proof assertion-focused

* test(ui): capture auth transport proof directly

* test(ui): gate auth transport proof media

* test(ui): scope auth transport evidence

* test(ui): fix auth transport frame typing

* test(ui): stabilize auth transport QA

* test(ui): separate auth UI navigation readiness
2026-08-04 08:16:22 +08:00
Vincent Koc 67d67b5ca9 test(ui): cover operator administration flows (#118836) 2026-08-04 08:14:58 +08:00
Vincent Koc 85af36dbf6 improve(tui): prove CLI entrypoints under real PTY (#118990)
* test(tui): cover CLI entrypoints under PTY

* test(tui): require built CLI in PTY evidence
2026-08-04 08:07:17 +08:00
Vincent Koc a2ccd6ea61 test(ui): add service-worker update primary QA proof (#118805)
* test(ui): prove service-worker production updates

* test(qa): register control ui service-worker proof

* fix(ui): type production build environment

* fix(ui): avoid service-worker test shadowing

* test(ui): gate service-worker proof capture

* test(ui): isolate production e2e build output

* test(ui): assert claimed service worker version
2026-08-04 06:56:47 +08:00
Vincent Koc 57a1cbbeee test(tui): prove editor input through PTY (#118982) 2026-08-04 06:18:38 +08:00
Vincent Koc 99926b7323 test(tui): add reusable PTY evidence producer (#118902) 2026-08-04 05:19:42 +08:00
Vincent Koc 361c07f993 test(ui): add shell and PWA primary QA proof (#118788)
* test(ui): cover shell routing and gateway target

* test(qa): register shell and PWA primary proof

* test(ui): record prefixed asset behavior

* test(ui): satisfy shell routing lint

* test(ui): reject root asset fallbacks in shell proof

* test(ui): preserve shell proxy redirects
2026-08-04 05:11:45 +08:00
Vincent Koc 02885d6d16 test(qa): cover Control UI sessions and cron (#118838)
* test(qa): cover Control UI sessions and cron

* test(qa): reuse canonical Cron E2E owner
2026-08-04 03:52:26 +08:00
Vincent Koc a2409d1ebe test(ui): cover diagnostic operator flows (#118837) 2026-08-04 03:49:07 +08:00
Vincent Koc c218c539ab test(ui): add guarded config QA coverage (#118814) 2026-08-04 03:38:27 +08:00
Vincent Koc d6059d20fd test(ui): add update status browser proof (#118786) 2026-08-04 03:23:13 +08:00
Vincent Koc cd42cb7703 test(ui): add credentials primary QA proof (#118790) 2026-08-04 03:05:17 +08:00
Peter Steinberger d16e33e08e fix: restore trustworthy end-to-end QA and cross-channel delivery (#115404)
* fix(qa): repair verified end-to-end and channel regressions

* fix(gateway): make interrupted restart recovery lifecycle-safe

* test(heartbeat): target the canonical recovery session store

* fix(gateway): prioritize durable restart recovery before heartbeat

* fix(qa): preserve safe restart recovery and channel expiry

* fix(qa): fail closed and fence restart recovery

* test(agents): isolate restart recovery timing

* test(agents): prove actual restart retry timing

* fix(qa): report incompatible profile scenarios

* fix(scripts): resolve symlinked docker scheduler entrypoints

* fix(qa): require fresh native test evidence

* fix(heartbeat): fence active restart recovery delivery

* fix(gateway): consume untargeted restart acknowledgements

* fix(qa): satisfy exhaustive hosted validation gates

* fix(agents): fence stopped restart recovery dispatch

* style(agents): format restart recovery lifecycle regression

* test(gateway): isolate context prewarm sidecar lifecycle

* test(qa): make scenario process timeout cleanup deterministic

* fix(qa): stamp synthetic gateway configs with current version

* fix(openai): preserve vision capabilities in stale model catalogs

* test(qa): align profile channel rejection with current main

* fix(openai): forward supported moderation for image edits

* fix: restore latest-main CI and image edit documentation

* fix(qa): retain relocated code-mode evidence validation

* fix(openai): expose GPT-5.4 vision in static catalog

* fix(pricing): honor explicit model cost overrides

* test(pricing): keep isolated provider regressions deterministic

* fix(openai): inherit transport for discovered static models

* fix(gateway): honor agent-owned static image capabilities

* test(gateway): preserve prepared-snapshot attachment races

* test(gateway): isolate subagent persistence failure injection

* test(gateway): exercise concurrent voice replay admission

* fix(gateway): restore stale model image capabilities

* fix(agents): publish configured model vision capabilities

* fix(agents): isolate detached media transcript ownership

* test(agents): preserve generic transcript lock regression

* fix(gateway): require proven static model route identity

* fix(qa): accept bounded full-size generated image attachments

* fix(qa): require fresh script producer evidence

* test(qa): prove native E2E scenario execution
2026-07-29 12:45:27 -04:00
Peter Steinberger d239a59d82 fix(ui): make Control UI ownership and permissions reliable (#115364)
* fix(ui): unify connection-owned gateway event dispatch

* fix(qa): keep hosted UI smoke evidence truthful

* fix(ui): make mobile navigation drawer an accessible modal

* refactor(ui): centralize settings search destinations

* fix(ui): own chat media resource lifecycles

* fix(ui): unify sidebar session scope ownership

* refactor(ui): remove obsolete navigation backdrop styles

* refactor(ui): isolate dashboard provider lease capabilities

* fix(ui): centralize gateway operator permissions

* style(ui): format gateway event regressions

* fix(ui): render live dashboard permissions immediately

* fix(ui): enforce approval grant authority

* fix(gateway): fence retired sockets after event gaps

* fix(ui): isolate sidebar gateway fixtures across shared workers

* test(ui): isolate singleton-sensitive browser suites

* fix(ui): retire stale catalog pagination on gateway reconnect

* fix(ui): restore drawer focus after native dialog dismissal

* fix(ui): seed drawer threads and preserve modal focus ownership

* fix(ui): isolate nested native drawer overlay lifecycle

* test(ui): prove isolated dashboard lease authorization

* fix(ui): bound settled managed image resources

* fix(ui): type native modal focus and shared test helper

* fix(ui): correct approval mock types and trim dead export

* fix(ui): keep settings section metadata private

* fix(qa): keep hosted coverage regression within lint limit

* refactor(ui): keep catalog presence in its session data owner

* fix(browser): regenerate bundled copilot runtime

* test(ui): split board lease authorization regressions

* fix(ui): snapshot gateway listener fanout without redundant spread

* fix(ui): bind chat media subscriptions to image lifetime

* fix(ui): extract overlay access lifecycle

* fix(ui): restore guarded media after Lit reconnection

* test(ui): localize board lease fixture title

* fix(ui): reuse system approval fixture labels

* test(ui): narrow managed media lifecycle source

* fix(ui): prevent retired board gateway clients from rolling back leases

* fix(ui): expose pairing to pairing-scoped operators

* fix(ui): preserve legacy device pairing access

* fix(ui): preserve responsive sidebar ownership

* fix(ui): preserve responsive navigation and prove media ownership

* fix(ui): retire revoked catalog and refresh pairing grants

* test(ui): align typed catalog fixtures with main
2026-07-28 16:42:05 -04:00
Peter Steinberger 641c82b5bd fix(qa): restore full-stack scenarios and truthful suite exits (#115290)
* fix(qa): restore full-stack scenarios and truthful suite exits

* test(qa): respect plugin boundaries and atomic media delivery
2026-07-28 13:00:22 -04:00
Peter Steinberger a5ee5039ce test(ui): split the oversized Control UI e2e suites (#114889)
* test(ui): split oversized Control UI e2e suites

* test(ui): bound new-session locator polling

* test(ui): fix split e2e metadata

* test(ui): give startup waits an explicit budget
2026-07-28 01:07:21 -04:00
Peter Steinberger 854a7f0e91 fix(ui): preserve agent, session, locale, and dashboard ownership (#114896)
* fix(ui): isolate sessions and preserve agent-scoped state

* test(ui): stabilize agent-scoped chat startup browser proof
2026-07-28 01:02:06 -04:00
Peter Steinberger 3890a5efb6 fix(qa): restore current scenario source and documentation references (#113639)
Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-25 05:04:05 -07:00
Dallin Romney 132d91e427 refactor(qa): make taxonomy coverage ids unique (#110280) 2026-07-22 16:28:44 +09:00
Peter Steinberger b116ae5a43 fix: stop mock Control UI QA from hanging in live suites (#110481)
* fix(qa): keep transcript boundary scenario mock-only

* fix(qa): filter scenario-pinned provider lanes

* test(qa): narrow transcript scenario execution type
2026-07-18 07:51:58 +01:00
Peter Steinberger eea38748be test(ui): cover plan-snapshot replay on reconnect end to end (#110091)
* test(ui): cover plan-snapshot replay on reconnect end to end

QA follow-up to the plan-replay work: the mock gateway scenario can now
serve an inFlightRun snapshot plus session run state through chat.history
and chat.startup, and a Playwright suite proves the checklist seeds from
the replayed snapshot on load, is replaced in place by a newer live plan
event, clears on the terminal outcome, and survives a mid-run page
reload. Registered as QA scenario control-ui-plan-replay-reconnect.

* test(ui): satisfy plan replay e2e lint
2026-07-18 07:10:15 +01:00
Dallin Romney 8924e27bb6 refactor(qa): keep synthetic UX evidence out of scenario catalog (#109315)
* refactor(qa): keep UX evidence producer out of catalog

* test(qa): preserve UX producer runner integration
2026-07-16 13:51:18 -07:00
Dallin Romney 9a2f25c82b refactor(qa): make channel drivers run-level (#108602) 2026-07-16 00:59:03 -07:00
Dallin Romney 2d9b78fff7 refactor(qa): canonicalize live scenario coverage (#108464) 2026-07-15 16:50:41 -07:00
snowzlmbot e8ad0466ff fix: render assistant transcript headers safely (#99404)
* fix: render assistant transcript headers safely

Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>

* fix(markdown): nest crossing annotation spans

* fix(markdown): protect final transport projections

* refactor(markdown): split transcript render ownership

* test(ui): cover assistant transcript render flag

* refactor(markdown): keep transcript helpers private

* docs(changelog): note assistant transcript headers

* chore(plugin-sdk): refresh transcript annotation baseline

* fix(markdown): harden final transcript projections

* docs(changelog): defer transcript note to release

* refactor(markdown): centralize HTML tokenization

* fix(markdown): satisfy lint gates

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>
2026-07-14 02:25:37 -07:00
Vincent Koc 6f820f9e6c fix(qa): wait for Control UI composer readiness (#105309) 2026-07-12 13:05:32 +02:00
Dallin Romney 0b9c2e6f95 fix(qa): simplify smoke lanes and isolate fanout (#102262)
* fix(qa): simplify smoke lanes and isolate fanout

* ci: re-enable repaired QA smoke lanes

* ci: split Crabline smoke into three shards

* ci: eliminate repeated QA smoke builds

* fix(qa): focus control ui smoke scenario

* ci(qa): remove smoke worker launch delay

* ci(qa): bound automatic smoke coverage
2026-07-10 09:48:40 -07:00
Shakker 65e12328aa feat: refactor the Control UI architecture
Refactor the Control UI around route-owned page lifecycle and state while preserving existing behavior and design.

Prepared head SHA: bd51b6fa76
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-07-04 23:19:38 +01:00
Dallin Romney 3b4092dbaa test: add executable runtime fixture canaries (#99737)
* test(qa): add runtime fixture canaries

* test(voice-call): track fixture temp directories
2026-07-03 20:22:40 -07:00
Dallin Romney 677c8ff846 improve: enforce canonical QA scenario ownership (#99628)
* improve: enforce canonical QA scenario ownership

* docs: refresh QA documentation map

* docs: condense QA ownership guidance

* docs: remove QA migration guidance

* refactor: simplify QA scenario ownership checks

* docs: align QA coverage authoring guidance
2026-07-03 15:51:18 -07:00
Dallin Romney 24ce672e06 refactor(qa): use transport-native actions in flow scenarios (#97962)
* Add QA channel scenario driver contracts

* Route DM baseline through channel scenario driver

* Simplify channel behavior flow runtime helper

* test(qa): use native YAML for DM channel scenario

* test(qa): add conversation flow action

* test(qa): break channel scenario import cycle

* test(qa): fix channel scenario lint

* Unify QA channel scenario transport adapter

* Fix QA transport test type expectations

* refactor(qa): use native transport flow actions

* test(qa): derive direct reply session from transport
2026-07-01 11:39:06 -07:00
Dallin Romney 78f7de01c1 test: link local e2e qa coverage wrappers (#97150) 2026-06-27 18:34:36 -07:00
Vincent Koc def4b51485 fix(qa): gate smoke profile scenarios by channel driver 2026-06-23 09:34:52 +08:00
Vincent Koc 7cc21ef59d fix(qa): stabilize smoke-ci scenarios 2026-06-22 15:41:53 +08:00
Dallin Romney e12cf72b17 Standardize QA coverage IDs on dotted names (#94702)
* fix: standardize qa coverage ids

* test: avoid qa coverage id assertion spread
2026-06-18 17:25:26 -07:00
Colin Johnson d5a27b0b96 test: add QA Lab UX Matrix evidence scenario (#94306)
* test: add qa lab ux matrix script scenario

* fix(qa-lab): annotate UX Matrix producer catch callback as unknown for oxlint

---------

Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2026-06-18 14:10:06 -07:00
Dallin Romney 450060d7a2 test(qa): expand smoke-ci and release categories and coverage (#93175)
* test(qa): add smoke ci primary coverage evidence

* test(qa): remove overstated primary coverage claims

* test(qa): make release profile include smoke ci

* test(qa): trim taxonomy formatting churn

* test(qa): avoid hardcoded profile names in coverage test

* test(qa): make release profile cover taxonomy

* test(qa): type profile fixture all category flag

* test(qa): include channel delivery in smoke ci profile
2026-06-15 18:05:52 -07:00
Dallin Romney fef8394079 Convert QA scenarios to YAML files (#92915)
* refactor: load QA scenarios from YAML

* docs: update personal QA scenario docs

* test: keep QA scenarios YAML-only
2026-06-14 17:31:18 -07:00
Dallin Romney 561b293c7a Run Vitest and Playwright scenarios from qa suite (#92606)
* test(qa): run vitest and playwright scenarios from qa suite

* fix(qa): harden scenario suite dispatch

* refactor(qa): share scenario path utilities

* refactor(qa): share test file scenario runner

* refactor(qa): route test file scenarios through suite runtime

* refactor(qa): use explicit suite runtime result kind

* test(qa): write suite evidence artifact

* refactor(qa): clarify suite execution dispatch

* fix(qa): keep test-file scenarios out of flow-only runners

* refactor(qa): export mixed scenario suite runner
2026-06-13 01:06:10 -07:00
Vincent Koc 14198a1c66 fix(qa): close remaining mock qa e2e regressions 2026-05-27 10:06:08 +02:00
Peter Steinberger 9e149519fe fix: keep control ui bundle browser-safe 2026-04-25 09:22:49 +01:00