Skip to content

test: TKT-305 CI control probe (no-op) - #1

Closed
sepo-eng wants to merge 2 commits into
devfrom
tkt-305-ci-control-test
Closed

test: TKT-305 CI control probe (no-op)#1
sepo-eng wants to merge 2 commits into
devfrom
tkt-305-ci-control-test

Conversation

@sepo-eng

Copy link
Copy Markdown

Control experiment for TKT-305 (CI/review baseline on fork PRs). No functional change — appends a comment to CONTEXT.md. Verifying which upstream workflows actually fire and produce check-runs on a PR against this fork. Will close/delete after evidence is captured.

@github-actions

Copy link
Copy Markdown

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions

Copy link
Copy Markdown

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@sepo-eng

Copy link
Copy Markdown
Author

Control experiment for TKT-305 complete — evidence captured (blacksmith runners confirmed stuck queued, GitHub-hosted confirmed working). Closing this throwaway probe.

@sepo-eng
sepo-eng deleted the tkt-305-ci-control-test branch August 10, 2026 13:56
sepo-eng added a commit that referenced this pull request Aug 13, 2026
…T-411) (#49)
* fix(app): guard shell settings against a non-array resource value (TKT-411)
Sean's live gate walk / feedback anomalyco#202: opening the settings-v2 dialog could
crash the whole app (app-root ErrorBoundary swallows the window) with
"input.shells.reduce is not a function". Root-caused to two independent
defects, both fixed:
1. e2e/utils/mock-server.ts modeled `/api/pty/shells`, but the app calls
the real bare V1 endpoint `/pty/shells` (confirmed: no `/api/pty/shells`
exists in packages/sdk/openapi.json). Every request fell through to the
fixture's generic fallback, returning a bare `{}` -- not caught by
`?? []`. 100% deterministic, not timing-dependent: a normal (wait for
app-visible, then open settings) flow crashed identically. No existing
spec caught it because none opens the General tab under v1 protocol.
Also fixed the response body shape while at it -- the real endpoint
returns a bare array, not the `{location, data}` envelope most other
endpoints in this fixture use.
2. A genuine, separate timing defect (the ticket's original theory,
confirmed real independent of #1 via delete-the-fix): opening the
dialog before the app finishes its own startup still crashes even with
a correct array response. Guarded at the source in
general-controllers.ts, widened from a bare `?? []` to
`Array.isArray(...) ? ... : []` -- #1 proved "guard only undefined"
isn't sufficient against every wrong shape a response can take.
New regression spec asserts both are fixed together; delete-the-fix
verified against a 3-configuration matrix (each fix independently
necessary, neither alone sufficient).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1CJmqai46ihahdKMVNB27
* docs(app): correct the overstated race claim on TKT-411's regression spec
Henry's review: re-running my delete-the-fix matrix with a genuinely fresh
dev server per configuration (mine had reuseExistingServer contamination
between arms) shows the committed test discriminates only the mock-server.ts
fixture bug -- fixing that alone is sufficient to pass, with or without the
general-controllers.ts guard. My original comment's "confirmed by delete-
the-fix" claim for an independent timing race was not actually demonstrated
by this test.
Softened to state exactly what's proven (the fixture bug, deterministically)
versus what's reasoned-but-undemonstrated (the controller guard, kept as a
defensible "prefer unrepresentable" improvement per the ticket's own fix
shape, not backed by a red/green in this file).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1CJmqai46ihahdKMVNB27
* fix(app): wait for app-visible before opening settings in TKT-411's regression spec
Henry's review: the spec's immediate Control+, fire (a leftover from the
retracted timing-race hypothesis) is itself flaky on a cold server --
CI's own configuration, reuseExistingServer: false -- failing ~2/3 runs
and only appearing green in CI because retries:2 absorbed it. Root cause:
firing the shortcut before the app finishes booting races app startup
itself, independent of anything this PR is about.
Fixed to expectAppVisible before the keypress, matching the established
pattern (settings-skills-catalog.spec.ts, remote-session-settings.spec.ts).
Reverified deterministic in both directions with a genuinely fresh dev
server (port-listener checked, not assumed) per run: 4/4 pass on fixed
code, 3/3 fail on pristine code, no retries needed either way.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1CJmqai46ihahdKMVNB27
---------
Co-authored-by: opencode <bot@opencode.ai>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@sepo-eng