Skip to content

Sync tooling with the monorepo starter and update dependencies - #23

Merged
valuecodes merged 4 commits into
mainfrom
chore/sync-template-tooling
Oct 9, 2026
Merged

valuecodes merged 4 commits into
mainfrom
chore/sync-template-tooling

Conversation

@valuecodes

Copy link
Copy Markdown
Owner

What

  • Brings tooling in line with agentic-monorepo-starter: root oxlint (type-aware) replaces per-package ESLint; adds Turborepo, Knip, gitleaks secrets:scan and CodeQL to CI; CI setup action moves to tooling/github
  • pnpm 12 with a version catalog, minimumReleaseAge and trustPolicy: no-downgrade; Node 24.21.0, TypeScript 7, vitest 5; tsconfig adds noUncheckedIndexedAccess
  • Dependency bumps incl. majors: openai 7, @cloudflare/workers-types 5, @hono/zod-validator 0.9; plus wrangler, hono, zod, drizzle, playwright, tsx. esbuild/undici security overrides kept
  • Code brought up to the stricter rules (behavior-preserving): ~/ import alias in apps, colocated tests, explicit null/index guards, files over 400 lines split, unused exports removed
  • Deploy job now also waits on knip and secrets-scan

How to test

pnpm install
pnpm typecheck
pnpm lint
pnpm knip
pnpm test
pnpm format:check

Notes

  • CodeQL uses advanced setup: turn off "Default setup" under Settings → Code security, or the uploads are rejected
  • Two dev-only advisories (sharp via miniflare, source-map-js via vite) are patched in versions still inside the 14-day release-age window; add overrides once they mature
  • Commits are unsigned (signing key not available non-interactively)

Security review

Supply-chain hardening (release-age, trust policy, gitleaks, CodeQL); no runtime auth/data-handling changes.

🤖 Generated with Claude Code

valuecodes and others added 4 commits October 9, 2026 10:59
- Replace per-package ESLint with root oxlint (type-aware), add turbo, knip,
  gitleaks secrets scan and CodeQL; move CI setup action to tooling/github
- Move to pnpm 12 with a version catalog, release-age and trust policies;
  Node 24.21.0, TypeScript 7, vitest 5, @types/node 24
- Bump openai 7, workers-types 5, @hono/zod-validator 0.9, wrangler, hono,
  zod, drizzle, playwright, tsx; keep esbuild/undici security overrides

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add the `~/` alias to apps and colocate __tests__ files with sources
- Handle noUncheckedIndexedAccess without non-null assertions
- Split files over the 400-line limit (openai, schedule, large test files)
- Remove conditional expects, group exports, drop unused exports

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ules

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 9, 2026 08:10
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 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-10-09T08:13:53.999024Z 45d2d1d 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.

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.

🔵 Needs a closer look

It combines major runtime dependency upgrades with repository-wide compiler, linting, package-manager, security, and deployment workflow changes.

0 open findings

What changed in this PR

Aligns the monorepo with the starter’s modern tooling, dependency, CI, and TypeScript standards while adapting application code to stricter checks.

Changes:

  • Replaces workspace ESLint with root type-aware oxlint, Turborepo, Knip, import sorting, and stricter TypeScript.
  • Upgrades Node, pnpm, major dependencies, and centralizes shared versions in the pnpm catalog.
  • Adds gitleaks and CodeQL CI checks and refactors application code/tests for new conventions.
