Skip to content

Comments

Consolidate UI diagrams, deploy deps, and version policy#18

Merged
venikman merged 15 commits intomainfrom
consolidate/updates
Jan 15, 2026
Merged

Consolidate UI diagrams, deploy deps, and version policy#18
venikman merged 15 commits intomainfrom
consolidate/updates

Conversation

@venikman
Copy link
Owner

@venikman venikman commented Jan 15, 2026

Summary

  • Add dependency version policy requiring latest stable checks
  • Install Node + UI deps before Deno Deploy UI builds
  • Remove protocol bakeoff diagrams (cleanup)

Testing

  • deno task lint
  • deno task fmt:check
  • CI passes all checks

Release Prep

  • Release notes summary: Version policy docs, CI workflow updates, UI cleanup
  • Rollout plan: Standard merge to main, auto-deploy via GitHub Actions
  • Rollback plan: Revert PR if issues arise
  • Flags/migrations: N/A - no feature flags or migrations

Summary by CodeRabbit

  • New Features

    • Improved accessibility: submit button preserves explicit text labels and supplies a sensible default aria-label for screen readers.
  • Chores

    • CI and deploy pipelines consolidated to a Deno-based runtime; UI dependency install steps added to deploy and CI flows.
    • Playwright UI tests updated to run via the new CI flow.
    • Added a dependency version policy to documentation.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 15, 2026 17:30
@continue
Copy link

continue bot commented Jan 15, 2026

All Green - Keep your PRs mergeable

Learn more

All Green is an AI agent that automatically:

✅ Addresses code review comments

✅ Fixes failing CI checks

✅ Resolves merge conflicts


Unsubscribe from All Green comments

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

Warning

Rate limit exceeded

@venikman has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 15 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between fd4e3df and d96628c.

📒 Files selected for processing (3)
  • .github/workflows/ci.yaml
  • .github/workflows/deploy.yaml
  • src/ui/package.json

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Workflows shifted from multi-runtime to Deno-centric, adding conditional UI dependency installation steps in deploy workflows; CI and deploy workflows were substantially rewritten for Deno. Added a dependency version policy in AGENTS.md. Minor UI package.json reordering. PromptInputSubmit now accepts an "aria-label" prop and computes a resolved aria-label.

Changes

Cohort / File(s) Summary
CI & Playwright workflows
​.github/workflows/ci.yaml
Replaced multi-runtime CI with a Deno-first flow: switched setup steps, caching, test/build commands, and Playwright e2e orchestration to Deno-based commands and deno task usage.
Deploy & Staging workflows
​.github/workflows/deploy-deno.yml, ​.github/workflows/deploy-staging.yml, ​.github/workflows/deploy.yaml
Added conditional "Install UI dependencies" step after Setup Deno (checks src/ui/package.json and runs cd src/ui && deno install --node-modules-dir --allow-scripts), and converted deploy pipelines to Deno tooling (removed .NET/Bun envs/steps).
Docs / Policy
AGENTS.md
Added "Dependency Version Policy" requiring verification/documentation when adding/updating dependencies or tooling versions.
UI metadata
src/ui/package.json
Minor reordering of the shiki dependency entry (version unchanged).
UI component accessibility
src/ui/src/components/ai-elements/prompt-input.tsx
PromptInputSubmit now accepts an "aria-label" prop, computes resolvedAriaLabel considering text children, and applies it (defaults to "Submit" only when no visible text label).

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions
    participant Deno as Deno
    participant UI as src/ui (package scripts)
    participant Playwright as Playwright/Browsers

    GH->>Deno: Setup Deno runtime
    GH->>UI: Check `src/ui/package.json`
    alt UI package exists
        GH->>UI: Run `cd src/ui && deno install --node-modules-dir --allow-scripts`
        GH->>UI: Run `deno task ui:build` or fallback build
    end
    GH->>Playwright: Install browsers / run e2e
    GH->>GH: Collect results / proceed to deploy
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐇 I hopped through workflows with nimble feet,
Swapped runtimes to Deno, kept the build neat,
Dependencies checked, policies penned,
A label refined — accessibility friend. ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title references consolidating UI diagrams, deploying dependencies, and a version policy, which aligns with the actual changes including workflow updates, dependency management, and new AGENTS.md policy documentation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

@gemini-code-assist
Copy link

Summary of Changes

Hello @venikman, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request consolidates several key aspects of the project's development and documentation. It introduces a formal dependency versioning policy to maintain consistency and security across the codebase. Furthermore, it refines the UI build process for Deno Deploy by ensuring necessary Node.js and UI dependencies are installed upfront. A significant user interface enhancement is also included, allowing for the dynamic rendering of protocol diagrams using Mermaid and presenting a detailed comparison matrix directly within the application, offering a more comprehensive and interactive understanding of different architectural approaches.

