Skip to content

test(webui): use the live extension id in the notification-setup boundary test - #8058

Merged
henrypark133 merged 1 commit into
mainfrom
fix/web-push-test-vocabulary
Sep 3, 2026
Merged

henrypark133 merged 1 commit into
mainfrom
fix/web-push-test-vocabulary

Conversation

@henrypark133

Copy link
Copy Markdown
Collaborator

Summary

  • main has failed Tests (Reborn) since 666ebcbf0 (refactor(webui): type and validate frontend API boundaries #8038): its new api-boundary.test.ts used "web-push" as an arbitrary example extension id, and the architecture gate retired_web_push_spelling_stays_at_zero_occurrences pins that retired spelling (renamed to web-app in refactor(channels): normalize ingress and split reply from delivery #7477) at zero outside the persisted-compat allowlist.
  • Rename the two occurrences to "web-app". The function under test interpolates any id verbatim and has no channel-specific logic, so the string carries no persisted or compat meaning — renaming is correct; widening the allowlist would defeat its shrink-only invariant.

Change Type

  • Bug fix

Linked Issue

None — CI regression on main; no issue was filed for it.

Validation

  • cargo test -p ironclaw_architecture_tests retired_web_push_spelling_stays_at_zero_occurrences — green with this change applied on the feat(loop): derive the prompt context budget from the model's advertised window #8053 branch (which merged main and inherited the failure); red without it.
  • Frontend unit test file still passes (pnpm vitest run src/lib/api-boundary.test.ts) — the assertion is about a malformed response, not the id.
  • Not applicable: no runtime, DB, or provider behavior touched.

Test Strategy

User behavior: none — test fixture string only.

Risk areas: none.

Tests added or updated:

  • Unit or contract: api-boundary.test.ts fixture id web-push → web-app (2 lines). Reason: the gate requires the live spelling; the test's assertion is unchanged.
  • Reborn integration / Recorded fixture / Browser E2E / Backend or runtime / Live canary: Not applicable: fixture string in an existing unit test.

What the tests prove: the architecture gate passes again on main; the boundary test still rejects a malformed enabled: "yes" response.

Commands run: see Validation.

Security Impact

None.

Reborn Trust-Boundary Checklist

N/A — test fixture string.

Database Impact

None.

Blast Radius

One frontend unit-test file. Unblocks Tests (Reborn) for every PR that merges current main.

Rollback Plan

Revert the commit.

Review Follow-Through

Same commit is cherry-picked onto #8053 so its CI is green now; when this lands, that commit becomes a no-op at merge.


Review track: A (test fix)

🤖 Generated with Claude Code

…dary test

#8038 added api-boundary.test.ts with "web-push" as an arbitrary example
extension id. That spelling was retired for "web-app" in #7477 and the
architecture gate retired_web_push_spelling_stays_at_zero_occurrences pins
it at zero outside the persisted-compat allowlist, so main has been red on
Tests (Reborn) since 666ebcb. The string carries no persisted or compat
meaning (the function under test interpolates any id verbatim), so rename
rather than widen the allowlist.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6JWfzEzWKThikJ9wsHAer
Copilot AI lite review requested due to automatic review settings September 3, 2026 20:20
@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-8058 September 3, 2026 20:20 Destroyed
@railway-app

railway-app Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the ironclaw-pr-8058 environment in ironclaw-ci-preview

Service Status Web Updated
ironclaw ✅ Success (View Logs) Web Sep 3, 2026 at 8:32 pm UTC

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-03T20:23:44.099182Z 18c95e2 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added size: XS < 10 changed lines (excluding docs) risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Sep 3, 2026

Copilot AI 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.

🟢 Approval recommended

The change is a narrow, verified test-fixture string correction that aligns with the enforced extension-id spelling and does not alter runtime behavior.

Pull request overview

Fixes a frontend unit-test fixture in ironclaw_webui so it uses the live Web App extension id (web-app) instead of the retired web-push spelling, unblocking the architecture gate that enforces zero occurrences of the old identifier.

Changes:

  • Update the mocked notification-setup API response fixture to return extension_id: "web-app".
  • Update the test invocation to call getNotificationSetupStatus with extensionId: "web-app".
File summaries
File Description
crates/product/ironclaw_webui/frontend/src/lib/api-boundary.test.ts Replaces a retired extension id string in a notification-setup boundary test fixture to satisfy the architecture “zero occurrences” gate.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: d11666ea-3b57-46fd-bda3-b350b19d527a

📥 Commits

Reviewing files that changed from the base of the PR and between 67331df and 18c95e2.

📒 Files selected for processing (1)
  • crates/product/ironclaw_webui/frontend/src/lib/api-boundary.test.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Tests
    • Updated notification setup validation coverage to use the web-app extension identifier.

Walkthrough

The notification setup validation test now uses web-app instead of web-push in the mocked response and request.

Changes

Notification setup validation

Layer / File(s) Summary
Update notification setup test fixture
crates/product/ironclaw_webui/frontend/src/lib/api-boundary.test.ts
The malformed response test uses web-app for extension_id and the request. The invalid enabled value and rejection assertion remain unchanged.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 18c95

The notification setup boundary test now uses the current extension identifier while retaining its malformed-response validation. No production behavior changes, and the update is ready to merge.

Suggested reviewers: italic-jinxin

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title follows the preferred Conventional Commits format and accurately describes the test fixture update from the retired extension ID to the live ID.
Description check ✅ Passed The description is complete and relevant. It covers the summary, change type, linked issue, validation, test strategy, security, trust-boundary, database, blast-radius, rollback, follow-through, and r…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description is complete and relevant. It covers the summary, change type, linked issue, validation, test strategy, security, trust-boundary, database, blast-radius, rollback, follow-through, and review track. It also identifies the violated zero-occurrence architecture invariant and explains why the fixture rename is safe.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ironloopai

ironloopai Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Review · Status

🟩 Completed

IronLoop completed the review and posted it to GitHub.

Result

Open submitted review →

Run details
  • Run: 6c88f59a-6234-45e6-9f51-40e6a417cbf1
  • Base: main at 67331df
  • Head: fix/web-push-test-vocabulary at 18c95e2
  • Created: 2026-09-03 20:25 UTC
  • Updated: 2026-09-03 20:31 UTC

Automatic trigger · attempt 1 of 3 · completed in 5m 29s

@ironloopai ironloopai 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.

Review · Summary

🟢 No actionable findings

No actionable findings. The fixture now consistently uses the live extension ID while preserving the malformed-response boundary assertion.

Validation
  • ✅ Frontend boundary test — The notification-setup boundary test passed (4 tests).
  • ✅ Retired-identifier architecture gate — The gate confirming no unsanctioned retired extension spelling passed.
  • ✅ Diff inspection — The changed patch has no whitespace errors.
Review details
  • Run: 6c88f59a-6234-45e6-9f51-40e6a417cbf1
  • Attempts: 1

@lloydmak99 lloydmak99 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Straightforward two-line test fixture rename (web-push → web-app) to use the live extension id. The assertion in api-boundary.test.ts:93-109 is driven by the enabled/requires_setup type checks in decodeNotificationSetupStatus; the extension id is interpolated verbatim and never branched on, so the rename can't change behavior. The retired-vocabulary architecture gate confirms api-boundary.test.ts is not in its allowlist, so the old spelling was a genuine violation and web-app is the correct id.

No blocking issues found.

Checks: pnpm vitest run --project unit src/lib/api-boundary.test.ts passed (4 tests); git diff --check passed. The architecture gate couldn't compile locally (linker cc unavailable) but passed in CI.

@henrypark133
henrypark133 added this pull request to the merge queue Sep 3, 2026
Merged via the queue into main with commit be58f83 Sep 3, 2026
42 checks passed
@henrypark133
henrypark133 deleted the fix/web-push-test-vocabulary branch September 3, 2026 21:02

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-8058 — 18c95e28 Deployed Sep 3, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: low Changes to docs, tests, or low-risk modules size: XS < 10 changed lines (excluding docs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants