Skip to content

chore(deps): consolidate Dependabot updates - #2964

Merged
oscharko merged 8 commits into
devfrom
codex/dependabot-20260803
Aug 3, 2026
Merged

chore(deps): consolidate Dependabot updates#2964
oscharko merged 8 commits into
devfrom
codex/dependabot-20260803

Conversation

@oscharko

@oscharko oscharko commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates the verified Dependabot updates for Playwright, Jest-Axe, Next.js, eslint-config-next, Fallow, PostCSS, and smol-toml into one reviewed update.

The integration updates the Fallow governance pin and ADR-0167 to 3.9.1, corrects the root PostCSS override to 8.5.23 for reproducible npm ci installs, and aligns every Playwright browser installer with the lockfile's 1.62.0 runner.

Dependabot #2935 (ESLint 10) is intentionally not merged: the current eslint-plugin-import, eslint-plugin-jsx-a11y, and eslint-plugin-react peer ranges end at ESLint 9. ESLint remains at 9.39.5 in the root and UI workspaces; npm ls eslint is peer-valid. The migration record now reflects the verified Next 16.2.12 and PostCSS 8.5.23 baseline.

Next.js 16.2.12 requires explicit tsconfig.json targets for the recursive project-reference graph used by the E2E development server. The graph, its package-graph gate, and its regression fixture now use that supported form.

Closes #2936, closes #2937, closes #2938, closes #2939, closes #2940, closes #2941, closes #2942.

Verification

  • npm ci --ignore-scripts
  • npm ls eslint --all --workspace @oscharko-dev/keiko-ui
  • npm ls postcss --all --workspace @oscharko-dev/keiko-ui
  • npm run provision:usearch
  • npm run typecheck
  • npm run lint
  • npm run format:check
  • npm test
  • npm run test:coverage:ui
  • npm run test:e2e:smoke — 68 Chromium tests passed
  • npm run check:package-graph
  • npm run arch:check
  • npm run arch:check:negative
  • npm run check:editor-bundle-size
  • npm run gates:sonar

check:editor-release-evidence is Linux-authoritative and has the documented macOS fingerprint mismatch; the required Linux UI check is the authoritative verification.

Scope

Reuses the existing dependency, lockfile, external-quality configuration, TypeScript project-reference, and CI browser-install paths. No product subsystem or authority boundary is introduced or widened.

@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 10:27 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Aug 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: Pro Plus

Run ID: 0aa6ae3c-ce46-48ab-ab5d-a2ade476da33

📥 Commits

Reviewing files that changed from the base of the PR and between fe9a3f1 and 63cbf28.

📒 Files selected for processing (3)
  • docker/gates/run-gates.sh
  • scripts/__tests__/check-package-graph.test.mjs
  • scripts/check-package-graph.mjs
📜 Recent review details
⏰ Context from checks skipped due to timeout. (14)
  • GitHub Check: Cross-platform smoke (windows-latest)
  • GitHub Check: Cross-platform smoke (ubuntu-latest)
  • GitHub Check: Cross-platform smoke (macos-latest)
  • GitHub Check: Socket Security: Pull Request Alerts
  • GitHub Check: Coverage shard (packages 2/3)
  • GitHub Check: Coverage shard (packages 3/3)
  • GitHub Check: ui
  • GitHub Check: Coverage shard (packages 1/3)
  • GitHub Check: Coverage suite (scripts)
  • GitHub Check: Coverage suite (keiko-ui)
  • GitHub Check: Build, scan, SBOM, smoke
  • GitHub Check: Core quality
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,js,jsx,mjs,cjs}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx,js,jsx,mjs,cjs}: Do not use console.* for product output; route real output through the intended logger or diagnostic sink.
Delete dead code and commented-out scaffolding; do not leave TODOs that conceal unfinished branches.
Never weaken trust boundaries, evidence redaction, or governance gates; fail closed on invalid authority, workspace escape, denied sensitive paths, secret exfiltration, unsupported actions, exhausted budgets, and platform restrictions.
Keep secrets out of code, logs, evidence, configuration, and tests; diagnostics and evidence must contain only redacted summaries, counts, hashes, statuses, or scopes.
Inspect and reuse existing helpers, contracts, and subsystems; do not introduce parallel workspace, graph, policy, evidence, memory, connector, workflow, or UI subsystems without a documented capability gap.
Do not silently swallow errors; avoid empty catches, provide diagnostic context, and include a correlation ID for server errors connecting opaque UI 500s to redacted operator diagnostics.
Validate workspace input, model output, and connector data before processing; generated or model-produced code must remain behind the sandbox egress boundary.

Files:

  • scripts/__tests__/check-package-graph.test.mjs
  • scripts/check-package-graph.mjs
**/*.{ts,tsx,js,jsx,mjs,cjs,json,md,yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

Use English only in code, comments, identifiers, documentation, commit messages, issues, and pull requests.

Files:

  • scripts/__tests__/check-package-graph.test.mjs
  • scripts/check-package-graph.mjs
**/*.test.{ts,tsx,mjs}

⚙️ CodeRabbit configuration file

**/*.test.{ts,tsx,mjs}: A behavioral fix needs a failure-first regression proof that fails without the fix. Cover
malformed, hostile, empty, and boundary inputs; never relax a regression pin or duplicate a
production formula inside a fixture.

Files:

  • scripts/__tests__/check-package-graph.test.mjs
scripts/**

⚙️ CodeRabbit configuration file

scripts/**: Gate and evidence tooling must fail closed, remain deterministic and redacted, and carry
negative tests proving that weakened configuration or stale evidence is rejected.

Files:

  • scripts/__tests__/check-package-graph.test.mjs
  • scripts/check-package-graph.mjs
🧠 Learnings (1)
📚 Learning: 2026-07-27T18:21:19.134Z
Learnt from: oscharko
Repo: oscharko-dev/Keiko PR: 2779
File: scripts/check-local-state.mjs:0-0
Timestamp: 2026-07-27T18:21:19.134Z
Learning: In CLI guard logic inside `scripts/check-*.mjs`, avoid manually building `file://` URLs like `file://${process.argv[1]}` (it can produce incorrect path encoding). Convert the CLI path to a proper file URL using Node’s URL utilities (e.g., `pathToFileURL(process.argv[1]).href`) so paths with spaces/special characters (and platform differences like Windows) are handled correctly. If this fix is unrelated to the current PR, handle it via a separate follow-up change.

Applied to files:

  • scripts/check-package-graph.mjs
🔇 Additional comments (5)
docker/gates/run-gates.sh (1)

102-122: LGTM!

scripts/check-package-graph.mjs (2)

215-264: LGTM!


2-2: LGTM!

Also applies to: 306-330, 375-384, 393-393

scripts/__tests__/check-package-graph.test.mjs (2)

40-40: LGTM!

Also applies to: 58-61


133-167: LGTM!


📝 Walkthrough

Walkthrough

The pull request updates Playwright, Fallow, PostCSS, Next.js, eslint-config-next, jest-axe, and smol-toml versions. It also makes TypeScript project references explicit and strengthens package-graph validation.

Changes

Repository maintenance

Layer / File(s) Summary
Playwright browser setup
.github/workflows/ci.yml, scripts/regenerate-d12-evidence.mjs, docker/gates/run-gates.sh
Playwright is updated to 1.62.0. Gate execution resolves Chromium revisions from installed metadata and checks Chromium and headless-shell caches.
Package and dependency updates
package.json, packages/keiko-ui/package.json, packages/keiko-server/package.json, docs/adr/..., docs/next16-eslint10-ui-migration.md, scripts/check-external-quality-config.mjs, scripts/__tests__/check-external-quality-config.test.mjs
Fallow, PostCSS, Next.js, eslint-config-next, jest-axe, and smol-toml versions are updated. Related documentation and validation expectations are refreshed.
Explicit TypeScript project references
tsconfig.packages.json, packages/*/tsconfig.json
Workspace and package references now target explicit tsconfig.json files instead of package directories.
Package-graph reference validation
scripts/check-package-graph.mjs, scripts/__tests__/check-package-graph.test.mjs
Reference paths are resolved relative to their owning configuration and validated for malformed, empty, escaping, and unknown paths.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Assessment against linked issues