File Description
turbo.json Defines monorepo tasks.
tooling/​typescript/​react.json Targets ES2024 for React.
tooling/​typescript/​package.json Removes obsolete formatting script.
tooling/​typescript/​node.json Adds Node TypeScript preset.
tooling/​typescript/​base.json Strengthens shared TypeScript settings.
tooling/​prettier/​prettier.config.ts Adds deterministic import sorting.
tooling/​prettier/​package.json Catalogs dependencies and adds tasks.
tooling/​github/​setup/​action.yml Updates shared CI setup actions.
tooling/​github/​scripts/​secrets-scan.sh Adds pinned gitleaks scanning.
tooling/​github/​package.json Registers GitHub tooling workspace.
tooling/​eslint/​tsconfig.json Removes ESLint tooling config.
tooling/​eslint/​react.ts Removes shared React ESLint rules.
tooling/​eslint/​package.json Removes ESLint workspace manifest.
tooling/​eslint/​base.ts Removes shared base ESLint rules.
README.md Documents current structure and commands.
pnpm-workspace.yaml Adds catalog and supply-chain policies.
packages/​url-validator/​vitest.config.ts Removes obsolete ESLint directive.
packages/​url-validator/​src/​url-validator.test.ts Adapts test style.
packages/​url-validator/​package.json Migrates package tooling.
packages/​url-validator/​eslint.config.ts Removes package ESLint config.
packages/​telegram/​vitest.config.ts Removes obsolete ESLint directive.
packages/​telegram/​src/​types.ts Consolidates type exports.
packages/​telegram/​src/​telegram.test.ts Sorts test imports.
packages/​telegram/​package.json Migrates dependencies and tooling.
packages/​telegram/​eslint.config.ts Removes package ESLint config.
packages/​logger/​vitest.config.ts Removes obsolete ESLint directive.
packages/​logger/​src/​types.ts Consolidates logger type exports.
packages/​logger/​src/​logger.ts Simplifies helper implementation.
packages/​logger/​src/​logger.test.ts Colocates imports and tightens indexing.
packages/​logger/​package.json Migrates package tooling.
packages/​logger/​eslint.config.ts Removes package ESLint config.
packages/​http-client/​vitest.config.ts Removes obsolete ESLint directive.
packages/​http-client/​src/​http-client.ts Removes redundant type assertion.
packages/​http-client/​src/​http-client.test.ts Modernizes rejection assertions.
packages/​http-client/​package.json Migrates dependencies and tooling.
packages/​http-client/​eslint.config.ts Removes package ESLint config.
packages/​alpha-vantage/​vitest.config.ts Removes obsolete ESLint directive.
packages/​alpha-vantage/​src/​types.ts Adds explicit metadata guards.
packages/​alpha-vantage/​src/​alpha-vantage.test.ts Adapts tests to strict indexing.
packages/​alpha-vantage/​package.json Migrates dependencies and tooling.
packages/​alpha-vantage/​eslint.config.ts Removes package ESLint config.
package.json Adds root tooling and upgraded runtime requirements.
knip.jsonc Configures unused-code analysis.
docs/​plan.md Updates tooling structure documentation.
apps/​operator/​vitest.config.ts Configures alias-aware tests.
apps/​operator/​tsconfig.json Adds the application import alias.
apps/​operator/​src/​utils/​message.test.ts Modernizes assertions.
apps/​operator/​src/​utils/​markdown-to-html.ts Adapts conversion logic to strict rules.
apps/​operator/​src/​utils/​markdown-to-html.test.ts Simplifies test helpers.
apps/​operator/​src/​utils/​keywords.ts Removes unsafe indexed access.
apps/​operator/​src/​utils/​keywords.test.ts Modernizes assertions and strings.
apps/​operator/​src/​types/​telegram.ts Removes unused schema/type exports.
apps/​operator/​src/​types/​env.ts Removes unused environment parser.
apps/​operator/​src/​services/​scrape.ts Narrows exports and modernizes replacements.
apps/​operator/​src/​services/​scrape.test.ts Refactors scrape tests and guards.
apps/​operator/​src/​services/​scrape-convert.test.ts Splits conversion tests into a focused file.
apps/​operator/​src/​services/​schedule.ts Extracts scheduling logic and adds guards.
apps/​operator/​src/​services/​schedule.test.ts Updates imports and strict assertions.
apps/​operator/​src/​services/​schedule-time.ts Houses scheduling-time calculations.
apps/​operator/​src/​services/​pending-conversation.ts Adds safe row extraction and narrows exports.
apps/​operator/​src/​services/​pending-action.ts Adds safe row extraction and narrows exports.
apps/​operator/​src/​services/​openai.ts Splits prompts/tools and adds response guards.
apps/​operator/​src/​services/​openai.test.ts Moves tool-loop coverage out.
apps/​operator/​src/​services/​openai-tools.ts Houses OpenAI tool definitions.
apps/​operator/​src/​services/​openai-tool-loop.test.ts Adds focused tool-loop tests.
apps/​operator/​src/​services/​openai-prompts.ts Houses OpenAI prompts.
apps/​operator/​src/​scheduled.ts Adds explicit guards and narrows exports.
apps/​operator/​src/​modules/​telegram/​ui.ts Migrates imports to the application alias.
apps/​operator/​src/​modules/​telegram/​routes.ts Updates middleware flow and alias imports.
apps/​operator/​src/​modules/​telegram/​routes-test-helpers.ts Centralizes route test setup.
apps/​operator/​src/​modules/​telegram/​routes-question-callback.test.ts Splits question callback coverage.
apps/​operator/​src/​modules/​telegram/​routes-message.test.ts Splits message route coverage.
apps/​operator/​src/​modules/​telegram/​routes-callback.test.ts Splits callback route coverage.
apps/​operator/​src/​modules/​telegram/​conversation-runner.ts Migrates imports and safe iteration.
apps/​operator/​src/​modules/​telegram/​controller.ts Adds row/index guards and alias imports.
apps/​operator/​src/​modules/​telegram/​callback-data.ts Makes empty-data handling explicit.
apps/​operator/​src/​modules/​health/​routes.ts Migrates to alias imports.
apps/​operator/​src/​modules/​health/​controller.ts Simplifies health handler.
apps/​operator/​src/​middleware/​telegram-ip.ts Adds strict CIDR parsing guards.
apps/​operator/​src/​middleware/​telegram-ip.test.ts Updates test imports and guards.
apps/​operator/​src/​middleware/​logger.ts Migrates to alias imports.
apps/​operator/​src/​middleware/​logger.test.ts Updates imports and indexed access.
apps/​operator/​src/​middleware/​error-handlers.ts Consolidates handler exports.
apps/​operator/​src/​middleware/​env.ts Returns middleware continuation directly.
apps/​operator/​src/​middleware/​cors.test.ts Colocates test import.
apps/​operator/​scripts/​set-webhook.ts Tightens validation and async execution.
apps/​operator/​README.md Documents repo-wide oxlint.
apps/​operator/​package.json Upgrades runtime dependencies and tooling.
apps/​operator/​eslint.config.ts Removes application ESLint config.
apps/​operator/​drizzle.config.ts Removes obsolete ESLint directive.
apps/​browser-scraper/​vitest.config.ts Configures alias-aware tests.
apps/​browser-scraper/​tsconfig.json Adds the application import alias.
apps/​browser-scraper/​src/​services/​playwright.ts Removes unused exports.
apps/​browser-scraper/​src/​services/​playwright.test.ts Strengthens result narrowing.
apps/​browser-scraper/​package.json Upgrades dependencies and tooling.
apps/​browser-scraper/​eslint.config.ts Removes application ESLint config.
apps/​alerts/​vitest.config.ts Configures alias-aware tests.
apps/​alerts/​tsconfig.json Adds the application import alias.
apps/​alerts/​src/​types/​env.ts Simplifies parsing and narrows exports.
apps/​alerts/​src/​scheduled.ts Adds safe indexing and simplifies handler creation.
apps/​alerts/​src/​scheduled.test.ts Normalizes numeric literals.
apps/​alerts/​src/​alerts/​types.ts Migrates import and narrows exports.
apps/​alerts/​src/​alerts/​sp500.ts Removes unused type export.
apps/​alerts/​src/​alerts/​sp500-drawdown.ts Adds explicit bar and level guards.
apps/​alerts/​src/​alerts/​sp500-drawdown.test.ts Simplifies test data construction.
apps/​alerts/​src/​alerts/​sp500-close.ts Adds safe latest-bar extraction.
apps/​alerts/​src/​alerts/​sp500-close.test.ts Simplifies test data construction.
apps/​alerts/​package.json Migrates dependencies and tooling.
apps/​alerts/​eslint.config.ts Removes application ESLint config.
AGENTS.md Documents the new architecture and workflows.
.vscode/​settings.json Enables oxlint and format-on-save.
.vscode/​extensions.json Recommends development extensions.
.prettierignore Excludes generated output and caches.
.oxlintrc.json Defines repository-wide lint rules.
.nvmrc Updates the required Node version.
.gitignore Expands generated and sensitive-file ignores.
.github/​workflows/​migrations.yml Updates actions and shared setup path.
.github/​workflows/​main.yml Adds Knip, gitleaks, and CodeQL jobs.
.github/​workflows/​feature.yml Adds PR Knip, gitleaks, and CodeQL jobs.
.claude/​settings.json Updates agent command permissions.

🧠 Review effort: Balanced


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

@valuecodes
valuecodes merged commit 62ff40a into main Oct 9, 2026
18 of 20 checks passed
@valuecodes
valuecodes deleted the chore/sync-template-tooling branch October 9, 2026 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants