diff --git a/.agents/docs/packages/eslint-config.md b/.agents/docs/packages/eslint-config.md index 882861f91..949346215 100644 --- a/.agents/docs/packages/eslint-config.md +++ b/.agents/docs/packages/eslint-config.md @@ -19,9 +19,7 @@ export default config( typescript: { enabled: true } }, { - ignores: [ - /* generated files, vendored code, ... */ - ] + ignores: [/* generated files, vendored code, ... */] } ); ``` diff --git a/.agents/docs/workspace-map.md b/.agents/docs/workspace-map.md index 7c5a60d12..99a887236 100644 --- a/.agents/docs/workspace-map.md +++ b/.agents/docs/workspace-map.md @@ -6,8 +6,8 @@ it. Read the `AGENTS.md` in a directory before editing it; this file only says w ## Before you add or move anything - **Workspace globs are `apps/*`, `packages/*`, `runtime/*`, `storybook`, `testing`, `vendor/**/\*`** -(`pnpm-workspace.yaml`). A new directory under one of those is a workspace the moment it has a -`package.json`. `cli/`, `docs/`, `blog/`and`.agents/` are not workspaces. + (`pnpm-workspace.yaml`). A new directory under one of those is a workspace the moment it has a + `package.json`. `cli/`, `docs/`, `blog/`and`.agents/` are not workspaces. - There are **27 first-party workspaces plus 38 under `vendor/`** — 66 entries including the root, as reported by `pnpm ls -r --depth -1`. The tables below cover the 27; `vendor/` is described as one group because every entry there follows the same shape. diff --git a/AGENTS.md b/AGENTS.md index 042a34c90..6605d779f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -197,3 +197,14 @@ tooling rearrange it. Where ordering is load-bearing, the existing code carries **Tests.** Keep test bodies short; each verifies one behavior. Descriptions are concise, grammatical sentences stating the behavioral reason, e.g. `'should key the cache on every parameter, so paging does not serve a stale page'`. + + + +# This is NOT the Turborepo you know + +Turborepo configuration, task behavior, and CLI commands can vary between installed versions and may differ from your training data. Resolve the `turbo` package from this file's directory or relevant workspace; in monorepos, it may not be visible from the repository root. For example, run `node -p "require.resolve('turbo/package.json')"` from a workspace that depends on `turbo`. + +Read `docs/README.md` inside that installed package first, then read the relevant pages from its `docs/` directory before changing Turborepo configuration or commands. Heed deprecation notices. These bundled docs match the installed package version and are available without network access. + +This block is written and re-added by `turbo` before repository-scoped commands when an AI agent is detected. In the Turborepo source repository, its template is defined in `crates/turborepo-cli/src/cli/agent_guidance.rs`. Removing the managed block while updates are enabled means a later qualifying invocation will add it again. Set `"agentGuidance": false` in the root `turbo.json` or `turbo.jsonc` to opt out; this does not remove an existing block. Keep the block committed with your work to avoid an uncommitted change on the next agent invocation. + diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index bb96a5162..2f55755a3 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -6,7 +6,7 @@ ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PNPM_HOME/bin:$PATH" ENV NODE_OPTIONS="--max-old-space-size=8192" RUN corepack enable -RUN pnpm install -g turbo@2.9.16 +RUN pnpm install -g turbo@2.11.5 # PRUNE WORKSPACE # Note: Here we cannot use --docker, as is recommended, since the generated diff --git a/apps/api/package.json b/apps/api/package.json index d6d124b04..928d6d390 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -15,8 +15,8 @@ "test": "env-cmd -f ../../.env vitest" }, "dependencies": { - "@aws-sdk/client-s3": "^3.1044.0", - "@aws-sdk/s3-request-presigner": "^3.1044.0", + "@aws-sdk/client-s3": "^3.1141.0", + "@aws-sdk/s3-request-presigner": "^3.1141.0", "@casl/ability": "^6.7.5", "@casl/prisma": "^1.5.1", "@douglasneuroinformatics/libcrypto": "catalog:", @@ -24,15 +24,15 @@ "@douglasneuroinformatics/libnest": "^9.0.0", "@douglasneuroinformatics/libpasswd": "catalog:", "@douglasneuroinformatics/libstats": "catalog:", - "@faker-js/faker": "^9.4.0", - "@nestjs/axios": "^4.0.0", - "@nestjs/common": "^11.0.11", - "@nestjs/core": "^11.0.11", - "@nestjs/jwt": "^11.0.0", - "@nestjs/passport": "^11.0.5", - "@nestjs/platform-express": "^11.0.11", - "@nestjs/platform-fastify": "^11.1.11", - "@nestjs/throttler": "^6.5.0", + "@faker-js/faker": "~10.2.0", + "@nestjs/axios": "^12.0.1", + "@nestjs/common": "^11.2.6", + "@nestjs/core": "^11.2.6", + "@nestjs/jwt": "^12.0.2", + "@nestjs/passport": "^12.0.0", + "@nestjs/platform-express": "^11.2.6", + "@nestjs/platform-fastify": "^11.2.6", + "@nestjs/throttler": "^6.7.1", "@opendatacapture/demo": "workspace:*", "@opendatacapture/instrument-bundler": "workspace:*", "@opendatacapture/instrument-library": "workspace:*", @@ -45,11 +45,11 @@ "@prisma/client": "catalog:", "axios": "catalog:", "express": "^5.0.1", - "fastify": "^5.7.1", + "fastify": "^5.12.5", "hibp": "^15.2.1", - "jszip": "^3.10.1", + "jszip": "^3.10.2", "lodash-es": "workspace:lodash-es__4.x@*", - "mongodb": "^6.15.0", + "mongodb": "^7.6.0", "msgpackr": "catalog:", "neverthrow": "catalog:", "nodemailer": "catalog:", @@ -61,12 +61,11 @@ "zod": "workspace:zod__3.x@*" }, "devDependencies": { - "@nestjs/testing": "^11.0.11", + "@nestjs/testing": "^11.2.6", "@types/express": "^5.0.0", - "@types/nodemailer": "catalog:", "@types/passport": "^1.0.17", "@types/passport-jwt": "^4.0.1", - "mongodb-memory-server": "^10.3.0", + "mongodb-memory-server": "^11.3.0", "prisma": "catalog:", "prisma-json-types-generator": "^3.2.2" }, diff --git a/apps/gateway/Dockerfile b/apps/gateway/Dockerfile index a6a1631d8..60a2953e9 100644 --- a/apps/gateway/Dockerfile +++ b/apps/gateway/Dockerfile @@ -6,7 +6,7 @@ ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PNPM_HOME/bin:$PATH" ENV NODE_OPTIONS="--max-old-space-size=8192" RUN corepack enable -RUN pnpm install -g turbo@2.9.16 +RUN pnpm install -g turbo@2.11.5 # PRUNE WORKSPACE # Note: Here we cannot use --docker, as is recommended, since the generated diff --git a/apps/gateway/package.json b/apps/gateway/package.json index c0bf1658f..fe641bccc 100644 --- a/apps/gateway/package.json +++ b/apps/gateway/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@cap.js/server": "^2.0.0", - "@cap.js/widget": "^0.1.25", + "@cap.js/widget": "^0.1.58", "@douglasneuroinformatics/libcrypto": "catalog:", "@douglasneuroinformatics/libui": "catalog:", "@opendatacapture/react-core": "workspace:*", @@ -28,7 +28,7 @@ "@opendatacapture/schemas": "workspace:*", "@prisma/client": "catalog:", "axios": "catalog:", - "compression": "^1.7.5", + "compression": "^1.8.2", "express": "^5.2.1", "lodash-es": "workspace:lodash-es__4.x@*", "pino": "^10.3.1", @@ -36,8 +36,8 @@ "pino-pretty": "^13.1.3", "react": "workspace:react__19.x@*", "react-dom": "workspace:react-dom__19.x@*", - "sirv": "^2.0.4", - "sqlite3": "^5.1.7", + "sirv": "^3.0.2", + "sqlite3": "^6.0.1", "zod": "workspace:zod__3.x@*" }, "devDependencies": { @@ -47,7 +47,7 @@ "@tailwindcss/vite": "catalog:", "@types/compression": "^1.7.5", "@types/express": "^5.0.6", - "@vitejs/plugin-react-swc": "^4.3.0", + "@vitejs/plugin-react-swc": "^4.3.3", "esbuild": "catalog:", "nodemon": "catalog:", "prisma": "catalog:", diff --git a/apps/gateway/src/Root.tsx b/apps/gateway/src/Root.tsx index b2228d945..8154e01d0 100644 --- a/apps/gateway/src/Root.tsx +++ b/apps/gateway/src/Root.tsx @@ -113,7 +113,7 @@ export const Root = (props: RootProps) => { -
+
{props.kind === 'assignment' ? : }
diff --git a/apps/outreach/package.json b/apps/outreach/package.json index 2e45bad0a..4420e7227 100644 --- a/apps/outreach/package.json +++ b/apps/outreach/package.json @@ -19,21 +19,21 @@ "lodash-es": "workspace:lodash-es__4.x@*", "mdast-util-to-string": "^4.0.0", "reading-time": "^1.5.0", - "tailwind-merge": "^2.6.0", + "tailwind-merge": "^3.7.0", "zod": "workspace:zod__3.x@*" }, "devDependencies": { - "@astrojs/check": "^0.9.4", - "@astrojs/sitemap": "^3.2.1", + "@astrojs/check": "^0.9.10", + "@astrojs/sitemap": "^3.7.4", "@astrojs/starlight": "^0.34.3", - "@astrojs/starlight-tailwind": "4.0.1", + "@astrojs/starlight-tailwind": "4.0.2", "@opendatacapture/runtime-core": "workspace:*", "@opendatacapture/runtime-meta": "workspace:*", - "@tailwindcss/typography": "^0.5.16", + "@tailwindcss/typography": "^0.5.20", "@tailwindcss/vite": "catalog:", "astro": "^5.15.9", "github-slugger": "^2.0.0", - "sharp": "^0.33.5", + "sharp": "^0.34.5", "tailwindcss": "catalog:", "type-fest": "workspace:type-fest__4.x@*", "typedoc": "0.27.x", diff --git a/apps/outreach/src/components/common/SiteTitle.astro b/apps/outreach/src/components/common/SiteTitle.astro index 5f4059ea4..5b149cff3 100644 --- a/apps/outreach/src/components/common/SiteTitle.astro +++ b/apps/outreach/src/components/common/SiteTitle.astro @@ -12,7 +12,7 @@ const { className } = Astro.props; svg]:h-full [&>svg]:w-auto', className)} href={translatePath('/')}> - + {t('meta.title')} diff --git a/apps/outreach/src/components/overview/Feature.astro b/apps/outreach/src/components/overview/Feature.astro index c79495c4e..653463486 100644 --- a/apps/outreach/src/components/overview/Feature.astro +++ b/apps/outreach/src/components/overview/Feature.astro @@ -34,7 +34,7 @@ const { description, id = crypto.randomUUID(), heading, subheading, screenshot, class="flex translate-y-10 flex-col justify-end opacity-0 transition-all duration-700 lg:justify-center" id={mainContentId} > - {subheading} + {subheading}

{heading}

{description} diff --git a/apps/outreach/src/components/overview/Hero.astro b/apps/outreach/src/components/overview/Hero.astro index ae582262a..2f1f8d4c7 100644 --- a/apps/outreach/src/components/overview/Hero.astro +++ b/apps/outreach/src/components/overview/Hero.astro @@ -9,7 +9,7 @@ const { t } = useTranslations(Astro.url);

{t('landing.hero.heading')}

@@ -18,7 +18,7 @@ const { t } = useTranslations(Astro.url);

)} -