Objective Addressed Explanation
Playwright 1.61.1 → 1.62.0 [#2936]
jest-axe 10.0.0 → 11.0.0, Next.js 16.2.11 → 16.2.12, eslint-config-next 16.2.10 → 16.2.12, and PostCSS 8.5.19 → 8.5.23 [#2937] [#2938] [#2939] [#2941]
Fallow 2.104.0 → 3.9.1 [#2940]
smol-toml 1.7.0 → 1.7.1 [#2942]

Out-of-scope changes

Code Change Explanation
Explicit TypeScript project-reference migration (tsconfig.packages.json:4-27, packages/*/tsconfig.json:13-33) No linked issue specifies changes to TypeScript project-reference paths.
Package-graph path validation (scripts/check-package-graph.mjs:215-263,306-330,375-393) No linked issue specifies new package-graph validation behavior.

Possibly related issues

Possibly related PRs

Suggested labels: dependencies, javascript

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the summary, scope, linked issues, and verification, but omits several required template sections and evidence. Add the Reuse, Delivery Board, Product Impact, Update Impact, Review and Closure, Risk Notes, and required verification sections.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The description directly closes issues #2936 through #2942, and the changes correspond to those dependency and compatibility objectives.
Out of Scope Changes check ✅ Passed The changes remain within dependency updates, supporting configuration, documentation, and validation logic described by the objectives.
Title check ✅ Passed The conventional title uses an English imperative and accurately names the delivered outcome of consolidating Dependabot updates.

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.

@socket-security

socket-security Bot commented Aug 3, 2026

Copy link
Copy Markdown

@socket-security

socket-security Bot commented Aug 3, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
License policy violation: npm next under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (package/dist/compiled/@vercel/og/package.json)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (package/dist/compiled/@vercel/og/LICENSE)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (package/dist/compiled/@vercel/og/satori/LICENSE)

From: package-lock.jsonnpm/next@16.2.12

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/next@16.2.12. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: npm playwright-core under ms-azure-data-studio

License: ms-azure-data-studio - The applicable license policy does not permit this license (5) (package/ThirdPartyNotices.txt)

From: package-lock.jsonnpm/@playwright/test@1.62.0npm/playwright-core@1.62.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/playwright-core@1.62.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: npm playwright under ms-azure-data-studio

License: ms-azure-data-studio - The applicable license policy does not permit this license (5) (package/ThirdPartyNotices.txt)

From: package-lock.jsonnpm/@playwright/test@1.62.0npm/playwright@1.62.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/playwright@1.62.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Recently published: npm brace-expansion published 4 days ago

Location: Package overview

From: package-lock.jsonnpm/eslint@9.39.5npm/brace-expansion@1.1.18

ℹ Read more on: This package | This alert | What are recently published artifacts?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should either be allowlisted to allow recently-published versions, or an older version should be used instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/brace-expansion@1.1.18. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Recently published: npm js-yaml published 3 days ago

Location: Package overview

From: package-lock.jsonnpm/eslint@9.39.5npm/js-yaml@4.3.1

ℹ Read more on: This package | This alert | What are recently published artifacts?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should either be allowlisted to allow recently-published versions, or an older version should be used instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/js-yaml@4.3.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Comment thread package-lock.json Outdated
@keiko-for-quality

keiko-for-quality Bot commented Aug 3, 2026

Copy link
Copy Markdown

Keiko for Quality — run summary

✅ complete · head 63cbf28 · 2026-08-03T13:04:27Z · engine v1.8.4 · action ec48db94d70d9a07d729d814ea405157652530be

Metric Count
Total paths 36
Reviewable 35
Excluded 1
Mechanically clean 0
Replayed from cache 32
Freshly reviewed 3
Findings published 2
Suppressed (exact duplicate) 0
Suppressed (similar) 0
Suppressed (dispositioned) 0

Budget: 1883180 tokens allotted

@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 10:28 — with GitHub Actions Inactive

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a20d40ea9

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package-lock.json
Comment thread package.json Outdated
Comment thread packages/keiko-ui/package.json
Comment thread packages/keiko-ui/package.json Outdated
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 10:59 — with GitHub Actions Inactive
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 11:00 — with GitHub Actions Inactive
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 11:18 — with GitHub Actions Inactive
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 11:19 — with GitHub Actions Inactive

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1e4e817a61

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package-lock.json
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 11:54 — with GitHub Actions Inactive
Comment thread docker/gates/run-gates.sh Outdated
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 11:55 — with GitHub Actions Inactive

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docker/gates/run-gates.sh`:
- Around line 104-106: Update the chromium_revision value in the cache path
configuration to 1233 so chromium_cache and headless_shell_cache match
Playwright’s stored browser revision.

In `@scripts/check-package-graph.mjs`:
- Around line 218-219: Update the workspaceRefs path-resolution logic around
reference and package-name derivation to resolve each project reference relative
to its owning configuration, then validate both the resolved configuration and
package directory against known workspace packages before deriving an identity.
Reject missing, malformed, empty, escaped, and boundary paths so
packageGraphFailures cannot accept an outside reference; add failure-first tests
covering each case.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 929e8bed-67e2-4ad7-b2db-6d33dcb72f5a

📥 Commits

Reviewing files that changed from the base of the PR and between 8eb1889 and fe9a3f1.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (39)
  • .github/workflows/ci.yml
  • .github/workflows/keiko-for-quality.yml
  • docker/gates/run-gates.sh
  • docs/adr/ADR-0167-zero-cost-autonomous-quality-gates.md
  • docs/next16-eslint10-ui-migration.md
  • docs/qa/review-cost-model.md
  • docs/troubleshooting/README.md
  • docs/troubleshooting/model-review-spend.md
  • package.json
  • packages/keiko-cli/tsconfig.json
  • packages/keiko-connectors/tsconfig.json
  • packages/keiko-editor/tsconfig.json
  • packages/keiko-evaluations/tsconfig.json
  • packages/keiko-evidence/tsconfig.json
  • packages/keiko-harness/tsconfig.json
  • packages/keiko-local-knowledge/tsconfig.json
  • packages/keiko-memory-capture/tsconfig.json
  • packages/keiko-memory-consolidation/tsconfig.json
  • packages/keiko-memory-governance/tsconfig.json
  • packages/keiko-memory-retrieval/tsconfig.json
  • packages/keiko-memory-vault/tsconfig.json
  • packages/keiko-model-gateway/tsconfig.json
  • packages/keiko-quality-intelligence/tsconfig.json
  • packages/keiko-sandbox/tsconfig.json
  • packages/keiko-sdk/tsconfig.json
  • packages/keiko-security/tsconfig.json
  • packages/keiko-server/package.json
  • packages/keiko-server/tsconfig.json
  • packages/keiko-tools/tsconfig.json
  • packages/keiko-ui/package.json
  • packages/keiko-verification/tsconfig.json
  • packages/keiko-workflows/tsconfig.json
  • packages/keiko-workspace/tsconfig.json
  • scripts/__tests__/check-external-quality-config.test.mjs
  • scripts/__tests__/check-package-graph.test.mjs
  • scripts/check-external-quality-config.mjs
  • scripts/check-package-graph.mjs
  • scripts/regenerate-d12-evidence.mjs
  • tsconfig.packages.json
📜 Review details
⏰ Context from checks skipped due to timeout. (14)
  • GitHub Check: Cross-platform smoke (macos-latest)
  • GitHub Check: Cross-platform smoke (ubuntu-latest)
  • GitHub Check: Cross-platform smoke (windows-latest)
  • GitHub Check: Socket Security: Pull Request Alerts
  • GitHub Check: ui
  • GitHub Check: Coverage shard (packages 2/3)
  • GitHub Check: Coverage suite (scripts)
  • GitHub Check: Core quality
  • GitHub Check: Coverage shard (packages 1/3)
  • GitHub Check: Coverage shard (packages 3/3)
  • GitHub Check: Build, scan, SBOM, smoke
  • GitHub Check: Coverage suite (keiko-ui)
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📓 Path-based instructions (9)
**/*.{ts,tsx,js,jsx,mjs,cjs,json,md,yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

Use English only in code, comments, identifiers, documentation, commit messages, issues, and pull requests.

Files:

  • packages/keiko-sandbox/tsconfig.json
  • packages/keiko-server/package.json
  • packages/keiko-sdk/tsconfig.json
  • packages/keiko-quality-intelligence/tsconfig.json
  • packages/keiko-tools/tsconfig.json
  • scripts/check-external-quality-config.mjs
  • tsconfig.packages.json
  • packages/keiko-server/tsconfig.json
  • docs/adr/ADR-0167-zero-cost-autonomous-quality-gates.md
  • packages/keiko-workflows/tsconfig.json
  • package.json
  • scripts/regenerate-d12-evidence.mjs
  • packages/keiko-ui/package.json
  • packages/keiko-editor/tsconfig.json
  • docs/troubleshooting/README.md
  • packages/keiko-local-knowledge/tsconfig.json
  • packages/keiko-harness/tsconfig.json
  • docs/troubleshooting/model-review-spend.md
  • packages/keiko-evidence/tsconfig.json
  • packages/keiko-model-gateway/tsconfig.json
  • packages/keiko-memory-retrieval/tsconfig.json
  • packages/keiko-verification/tsconfig.json
  • packages/keiko-security/tsconfig.json
  • packages/keiko-cli/tsconfig.json
  • scripts/check-package-graph.mjs
  • packages/keiko-memory-capture/tsconfig.json
  • packages/keiko-memory-vault/tsconfig.json
  • scripts/__tests__/check-external-quality-config.test.mjs
  • packages/keiko-evaluations/tsconfig.json
  • docs/next16-eslint10-ui-migration.md
  • packages/keiko-connectors/tsconfig.json
  • docs/qa/review-cost-model.md
  • packages/keiko-workspace/tsconfig.json
  • packages/keiko-memory-consolidation/tsconfig.json
  • packages/keiko-memory-governance/tsconfig.json
  • scripts/__tests__/check-package-graph.test.mjs
.github/workflows/ci.yml

📄 CodeRabbit inference engine (AGENTS.md)

When adding a long-lived integration branch, add it to the push trigger list, pull_request trigger list, and protected-branch-gate case allowlist.

Files:

  • .github/workflows/ci.yml
.github/workflows/**/*.{yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

Pin every GitHub Action to a full 40-hex commit SHA and retain a version comment; tag or branch refs are prohibited.

Files:

  • .github/workflows/ci.yml
  • .github/workflows/keiko-for-quality.yml
.github/workflows/**

⚙️ CodeRabbit configuration file

.github/workflows/**: Treat workflow changes as supply-chain and merge-authority changes. Require full 40-hex
action pins with version comments, minimum permissions, bounded timeouts, locked installs,
redacted output, and exact-current-head evidence. Never recommend bypassing a gate.

Files:

  • .github/workflows/ci.yml
  • .github/workflows/keiko-for-quality.yml
**/*.{ts,tsx,js,jsx,mjs,cjs}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx,js,jsx,mjs,cjs}: Do not use console.* for product output; route real output through the intended logger or diagnostic sink.
Delete dead code and commented-out scaffolding; do not leave TODOs that conceal unfinished branches.
Never weaken trust boundaries, evidence redaction, or governance gates; fail closed on invalid authority, workspace escape, denied sensitive paths, secret exfiltration, unsupported actions, exhausted budgets, and platform restrictions.
Keep secrets out of code, logs, evidence, configuration, and tests; diagnostics and evidence must contain only redacted summaries, counts, hashes, statuses, or scopes.
Inspect and reuse existing helpers, contracts, and subsystems; do not introduce parallel workspace, graph, policy, evidence, memory, connector, workflow, or UI subsystems without a documented capability gap.
Do not silently swallow errors; avoid empty catches, provide diagnostic context, and include a correlation ID for server errors connecting opaque UI 500s to redacted operator diagnostics.
Validate workspace input, model output, and connector data before processing; generated or model-produced code must remain behind the sandbox egress boundary.

Files:

  • scripts/check-external-quality-config.mjs
  • scripts/regenerate-d12-evidence.mjs
  • scripts/check-package-graph.mjs
  • scripts/__tests__/check-external-quality-config.test.mjs
  • scripts/__tests__/check-package-graph.test.mjs
scripts/**

⚙️ CodeRabbit configuration file

scripts/**: Gate and evidence tooling must fail closed, remain deterministic and redacted, and carry
negative tests proving that weakened configuration or stale evidence is rejected.

Files:

  • scripts/check-external-quality-config.mjs
  • scripts/regenerate-d12-evidence.mjs
  • scripts/check-package-graph.mjs
  • scripts/__tests__/check-external-quality-config.test.mjs
  • scripts/__tests__/check-package-graph.test.mjs
docs/adr/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

Update affected ADR sections when corrected implementation behavior makes them outdated, contradictory, or unsafe; do not create a superseding ADR merely to repair text, and register genuinely new ADRs in the index without renumbering existing ones.

Files:

  • docs/adr/ADR-0167-zero-cost-autonomous-quality-gates.md
docs/troubleshooting/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

Document operator failure modes using Symptom, Root Cause, Diagnostic Steps, and Resolution; keep the content redacted with no live endpoints or logs.

Files:

  • docs/troubleshooting/README.md
  • docs/troubleshooting/model-review-spend.md
**/*.test.{ts,tsx,mjs}

⚙️ CodeRabbit configuration file

**/*.test.{ts,tsx,mjs}: A behavioral fix needs a failure-first regression proof that fails without the fix. Cover
malformed, hostile, empty, and boundary inputs; never relax a regression pin or duplicate a
production formula inside a fixture.

Files:

  • scripts/__tests__/check-external-quality-config.test.mjs
  • scripts/__tests__/check-package-graph.test.mjs
🧠 Learnings (1)
📚 Learning: 2026-07-27T18:21:19.134Z
Learnt from: oscharko
Repo: oscharko-dev/Keiko PR: 2779
File: scripts/check-local-state.mjs:0-0
Timestamp: 2026-07-27T18:21:19.134Z
Learning: In CLI guard logic inside `scripts/check-*.mjs`, avoid manually building `file://` URLs like `file://${process.argv[1]}` (it can produce incorrect path encoding). Convert the CLI path to a proper file URL using Node’s URL utilities (e.g., `pathToFileURL(process.argv[1]).href`) so paths with spaces/special characters (and platform differences like Windows) are handled correctly. If this fix is unrelated to the current PR, handle it via a separate follow-up change.

Applied to files:

  • scripts/check-external-quality-config.mjs
  • scripts/check-package-graph.mjs
🪛 LanguageTool
docs/troubleshooting/model-review-spend.md

[uncategorized] ~4-~4: The official name of this software platform is spelled with a capital “H”.
Context: ...des for the Keiko for Quality reviewer (keiko-for-quality.yml). The ...

(GITHUB)


[uncategorized] ~42-~42: The official name of this software platform is spelled with a capital “H”.
Context: ...e store identity changed — the profile (.github/keiko-for-quality.json), the model id,...

(GITHUB)

docs/qa/review-cost-model.md

[uncategorized] ~3-~3: The official name of this software platform is spelled with a capital “H”.
Context: ...t makes it expensive Operator note for keiko-for-quality.yml. Writt...

(GITHUB)


[style] ~65-~65: The word ‘bigger’ tends to be overused in this context. Consider an alternative.
Context: ...000,000 before this input applies, so a bigger number would be inert. Raising it is the cheap...

(A_GREAT_NUMBER)


[grammar] ~87-~87: Ensure spelling is correct
Context: ...ng: it removes the model call entirely, where caching only makes it cost less. **The...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~94-~94: Consider using a shorter alternative to avoid wordiness.
Context: ...ds the ceiling again. A lower ceiling makes this worse rather than better, by turning more pul...

(MADE_IT_JJR)

🔇 Additional comments (37)
docs/adr/ADR-0167-zero-cost-autonomous-quality-gates.md (1)

72-72: LGTM!

package.json (1)

216-216: LGTM!

Also applies to: 241-241

packages/keiko-server/package.json (1)

52-52: LGTM!

packages/keiko-ui/package.json (1)

28-28: LGTM!

Also applies to: 45-48

docs/next16-eslint10-ui-migration.md (1)

7-13: LGTM!

Also applies to: 24-30

scripts/__tests__/check-external-quality-config.test.mjs (1)

74-74: LGTM!

scripts/check-external-quality-config.mjs (1)

143-143: LGTM!

.github/workflows/ci.yml (1)

1077-1077: 🗄️ Data Integrity & Integration

No action needed for the Playwright version pins.

package-lock.json resolves both @playwright/test and playwright to 1.62.0, so the .github/workflows/ci.yml, docker/gates/run-gates.sh, and scripts/regenerate-d12-evidence.mjs pins are aligned with the lockfile-installed toolchain.

			> Likely an incorrect or invalid review comment.
tsconfig.packages.json (1)

4-27: LGTM!

packages/keiko-cli/tsconfig.json (1)

17-28: LGTM!

packages/keiko-connectors/tsconfig.json (1)

13-16: LGTM!

packages/keiko-editor/tsconfig.json (1)

13-13: LGTM!

packages/keiko-evaluations/tsconfig.json (1)

14-21: LGTM!

packages/keiko-evidence/tsconfig.json (1)

14-16: LGTM!

packages/keiko-harness/tsconfig.json (1)

14-18: LGTM!

packages/keiko-server/tsconfig.json (1)

14-33: LGTM!

packages/keiko-local-knowledge/tsconfig.json (1)

13-17: LGTM!

packages/keiko-memory-capture/tsconfig.json (1)

13-16: LGTM!

packages/keiko-memory-consolidation/tsconfig.json (1)

13-16: LGTM!

packages/keiko-memory-governance/tsconfig.json (1)

13-16: LGTM!

packages/keiko-memory-retrieval/tsconfig.json (1)

13-16: LGTM!

packages/keiko-memory-vault/tsconfig.json (1)

13-16: LGTM!

packages/keiko-model-gateway/tsconfig.json (1)

13-16: LGTM!

packages/keiko-quality-intelligence/tsconfig.json (1)

13-16: LGTM!

packages/keiko-sandbox/tsconfig.json (1)

13-13: LGTM!

packages/keiko-sdk/tsconfig.json (1)

14-21: LGTM!

packages/keiko-security/tsconfig.json (1)

13-13: LGTM!

packages/keiko-tools/tsconfig.json (1)

14-17: LGTM!

packages/keiko-verification/tsconfig.json (1)

14-17: LGTM!

packages/keiko-workflows/tsconfig.json (1)

14-22: LGTM!

packages/keiko-workspace/tsconfig.json (1)

13-16: LGTM!

scripts/check-package-graph.mjs (1)

2-2: LGTM!

scripts/__tests__/check-package-graph.test.mjs (1)

40-40: LGTM!

Also applies to: 58-61

docs/qa/review-cost-model.md (1)

1-156: LGTM!

docs/troubleshooting/README.md (1)

756-763: LGTM!

docs/troubleshooting/model-review-spend.md (1)

1-198: LGTM!

.github/workflows/keiko-for-quality.yml (1)

426-467: 🗄️ Data Integrity & Integration

No change needed.

The pinned oscharko-dev/Keiko-for-Quality revision exposes token_budget, defaults it to 2e6, and uses ALLOTMENT_CEILING = 6e6 with --max-tokens-budget, matching the documented 6,000,000-token behavior.

Comment thread docker/gates/run-gates.sh Outdated
Comment thread scripts/check-package-graph.mjs Outdated
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 12:10 — with GitHub Actions Inactive
Comment thread docker/gates/run-gates.sh Outdated
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 12:11 — with GitHub Actions Inactive
@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 13:04 — with GitHub Actions Inactive
Comment thread docker/gates/run-gates.sh
Comment on lines +119 to +123
chromium_revision="$(playwright_browser_revision chromium)"
headless_shell_revision="$(playwright_browser_revision chromium-headless-shell)"
chromium_cache="${browsers}/chromium-${chromium_revision}"
headless_shell_cache="${browsers}/chromium_headless_shell-${headless_shell_revision}"
if [[ ! -d "$chromium_cache" || ! -d "$headless_shell_cache" ]]; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🐛 Correctness | 🟠 Major

Handle missing browser revisions without aborting the whole gate script.

These command substitutions run before the if and inherit set -e, so if browsers.json does not contain chromium-headless-shell for a given Playwright release, playwright_browser_revision exits 1 and the entire gate fails before it can fall back to npx playwright install. That turns a cache probe into a hard failure on ordinary upgrades or package layout changes; instead, treat an unknown revision as a cache miss and run the install step.

🤖 Prompt for AI agents
Verify this finding against the current code before acting on it.

In docker/gates/run-gates.sh around line 123: Handle missing browser revisions without aborting the whole gate script.

If it no longer applies, reply on the thread with a one-line reason and resolve it — do not
change code to match a stale finding. If it does apply, keep the fix minimal, fix the cause
rather than the symptom, and run this repository's own verification before pushing.

Comment on lines +253 to +262
for (const entry of tsconfig.references ?? []) {
const reference = workspaceReference(owner, entry, knownWorkspaceConfigs);
if ("failure" in reference) {
failures.push(reference.failure);
continue;
}
refs.push(reference.name);
}

refs.sort((left, right) => left.localeCompare(right));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🐛 Correctness | 🟡 Minor

Reject duplicate project references explicitly.

This loop now accepts the same workspace package more than once and only reports it later as a generic dependency mismatch. That turns a malformed tsconfig.references array into an imprecise error message, which makes the failing package look like its dependencies are wrong when the real defect is a duplicated reference entry. Track seen package names here and emit a dedicated validation failure when a reference repeats.

-    refs.push(reference.name);
+    if (refs.includes(reference.name)) {
+      failures.push(`${owner.name}: tsconfig reference ${JSON.stringify(reference.referencePath)} is duplicated`);
+      continue;
+    }
+    refs.push(reference.name);
🤖 Prompt for AI agents
Verify this finding against the current code before acting on it.

In scripts/check-package-graph.mjs around line 262: Reject duplicate project references explicitly.

If it no longer applies, reply on the thread with a one-line reason and resolve it — do not
change code to match a stale finding. If it does apply, keep the fix minimal, fix the cause
rather than the symptom, and run this repository's own verification before pushing.

@oscharko
oscharko temporarily deployed to keiko-for-quality August 3, 2026 13:05 — with GitHub Actions Inactive

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 63cbf28400

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +225 to +228
const configPath =
basename(resolvedReference) === "tsconfig.json"
? resolvedReference
: join(resolvedReference, "tsconfig.json");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject directory-form project references

Remove this fallback that appends tsconfig.json to directory references: check:package-graph currently returns clean for ../keiko-contracts and ./packages/keiko-contracts, even though those are the exact forms this commit replaces because Next 16.2.12 requires explicit tsconfig.json targets for the E2E development server. A future partial revert can therefore reintroduce the startup failure while the intended regression gate remains green; require the resolved reference itself to end in tsconfig.json and pin that rejection in the fixture.

AGENTS.md reference: AGENTS.md:L326-L331

Useful? React with 👍 / 👎.

@sonarqubecloud

sonarqubecloud Bot commented Aug 3, 2026

Copy link
Copy Markdown

@oscharko
oscharko merged commit eb68af9 into dev Aug 3, 2026
29 checks passed
@oscharko
oscharko deleted the codex/dependabot-20260803 branch August 3, 2026 13:28
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