Highlights

  • Dependency Version Policy: A new policy has been documented in AGENTS.md to ensure that all new or updated dependencies, tooling actions, and package versions are checked against their latest stable releases from official sources.
  • UI Build Process Enhancement: The UI build process for Deno Deploy now includes explicit steps to install Node.js and UI dependencies, streamlining the deployment workflow and ensuring all necessary components are in place.
  • Mermaid Diagram Integration: The UI now features interactive Mermaid diagrams to visually represent various protocol bakeoff scenarios (Streamdown, A2UI, MCP, json-render), enhancing clarity and understanding of complex architectural flows.
  • Protocol Comparison Matrix: A new comparison matrix has been added to the UI, providing a structured overview of different protocol dimensions (Transport, User input, Rendering, Security) for Streamdown, A2UI, MCP, and json-render, facilitating easier evaluation.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/deploy-deno.yml
    • .github/workflows/deploy-staging.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new dependency versioning policy, adds support for rendering Mermaid diagrams in the UI, and updates dependencies accordingly. The changes are well-structured. The new MermaidDiagram component is a great addition for visualizing protocol flows.

My review includes a couple of suggestions for the MermaidDiagram component to improve its robustness and maintainability:

  • Using nanoid for generating unique IDs instead of Math.random().
  • Enhancing error logging to aid in debugging diagram rendering issues.

Overall, this is a solid contribution that improves the developer experience and documentation within the UI.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR consolidates protocol visualization in the UI, ensures build dependencies are installed before deployment, and establishes a repository-wide version policy for dependencies.

Changes:

  • Added dependency version policy requiring latest stable version checks before adding/updating dependencies
  • Modified deployment workflows to install Node.js and UI dependencies before building for Deno Deploy
  • Implemented Mermaid diagram rendering in the UI with protocol comparison matrices for Streamdown, A2UI, MCP, and json-render

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
AGENTS.md Added dependency version policy section
.github/workflows/deploy-deno.yml Added Node.js setup and UI dependency installation steps
.github/workflows/deploy-staging.yml Added Node.js setup and UI dependency installation steps
src/ui/package.json Added mermaid dependency (v11.12.2)
src/ui/package-lock.json Lock file updates for mermaid and transitive dependencies
src/ui/src/styles.css Added responsive styling for mermaid diagrams
src/ui/src/components/mermaid-diagram.tsx New component for rendering Mermaid diagrams with theme support
src/ui/src/content/protocol-bakeoff.ts New file with protocol diagrams and comparison matrix data
src/ui/src/App.tsx Integrated protocol bakeoff section with diagrams and comparison table
Files not reviewed (1)
  • src/ui/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/deploy-staging.yml:
- Around line 24-32: The CI workflow uses actions/setup-node@v4 and
node-version: "20" in the "Setup Node" step; update that step to use
actions/setup-node@v6 and set node-version: "24" so the job runs on the current
Active LTS. Locate the "Setup Node" job/step and change the action reference
from actions/setup-node@v4 to actions/setup-node@v6 and update the node-version
value from "20" to "24" (keep existing cache and cache-dependency-path
settings).
🧹 Nitpick comments (3)
src/ui/src/App.tsx (1)

617-687: Consider adding table accessibility attributes and Playwright tests.

The Protocol Bakeoff section is well-structured and follows existing patterns. Two observations:

  1. Accessibility: Add scope attributes to table headers for better screen reader support:
♻️ Suggested accessibility improvement
-                        <th className="pb-2 pr-4">Dimension</th>
-                        <th className="pb-2 pr-4">Streamdown (A)</th>
-                        <th className="pb-2 pr-4">A2UI (B)</th>
-                        <th className="pb-2 pr-4">MCP (C)</th>
-                        <th className="pb-2">json-render (D)</th>
+                        <th scope="col" className="pb-2 pr-4">Dimension</th>
+                        <th scope="col" className="pb-2 pr-4">Streamdown (A)</th>
+                        <th scope="col" className="pb-2 pr-4">A2UI (B)</th>
+                        <th scope="col" className="pb-2 pr-4">MCP (C)</th>
+                        <th scope="col" className="pb-2">json-render (D)</th>
  1. Testing: As per coding guidelines, UI changes in src/ui/** should include Playwright tests. Please add tests covering the diagram grid rendering and the comparison matrix table.
src/ui/src/components/mermaid-diagram.tsx (1)

21-61: Add unit tests for the MermaidDiagram component.

As per coding guidelines, logic changes should include unit tests. Consider adding tests covering:

  • Successful diagram rendering
  • Error fallback display when diagram code is invalid
  • Theme switching behavior
  • Title/subtitle conditional rendering
src/ui/src/content/protocol-bakeoff.ts (1)

147-176: Consider adding a type for the protocol matrix.

The matrix data is well-organized. For better type safety and discoverability, consider adding an explicit type:

♻️ Optional type annotation
+type ProtocolMatrixRow = {
+  dimension: string;
+  streamdown: string;
+  a2ui: string;
+  mcp: string;
+  jsonRender: string;
+};
+
-export const protocolMatrix = [
+export const protocolMatrix: ProtocolMatrixRow[] = [
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f2c81b2 and 40a8d44.

⛔ Files ignored due to path filters (1)
  • src/ui/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (8)
  • .github/workflows/deploy-deno.yml
  • .github/workflows/deploy-staging.yml
  • AGENTS.md
  • src/ui/package.json
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
  • src/ui/src/content/protocol-bakeoff.ts
  • src/ui/src/styles.css
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Include unit tests for all logic changes

Files:

  • src/ui/src/content/protocol-bakeoff.ts
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
**/src/ui/**/*.{ts,tsx,jsx,js}

📄 CodeRabbit inference engine (AGENTS.md)

**/src/ui/**/*.{ts,tsx,jsx,js}: Include Playwright tests for all UI changes
Use Figma for design context; reference design tokens and specs from Figma in UI component files

Files:

  • src/ui/src/content/protocol-bakeoff.ts
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
{AGENTS.md,.agents/roles.yaml,.codex/skills/**,docs/adr/**}

📄 CodeRabbit inference engine (AGENTS.md)

Keep AGENTS.md file concise at under 200 lines; push detailed documentation into skills in .codex/skills/, role definitions in .agents/roles.yaml, and decision records in docs/adr/

Files:

  • AGENTS.md
**/AGENTS.md

📄 CodeRabbit inference engine (AGENTS.md)

Subdirectories may override root AGENTS.md rules with their own AGENTS.md files; use nearest AGENTS.md for scope precedence

Files:

  • AGENTS.md
🧠 Learnings (5)
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Use Figma for design context; reference design tokens and specs from Figma in UI component files

Applied to files:

  • src/ui/src/content/protocol-bakeoff.ts
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Include Playwright tests for all UI changes

Applied to files:

  • src/ui/src/App.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/AGENTS.md : Subdirectories may override root AGENTS.md rules with their own AGENTS.md files; use nearest AGENTS.md for scope precedence

Applied to files:

  • AGENTS.md
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Deploy only through GitHub Actions pipelines; no manual production deploys allowed

Applied to files:

  • AGENTS.md
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Use Deno as the primary runtime for scripts, tooling, and TypeScript code

Applied to files:

  • AGENTS.md
🧬 Code graph analysis (2)
src/ui/src/App.tsx (2)
src/ui/src/content/protocol-bakeoff.ts (2)
  • protocolDiagrams (8-145)
  • protocolMatrix (147-176)
src/ui/src/components/mermaid-diagram.tsx (1)
  • MermaidDiagram (21-87)
src/ui/src/components/mermaid-diagram.tsx (1)
src/ui/src/lib/utils.ts (1)
  • cn (4-6)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Playwright Tests
  • GitHub Check: Agent
🔇 Additional comments (9)
src/ui/src/styles.css (1)

138-142: LGTM!

The responsive SVG styling is appropriate for Mermaid diagrams. Using max-width: 100% and height: auto ensures diagrams scale correctly across viewport sizes while maintaining aspect ratio.

AGENTS.md (1)

17-23: Well-structured policy addition.

The Dependency Version Policy is clear and actionable. It appropriately scopes to npm, Deno, and GitHub Actions, and the requirement to document deviations in PR summaries ensures traceability. File remains within the 200-line limit per coding guidelines.

.github/workflows/deploy-deno.yml (1)

24-32: Consistent with staging workflow—good practice.

The Node setup and UI dependency installation mirror deploy-staging.yml, ensuring parity between environments. The same version verification comments from the staging workflow apply here.

src/ui/package.json (1)

33-33: No action needed. The mermaid version ^11.12.2 is the latest stable release and already compliant with dependency versioning requirements.

src/ui/src/App.tsx (1)

37-42: LGTM!

The imports are correctly structured, bringing in the new MermaidDiagram component and the protocol bakeoff data. The named imports align with the exports from the respective modules.

src/ui/src/components/mermaid-diagram.tsx (2)

34-61: LGTM on the rendering effect.

The async rendering pattern with the cancelled flag correctly prevents updates after unmount. The securityLevel: "strict" configuration is appropriate for rendering user-facing diagrams.


63-86: LGTM!

The component structure is clean, with appropriate conditional rendering for optional title/subtitle and proper overflow handling for wide diagrams.

src/ui/src/content/protocol-bakeoff.ts (2)

1-6: LGTM!

The ProtocolDiagram type is well-defined with clear, required fields that match the component's props interface.


8-145: LGTM!

The diagram definitions are well-structured with unique IDs, descriptive titles, and valid Mermaid syntax. The overview flowchart and sequence diagrams provide clear visual documentation of the protocol scenarios.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@venikman
Copy link
Owner Author

Addressed review feedback + ensured Playwright passes:

  • Mermaid renderer now uses per-render nanoid IDs, logs render errors with details, and initializes only on theme changes.
  • Dependency policy clarifies when staying off latest is acceptable.
  • Setup Node bumped to v6.2.0 + Node 24 in deploy workflows; Playwright job now installs UI deps and builds UI before tests.
  • PromptInputSubmit keeps visible label as accessible name when text is present.

Tests:

  • deno task lint
  • deno task fmt:check
  • deno task ui:build
  • deno task test:e2e

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
src/ui/src/components/mermaid-diagram.tsx (1)

1-69: Add Playwright tests and unit tests for MermaidDiagram component.

The implementation correctly:

  • Uses nanoid for unique render IDs (line 40)
  • Separates mermaid.initialize into its own effect dependent only on theme (lines 31-36)
  • Generates a fresh renderId inside the render effect to satisfy mermaid's "never reused ID" requirement
  • Logs detailed error context to console (lines 50-54)
  • Implements proper cleanup with cancelled flag

However, per coding guidelines, UI components in src/ui/ require Playwright tests for all UI changes, and logic changes require unit tests. Add tests covering:

  • Diagram rendering with valid and invalid Mermaid syntax
  • Theme switching behavior
  • Error handling and display
  • Component cleanup and cancellation logic
🧹 Nitpick comments (3)
.github/workflows/ci.yaml (1)

179-190: Use working-directory for consistency with other jobs in the workflow.

The cd src/ui && npm ci pattern works, but using working-directory would be more consistent with other jobs in this workflow (e.g., the bun job).

Suggested improvement
      - name: Install UI dependencies
-       run: cd src/ui && npm ci
+       working-directory: src/ui
+       run: npm ci
src/ui/src/components/mermaid-diagram.tsx (1)

15-20: Consider typing securityLevel explicitly.

The securityLevel: "strict" is a string literal, but mermaid's SecurityLevel type expects specific values. While "strict" is valid, explicitly typing the config object ensures type safety if mermaid's API changes.

🔧 Optional: Add type annotation
+import type { MermaidConfig } from "mermaid";
+
-const mermaidConfig = {
+const mermaidConfig: MermaidConfig = {
   startOnLoad: false,
   securityLevel: "strict",
   flowchart: { curve: "basis" },
   sequence: { showSequenceNumbers: false },
 };
src/ui/src/App.tsx (1)

805-839: Table accessibility could be enhanced with scope attributes.

The comparison matrix table uses semantic thead/tbody but header cells would benefit from explicit scope attributes for screen reader clarity.

♿ Optional: Add scope attributes to table headers
 <thead>
   <tr className="border-b border-border text-left text-xs uppercase tracking-[0.2em] text-muted-foreground">
-    <th className="pb-2 pr-4">Dimension</th>
-    <th className="pb-2 pr-4">Streamdown (A)</th>
-    <th className="pb-2 pr-4">A2UI (B)</th>
-    <th className="pb-2 pr-4">MCP (C)</th>
-    <th className="pb-2">json-render (D)</th>
+    <th scope="col" className="pb-2 pr-4">Dimension</th>
+    <th scope="col" className="pb-2 pr-4">Streamdown (A)</th>
+    <th scope="col" className="pb-2 pr-4">A2UI (B)</th>
+    <th scope="col" className="pb-2 pr-4">MCP (C)</th>
+    <th scope="col" className="pb-2">json-render (D)</th>
   </tr>
 </thead>
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 859ad24 and 95dbc66.

📒 Files selected for processing (7)
  • .github/workflows/ci.yaml
  • .github/workflows/deploy-deno.yml
  • .github/workflows/deploy-staging.yml
  • AGENTS.md
  • src/ui/src/App.tsx
  • src/ui/src/components/ai-elements/prompt-input.tsx
  • src/ui/src/components/mermaid-diagram.tsx
🚧 Files skipped from review as they are similar to previous changes (3)
  • .github/workflows/deploy-deno.yml
  • AGENTS.md
  • .github/workflows/deploy-staging.yml
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Include unit tests for all logic changes

Files:

  • src/ui/src/components/ai-elements/prompt-input.tsx
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
**/src/ui/**/*.{ts,tsx,jsx,js}

📄 CodeRabbit inference engine (AGENTS.md)

**/src/ui/**/*.{ts,tsx,jsx,js}: Include Playwright tests for all UI changes
Use Figma for design context; reference design tokens and specs from Figma in UI component files

Files:

  • src/ui/src/components/ai-elements/prompt-input.tsx
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
🧠 Learnings (3)
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Include Playwright tests for all UI changes

Applied to files:

  • .github/workflows/ci.yaml
  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/e2e/**/*.{ts,js,spec.ts,spec.js} : Use Playwright for browser automation in UI testing and bug reproduction

Applied to files:

  • .github/workflows/ci.yaml
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Use Figma for design context; reference design tokens and specs from Figma in UI component files

Applied to files:

  • src/ui/src/App.tsx
  • src/ui/src/components/mermaid-diagram.tsx
🧬 Code graph analysis (1)
src/ui/src/components/mermaid-diagram.tsx (1)
src/ui/src/lib/utils.ts (1)
  • cn (4-6)
🔇 Additional comments (3)
.github/workflows/ci.yaml (1)

21-21: No action required. Node.js 24 is in Active LTS status as of January 2026 (entered Active LTS on October 28, 2025) and is a stable, production-ready choice that aligns with dependency stability policies.

Likely an incorrect or invalid review comment.

src/ui/src/App.tsx (1)

242-390: ProtocolScenarioPreview is well-structured for demo purposes.

The switch-based rendering for different protocol types is clear and maintainable. Each case returns properly structured Artifact/Plan components with appropriate styling.

Minor note: The hardcoded content (e.g., "Jordan Lee", "$132,900") is suitable for a bakeoff/demo view but should be documented if this is intended to remain static.

src/ui/src/components/ai-elements/prompt-input.tsx (1)

1044-1061: Good accessibility improvement for aria-label handling.

The logic correctly:

  1. Allows explicit aria-label override via prop
  2. Omits aria-label when visible text is present (avoiding redundancy)
  3. Defaults to "Submit" for icon-only buttons

One edge case: if children is a React element containing text (e.g., <span>Submit</span>), hasTextLabel will be false and aria-label="Submit" will be set, which is redundant but harmless.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines 768 to 843
<section id="protocol-bakeoff" className="scroll-mt-24">
<div className="space-y-4">
<div className="space-y-2">
<p className="text-xs uppercase tracking-[0.35em] text-muted-foreground">
Protocol Bakeoff
</p>
<h2 className="text-2xl font-semibold tracking-tight text-foreground md:text-3xl">
Diagrams next to the UI components
</h2>
<p className="text-sm text-muted-foreground">
Visual flow reference for Streamdown, A2UI, MCP, and
json-render.
</p>
</div>

<div className="space-y-6">
{protocolDiagrams.map((diagram) => (
<div
key={diagram.id}
className="grid gap-4 lg:grid-cols-[1.15fr_0.85fr]"
>
<MermaidDiagram
code={diagram.code}
title={diagram.title}
subtitle={diagram.subtitle}
theme={theme}
/>
<ProtocolScenarioPreview id={diagram.id} />
</div>
))}
</div>

<div className="rounded-none border border-border bg-card p-4">
<p className="text-xs font-semibold uppercase tracking-[0.3em] text-muted-foreground">
Protocol comparison matrix
</p>
<div className="mt-3 overflow-x-auto">
<table className="w-full text-sm">
<thead>
<tr className="border-b border-border text-left text-xs uppercase tracking-[0.2em] text-muted-foreground">
<th className="pb-2 pr-4">Dimension</th>
<th className="pb-2 pr-4">Streamdown (A)</th>
<th className="pb-2 pr-4">A2UI (B)</th>
<th className="pb-2 pr-4">MCP (C)</th>
<th className="pb-2">json-render (D)</th>
</tr>
</thead>
<tbody>
{protocolMatrix.map((row) => (
<tr
key={row.dimension}
className="border-b border-border/60"
>
<td className="py-2 pr-4 font-semibold text-foreground">
{row.dimension}
</td>
<td className="py-2 pr-4 text-muted-foreground">
{row.streamdown}
</td>
<td className="py-2 pr-4 text-muted-foreground">
{row.a2ui}
</td>
<td className="py-2 pr-4 text-muted-foreground">
{row.mcp}
</td>
<td className="py-2 text-muted-foreground">
{row.jsonRender}
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
</section>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# First, find and examine the App.tsx file to verify the section exists
fd -e tsx -e ts -path "*/src/ui/*" -name "App.tsx" | head -5

Repository: venikman/PromptAgent

Length of output: 232


🏁 Script executed:

#!/bin/bash
# Once we locate the file, let's examine the lines referenced (768-843)
FILE=$(find . -path "*/src/ui/*" -name "App.tsx" 2>/dev/null | head -1)
if [ -n "$FILE" ]; then
  echo "File: $FILE"
  wc -l "$FILE"
  sed -n '768,843p' "$FILE" | head -50
fi

Repository: venikman/PromptAgent

Length of output: 2407


🏁 Script executed:

#!/bin/bash
# Search comprehensively for Playwright test files related to protocol bakeoff
rg -l "protocol.*bakeoff|Protocol.*Bakeoff|protocolDiagrams|protocolMatrix" --type ts --type tsx --type js --type jsx -i . | grep -E "(test|spec|e2e)"

Repository: venikman/PromptAgent

Length of output: 91


🏁 Script executed:

#!/bin/bash
# Check the overall test structure in src/ui
find src/ui -type f \( -name "*.spec.*" -o -name "*.test.*" -o -name "*.e2e.*" \) 2>/dev/null | head -20

Repository: venikman/PromptAgent

Length of output: 46


🏁 Script executed:

#!/bin/bash
# Look for e2e test directory
fd -t d -e "e2e|__tests__|tests" . | grep -v node_modules | head -10

Repository: venikman/PromptAgent

Length of output: 46


🏁 Script executed:

#!/bin/bash
# Search for test files more broadly
find . -type f \( -name "*.spec.ts" -o -name "*.spec.tsx" -o -name "*.test.ts" -o -name "*.test.tsx" -o -name "*.e2e.ts" \) 2>/dev/null | head -30

Repository: venikman/PromptAgent

Length of output: 616


🏁 Script executed:

#!/bin/bash
# Search for any file mentioning "protocol" in test/spec context
rg "protocol.*bakeoff|protocolDiagrams|protocolMatrix" -i --glob="*.test.*" --glob="*.spec.*" --glob="*.e2e.*" 2>/dev/null

Repository: venikman/PromptAgent

Length of output: 46


🏁 Script executed:

#!/bin/bash
# Check if there's a playwright config or test setup
fd -e "playwright" -e "playwright.config" . 2>/dev/null | head -10

Repository: venikman/PromptAgent

Length of output: 46


🏁 Script executed:

#!/bin/bash
# Look for e2e or tests directories
find . -type d \( -name "e2e" -o -name "tests" -o -name "__tests__" -o -name "playwright" \) 2>/dev/null | grep -v node_modules

Repository: venikman/PromptAgent

Length of output: 83


🏁 Script executed:

#!/antml/bash
# Search entire codebase for references to protocol bakeoff in any test context
rg "protocol" . -i -l --glob="*.test.*" --glob="*.spec.*" --glob="*.e2e.*" 2>/dev/null

Repository: venikman/PromptAgent

Length of output: 92


🏁 Script executed:

#!/bin/bash
# Check git status/log to see if this is new code
git log --oneline -5 -- src/ui/src/App.tsx 2>/dev/null || echo "Git not available"

Repository: venikman/PromptAgent

Length of output: 103


🏁 Script executed:

#!/antml/bash
# Search for TODO/FIXME related to protocol tests
rg "TODO|FIXME" src/ui/src/App.tsx -A 2 -B 2

Repository: venikman/PromptAgent

Length of output: 46


🏁 Script executed:

#!/antml/bash
# Check the actual e2e test file to see test pattern
cat tests/e2e/home.spec.ts | head -50

Repository: venikman/PromptAgent

Length of output: 395


Add Playwright tests for the protocol-bakeoff section.

The UI implementation is correct: components are properly mapped, theme is passed consistently, and semantic HTML is used appropriately. However, per coding guidelines, all UI changes in src/ui/ require Playwright test coverage. Add e2e tests for the protocol-bakeoff section including diagram rendering, scenario preview interactions, and matrix table visibility/accessibility.

The protocol diagrams and comparison matrix were experimental
content that's no longer needed in the main UI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/ui/src/App.tsx`:
- Line 38: The import of Button in App.tsx is unused and triggers a
no-unused-vars error; remove the unused import statement "import { Button } from
\"./components/ui/button.tsx\";" from App (or alternatively use the Button
component in the JSX if intended) so that the unused symbol is eliminated and
the CI lint error is resolved.
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 95dbc66 and f75976a.

📒 Files selected for processing (1)
  • src/ui/src/App.tsx
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Include unit tests for all logic changes

Files:

  • src/ui/src/App.tsx
**/src/ui/**/*.{ts,tsx,jsx,js}

📄 CodeRabbit inference engine (AGENTS.md)

**/src/ui/**/*.{ts,tsx,jsx,js}: Include Playwright tests for all UI changes
Use Figma for design context; reference design tokens and specs from Figma in UI component files

Files:

  • src/ui/src/App.tsx
🧠 Learnings (5)
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Include Playwright tests for all UI changes

Applied to files:

  • src/ui/src/App.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Use Figma for design context; reference design tokens and specs from Figma in UI component files

Applied to files:

  • src/ui/src/App.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/e2e/**/*.{ts,js,spec.ts,spec.js} : Use Playwright for browser automation in UI testing and bug reproduction

Applied to files:

  • src/ui/src/App.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/*.{js,ts,jsx,tsx} : Include unit tests for all logic changes

Applied to files:

  • src/ui/src/App.tsx
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/api/**/*.{ts,tsx,js,jsx} : Include integration tests for all API changes

Applied to files:

  • src/ui/src/App.tsx
🪛 GitHub Actions: CI
src/ui/src/App.tsx

[error] 38-38: no-unused-vars: Button is never used

🪛 GitHub Check: check
src/ui/src/App.tsx

[failure] 38-38:
�[0m�[1mButton is never used

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

- Remove unused Button import from App.tsx (fixes CI lint error)
- Delete orphaned mermaid-diagram.tsx component (no longer used after
  protocol bakeoff removal)
- Remove mermaid dependency from package.json
- Clean up orphaned .mermaid-diagram CSS rules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Required for `bun install --frozen-lockfile` to work in CI
after removing mermaid dependency.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CI uses Bun, so we only need bun.lock. Having both causes
Bun to attempt migration from package-lock.json.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bun 1.1 lockfile format is incompatible with 1.3.x.
Upgrading CI to use latest stable Bun (1.3.6).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove npm cache config (package-lock.json no longer exists)
- Add setup-bun step to Playwright and deploy workflows
- Use bun install --frozen-lockfile consistently

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bun handles UI dependencies; Node not needed for deploy jobs.
Kept Node only in Playwright job where it's required.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Per AGENTS.md: Deno first, Bun second, no Node.
Playwright runs via Deno (deno run npm:@playwright/test).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove .NET from CI (no .NET code exists)
- Remove Bun, use Deno for UI deps via --node-modules-dir
- Remove bun.lock
- Single runtime: Deno 2.x

Per AGENTS.md: "Deno first" policy, no Node/Bun needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yaml:
- Line 137: The CI workflow currently sets continue-on-error: true for the
Playwright job (playwright), which lets failures pass silently; either remove
continue-on-error: true from the playwright job to make failures fail the
workflow, or keep it but add a gate check that inspects needs.playwright.result
(e.g., update the gate condition that references needs.playwright to require
needs.playwright.result == 'success') so Playwright failures will block merges
as intended.
🧹 Nitpick comments (2)
.github/workflows/deploy.yaml (2)

141-148: Verify the deno task build fallback behavior.

The fallback deno task build || npm run build may behave unexpectedly:

  • If deno task build fails (non-zero exit) rather than being undefined, the npm fallback won't run as intended.
  • Consider checking if the task exists first (similar to the grep pattern used elsewhere in this file at line 143).

The current pattern at line 143 checks for "build" in package.json, but deno task build would look for a task in deno.json, not package.json.

♻️ Suggested approach for consistent task detection
          cd "$frontend_root"
          deno install --node-modules-dir --allow-scripts

-          if grep -q '"build"' package.json; then
-            deno task build || npm run build
+          if grep -q '"build"' deno.json 2>/dev/null; then
+            deno task build
+          elif grep -q '"build"' package.json; then
+            npm run build
          else
            echo "No frontend build script configured, skipping"
            exit 0
          fi

269-269: Consider replacing hardcoded sleep with a polling mechanism.

A fixed 60-second sleep is fragile—metrics may not be available yet, or the wait may be unnecessarily long. Consider polling with a timeout or using a dedicated readiness check.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 125d422 and fd4e3df.

📒 Files selected for processing (4)
  • .github/workflows/ci.yaml
  • .github/workflows/deploy-deno.yml
  • .github/workflows/deploy-staging.yml
  • .github/workflows/deploy.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/deploy-deno.yml
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Use Deno as the primary runtime for scripts, tooling, and TypeScript code
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Use Deno as the primary runtime for scripts, tooling, and TypeScript code

Applied to files:

  • .github/workflows/ci.yaml
  • .github/workflows/deploy.yaml
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Deploy only through GitHub Actions pipelines; no manual production deploys allowed

Applied to files:

  • .github/workflows/ci.yaml
  • .github/workflows/deploy.yaml
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/e2e/**/*.{ts,js,spec.ts,spec.js} : Use Playwright for browser automation in UI testing and bug reproduction

Applied to files:

  • .github/workflows/ci.yaml
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Applies to **/src/ui/**/*.{ts,tsx,jsx,js} : Include Playwright tests for all UI changes

Applied to files:

  • .github/workflows/ci.yaml
📚 Learning: 2026-01-15T13:48:27.166Z
Learnt from: CR
Repo: venikman/PromptAgent PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-15T13:48:27.166Z
Learning: Require environment approvals for all production deployments

Applied to files:

  • .github/workflows/deploy.yaml
🔇 Additional comments (7)
.github/workflows/deploy-staging.yml (1)

24-28: LGTM! Conditional UI dependency installation aligns with Deno-first policy.

The conditional check for src/ui/package.json before running deno install is a good defensive pattern. The --node-modules-dir and --allow-scripts flags are appropriate for npm compatibility when using Deno to manage Node dependencies. Based on learnings, this follows the Deno-first runtime policy.

.github/workflows/deploy.yaml (2)

123-126: LGTM! Deno setup correctly configured.

The setup uses denoland/setup-deno@v2 with the environment variable for version, maintaining consistency across the workflow. Based on learnings, this aligns with the Deno-first runtime policy.


193-208: Placeholder deployment commands — verify this is intentional.

The staging deployment step only echoes status messages without actual deployment commands. This appears to be placeholder code. If Azure deployment is intended but not yet configured, this is acceptable; otherwise, verify this matches the expected behavior for staging deployments.

The continue-on-error: true on Azure login (line 191) combined with the conditional skip (lines 205-208) provides graceful degradation when Azure isn't configured.

.github/workflows/ci.yaml (4)

38-45: LGTM! Cache configuration is appropriate for Deno.

The cache paths (~/.cache/deno, ~/.deno) and key pattern using deno.lock and deno.json follow Deno best practices for dependency caching.


47-51: LGTM! Consistent UI dependency installation pattern.

This matches the pattern used in deploy-staging.yml and deploy.yaml, ensuring consistent behavior across workflows.


221-231: CI gate doesn't verify fpf-doctor result.

The gate lists fpf-doctor in needs but doesn't check its result. While fpf-doctor has continue-on-error: true (line 105), if FPF Doctor checks are informational only, this is fine. Otherwise, add the check.


61-65: LGTM! Lint and format checks properly configured.

Using deno lint and deno fmt --check aligns with the Deno-first policy and matches the testing commands referenced in the PR description (deno task lint, deno task fmt:check).

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

- name: Run Playwright tests
run: deno task test:e2e
continue-on-error: true # May not exist in all projects
continue-on-error: true
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Playwright test failures are silently ignored in CI gate.

With continue-on-error: true, Playwright test failures won't fail the job. However, the CI gate (line 226-228) doesn't check needs.playwright.result, so test failures are effectively silent.

If Playwright failures should block merges, either:

  1. Remove continue-on-error: true, or
  2. Add needs.playwright.result check to the gate

If test flakiness is the concern, consider using retry logic instead.

🔧 Option A: Make Playwright failures block CI
      - name: Run Playwright tests
        run: deno task test:e2e
-        continue-on-error: true
🔧 Option B: Check Playwright in CI gate
      - name: Check all jobs passed
        run: |
          if [[ "${{ needs.deno.result }}" == "failure" ]] || \
+            [[ "${{ needs.playwright.result }}" == "failure" ]] || \
             [[ "${{ needs.security.result }}" == "failure" ]] || \
             ([[ "${{ github.event_name }}" == "pull_request" ]] && [[ "${{ needs.release-prep.result }}" == "failure" ]]); then

Based on learnings, Playwright tests are required for UI changes per AGENTS.md policy.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
continue-on-error: true
- name: Run Playwright tests
run: deno task test:e2e
Suggested change
continue-on-error: true
- name: Check all jobs passed
run: |
if [[ "${{ needs.deno.result }}" == "failure" ]] || \
[[ "${{ needs.playwright.result }}" == "failure" ]] || \
[[ "${{ needs.security.result }}" == "failure" ]] || \
([[ "${{ github.event_name }}" == "pull_request" ]] && [[ "${{ needs.release-prep.result }}" == "failure" ]]); then
🤖 Prompt for AI Agents
In @.github/workflows/ci.yaml at line 137, The CI workflow currently sets
continue-on-error: true for the Playwright job (playwright), which lets failures
pass silently; either remove continue-on-error: true from the playwright job to
make failures fail the workflow, or keep it but add a gate check that inspects
needs.playwright.result (e.g., update the gate condition that references
needs.playwright to require needs.playwright.result == 'success') so Playwright
failures will block merges as intended.

- Remove deploy.yaml (echo-only placeholders, real deploys via deploy-deno.yml)
- Remove JS-based release-prep job from ci.yaml
- Remove 14 unused npm dependencies from package.json

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@venikman venikman merged commit 5861bdc into main Jan 15, 2026
9 of 11 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Jan 19, 2026
7 tasks
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.

1 participant