Skip to content

test(stack): capture reopened stack failure diagnostics - #6687

Merged
jgoux merged 2 commits into
developfrom
test/stack-reopen-diagnostics
Sep 21, 2026
Merged

jgoux merged 2 commits into
developfrom
test/stack-reopen-diagnostics

Conversation

@jgoux

@jgoux jgoux commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

After a stack is reopened, its E2E log subscriptions can connect before the detached owner starts and silently stop, leaving failure reports with only logs from the previous run. Attach them after the owner starts and include service health, wake status, and the last error in failure diagnostics.

Test fixtures only; runtime behavior is unchanged. Follow-up to #6684.

@jgoux
jgoux requested a review from a team as a code owner September 21, 2026 12:58
@jgoux jgoux self-assigned this Sep 21, 2026
Base automatically changed from feat/stack-greenfield-runtime to develop September 21, 2026 12:59
@jgoux
jgoux force-pushed the test/stack-reopen-diagnostics branch from 7f53cf4 to ff74573 Compare September 21, 2026 13:03

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Review

Codex reported no findings. Claude reported three low-severity diagnostic gaps, all confirmed by the checked-out code. They affect whole-stack test failure observability rather than production behavior: log-stream failures are discarded, stop diagnostics omit available status details, and status-query failures omit their causes.

Findings

Severity Location Category Sources Claim
🟡 MINOR packages/stack/tests/whole-stack/fixture.ts:74 observability claude Log-watch fibers discard subscription failures, so a failed log subscription can leave an empty diagnostic tail without explaining why.
⚪ NIT packages/stack/tests/whole-stack/fixture.ts:221 observability claude When a status RPC fails, the fallback emits only service=unknown and discards the failure cause.
⚪ NIT packages/stack/tests/whole-stack/scenarios.ts:159 observability claude Stop-path diagnostics report only lifecycle from each service status, omitting health, wakeEnabled, and error details available in the same observation.

Findings outside the diff

  • 🟡 MINOR packages/stack/tests/whole-stack/fixture.ts:74 — Log-watch fibers discard subscription failures, so a failed log subscription can leave an empty diagnostic tail without explaining why.
  • ⚪ NIT packages/stack/tests/whole-stack/scenarios.ts:159 — Stop-path diagnostics report only lifecycle from each service status, omitting health, wakeEnabled, and error details available in the same observation.

Stats

Claude findings: 3 · Codex findings: 0 · Confirmed: 3 · Refuted: 0 · Uncertain: 0


Models: claude-opus-5 + gpt-5.6-sol · Trigger: auto · Workflow run

This review runs once per PR. A maintainer can request another with a /ai-review comment.

@jgoux

jgoux commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor Author

All three findings are now addressed in 813b821, superseding the earlier deferrals:

  • Log-stream failures report a service-specific message and their cause. Interruption-only teardown remains quiet.
  • Failed status queries include their cause while retaining observations for other services.
  • Stop diagnostics include lifecycle, health, wake status, and the last service error, and still propagate the original stop failure.

Formatting, generic and Effect lint, and stack type checks passed. The native default lifecycle/reopen E2E passed with no log-stream error noise during normal teardown. The earlier parallel run was interrupted before its configured timeout and is not counted as a passing validation.

@jgoux
jgoux added this pull request to the merge queue Sep 21, 2026
Merged via the queue into develop with commit c3b9f65 Sep 21, 2026
21 checks passed
@jgoux
jgoux deleted the test/stack-reopen-diagnostics branch September 21, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants