chore: sync main onto upstream tag v1.6.0 - #11
Merged
Conversation
Bumps the production-dependencies group with 10 updates: | Package | From | To | | --- | --- | --- | | [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1033.0` | `3.1037.0` | | [@better-auth/sso](https://github.com/better-auth/better-auth/tree/HEAD/packages/sso) | `1.6.5` | `1.6.9` | | [@nuxtjs/i18n](https://github.com/nuxt-modules/i18n) | `10.2.4` | `10.3.0` | | [@posthog/nuxt](https://github.com/PostHog/posthog-js/tree/HEAD/packages/nuxt) | `1.7.0` | `1.7.13` | | [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.3` | `4.2.4` | | [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth) | `1.6.5` | `1.6.9` | | [nodemailer](https://github.com/nodemailer/nodemailer) | `8.0.5` | `8.0.6` | | [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.29.2` | `5.30.4` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.3` | `4.2.4` | | [vue](https://github.com/vuejs/core) | `3.5.32` | `3.5.33` | Updates `@aws-sdk/client-s3` from 3.1033.0 to 3.1037.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1037.0/clients/client-s3) Updates `@better-auth/sso` from 1.6.5 to 1.6.9 - [Release notes](https://github.com/better-auth/better-auth/releases) - [Changelog](https://github.com/better-auth/better-auth/blob/main/packages/sso/CHANGELOG.md) - [Commits](https://github.com/better-auth/better-auth/commits/@better-auth/sso@1.6.9/packages/sso) Updates `@nuxtjs/i18n` from 10.2.4 to 10.3.0 - [Release notes](https://github.com/nuxt-modules/i18n/releases) - [Changelog](https://github.com/nuxt-modules/i18n/blob/main/CHANGELOG.md) - [Commits](nuxt-modules/i18n@v10.2.4...v10.3.0) Updates `@posthog/nuxt` from 1.7.0 to 1.7.13 - [Release notes](https://github.com/PostHog/posthog-js/releases) - [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/nuxt/CHANGELOG.md) - [Commits](https://github.com/PostHog/posthog-js/commits/@posthog/nuxt@1.7.13/packages/nuxt) Updates `@tailwindcss/vite` from 4.2.3 to 4.2.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/@tailwindcss-vite) Updates `better-auth` from 1.6.5 to 1.6.9 - [Release notes](https://github.com/better-auth/better-auth/releases) - [Changelog](https://github.com/better-auth/better-auth/blob/main/packages/better-auth/CHANGELOG.md) - [Commits](https://github.com/better-auth/better-auth/commits/better-auth@1.6.9/packages/better-auth) Updates `nodemailer` from 8.0.5 to 8.0.6 - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](nodemailer/nodemailer@v8.0.5...v8.0.6) Updates `posthog-node` from 5.29.2 to 5.30.4 - [Release notes](https://github.com/PostHog/posthog-js/releases) - [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md) - [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.30.4/packages/node) Updates `tailwindcss` from 4.2.3 to 4.2.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/tailwindcss) Updates `vue` from 3.5.32 to 3.5.33 - [Release notes](https://github.com/vuejs/core/releases) - [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md) - [Commits](vuejs/core@v3.5.32...v3.5.33) --- updated-dependencies: - dependency-name: "@aws-sdk/client-s3" dependency-version: 3.1037.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@better-auth/sso" dependency-version: 1.6.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@nuxtjs/i18n" dependency-version: 10.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@posthog/nuxt" dependency-version: 1.7.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@tailwindcss/vite" dependency-version: 4.2.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: better-auth dependency-version: 1.6.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: nodemailer dependency-version: 8.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: posthog-node dependency-version: 5.30.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: tailwindcss dependency-version: 4.2.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: vue dependency-version: 3.5.33 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
- Implemented property loading and attachment helpers in `properties.ts` for managing custom properties. - Created Zod schemas for property definitions and configurations in `schemas/property.ts`. - Introduced shared types and utility functions for properties in `shared/properties.ts`. Co-authored-by: Copilot <copilot@github.com>
- PropertyValueEditor: replace v-model with cast (invalid esbuild assignment target) with :value + @input handlers for text/long_text/date inputs - useSavedViews: avoid UnwrapRef widening by typing ref<T> via cast
Security: - property URL validator restricts to http(s) schemes (block javascript:/data: XSS) Validation/correctness: - propertyConfigSchema drops passthrough() so malformed configs are rejected - createPropertyDefinitionSchema superRefine rejects jobId for candidate properties - properties POST uses isNull(jobId) instead of eq(jobId, null) so org-global displayOrder works - properties reorder enforces single (entityType, jobId) scope across submitted ids - applications/candidates list endpoints schema-validate propertyFilters (max 20, allow-list ops, reject isEmpty) - entityIdsMatchingFilters rejects isEmpty operator (cannot compute complement here) - loadPropertyEntriesForEntities supports per-entity job filtering via entityJobIds map (no cross-job leak) UX: - saved view settings persist propertyFilters for both applications and candidates pages - PropertyFilterBar splits chip into adjacent buttons so the remove affordance is keyboard/SR-accessible - replace 'as never' casts with PropertyEntry[] on application/candidate detail pages Cleanup: - remove unused sql import in applications/index.get.ts and unused defById in properties.ts - update PUT route docs: pass null to clear (matches validator)
- Implemented ApplicationDetailDrawer.vue for displaying application details, including status transitions, notes editing, and properties. - Implemented CandidateDetailDrawer.vue for displaying candidate details, including contact information, applications, and documents. - Enhanced UI with improved styling and responsiveness. - Added functionality for scheduling interviews and handling document previews. Co-authored-by: Copilot <copilot@github.com>
… component interactions
…sistency Co-authored-by: Copilot <copilot@github.com>
…d element references and state management Co-authored-by: Copilot <copilot@github.com>
… views Co-authored-by: Copilot <copilot@github.com>
feat: add property management utilities and schemas
…RELEASE_PLEASE_TOKEN
Bumps [googleapis/release-please-action](https://github.com/googleapis/release-please-action) from 4 to 5. - [Release notes](https://github.com/googleapis/release-please-action/releases) - [Changelog](https://github.com/googleapis/release-please-action/blob/main/CHANGELOG.md) - [Commits](googleapis/release-please-action@v4...v5) --- updated-dependencies: - dependency-name: googleapis/release-please-action dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…uction-dependencies-443db5cc29 chore(deps): bump the production-dependencies group with 10 updates
…ogleapis/release-please-action-5 chore(actions): bump googleapis/release-please-action from 4 to 5
…in--components--reqcore chore: release v1.4.0
- Added nonce-based Content Security Policy (CSP) middleware to replace 'unsafe-inline' directive for script-src. - Generates a unique nonce per request and injects it into the CSP header. - Skips nonce generation for API endpoints, Nuxt assets, and static files. feat: add pgDumpEnv utility to secure environment variable handling - Introduced pgDumpEnv utility to build a sanitized environment for pg_dump. - Only allows a minimal set of system variables and PGPASSWORD to prevent leaking sensitive application secrets. test: add unit tests for pgDumpEnv utility - Created comprehensive tests for pgDumpEnv to ensure application secrets are not leaked. - Validated that only allowed environment variables are forwarded to child processes. fix: enhance rate limiting logic and add tests - Updated rate limiting implementation to warn about in-memory state across replicas. - Added unit tests to verify rate limiting behavior, including request limits and header emissions. test: add security tests for recent fixes - Implemented tests for various security fixes including nonce-based CSP, HKDF key separation, and rate limiting enforcement in CI environments. - Ensured that all security measures are validated and functioning as intended. Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…roduction Co-authored-by: Copilot <copilot@github.com>
feat: implement nonce-based CSP middleware for enhanced security
Bumps the production-dependencies group with 14 updates: | Package | From | To | | --- | --- | --- | | [@ai-sdk/anthropic](https://github.com/vercel/ai/tree/HEAD/packages/anthropic) | `3.0.71` | `3.0.74` | | [@ai-sdk/google](https://github.com/vercel/ai/tree/HEAD/packages/google) | `3.0.64` | `3.0.67` | | [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `3.0.53` | `3.0.58` | | [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1037.0` | `3.1041.0` | | [@opentelemetry/api-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.215.0` | `0.216.0` | | [@opentelemetry/exporter-logs-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.215.0` | `0.216.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.7.0` | `2.7.1` | | [@opentelemetry/sdk-logs](https://github.com/open-telemetry/opentelemetry-js) | `0.215.0` | `0.216.0` | | [@posthog/nuxt](https://github.com/PostHog/posthog-js/tree/HEAD/packages/nuxt) | `1.7.13` | `1.7.21` | | [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.168` | `6.0.174` | | [nodemailer](https://github.com/nodemailer/nodemailer) | `8.0.6` | `8.0.7` | | [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt) | `4.4.2` | `4.4.4` | | [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.30.4` | `5.33.0` | | [zod](https://github.com/colinhacks/zod) | `4.3.6` | `4.4.2` | Updates `@ai-sdk/anthropic` from 3.0.71 to 3.0.74 - [Release notes](https://github.com/vercel/ai/releases) - [Changelog](https://github.com/vercel/ai/blob/@ai-sdk/anthropic@3.0.74/packages/anthropic/CHANGELOG.md) - [Commits](https://github.com/vercel/ai/commits/@ai-sdk/anthropic@3.0.74/packages/anthropic) Updates `@ai-sdk/google` from 3.0.64 to 3.0.67 - [Release notes](https://github.com/vercel/ai/releases) - [Changelog](https://github.com/vercel/ai/blob/@ai-sdk/google@3.0.67/packages/google/CHANGELOG.md) - [Commits](https://github.com/vercel/ai/commits/@ai-sdk/google@3.0.67/packages/google) Updates `@ai-sdk/openai` from 3.0.53 to 3.0.58 - [Release notes](https://github.com/vercel/ai/releases) - [Changelog](https://github.com/vercel/ai/blob/@ai-sdk/openai@3.0.58/packages/openai/CHANGELOG.md) - [Commits](https://github.com/vercel/ai/commits/@ai-sdk/openai@3.0.58/packages/openai) Updates `@aws-sdk/client-s3` from 3.1037.0 to 3.1041.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1041.0/clients/client-s3) Updates `@opentelemetry/api-logs` from 0.215.0 to 0.216.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.215.0...experimental/v0.216.0) Updates `@opentelemetry/exporter-logs-otlp-http` from 0.215.0 to 0.216.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.215.0...experimental/v0.216.0) Updates `@opentelemetry/resources` from 2.7.0 to 2.7.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v2.7.0...v2.7.1) Updates `@opentelemetry/sdk-logs` from 0.215.0 to 0.216.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.215.0...experimental/v0.216.0) Updates `@posthog/nuxt` from 1.7.13 to 1.7.21 - [Release notes](https://github.com/PostHog/posthog-js/releases) - [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/nuxt/CHANGELOG.md) - [Commits](https://github.com/PostHog/posthog-js/commits/@posthog/nuxt@1.7.21/packages/nuxt) Updates `ai` from 6.0.168 to 6.0.174 - [Release notes](https://github.com/vercel/ai/releases) - [Changelog](https://github.com/vercel/ai/blob/ai@6.0.174/packages/ai/CHANGELOG.md) - [Commits](https://github.com/vercel/ai/commits/ai@6.0.174/packages/ai) Updates `nodemailer` from 8.0.6 to 8.0.7 - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](nodemailer/nodemailer@v8.0.6...v8.0.7) Updates `nuxt` from 4.4.2 to 4.4.4 - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v4.4.4/packages/nuxt) Updates `posthog-node` from 5.30.4 to 5.33.0 - [Release notes](https://github.com/PostHog/posthog-js/releases) - [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md) - [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.33.0/packages/node) Updates `zod` from 4.3.6 to 4.4.2 - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](colinhacks/zod@v4.3.6...v4.4.2) --- updated-dependencies: - dependency-name: "@ai-sdk/anthropic" dependency-version: 3.0.74 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@ai-sdk/google" dependency-version: 3.0.67 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@ai-sdk/openai" dependency-version: 3.0.58 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@aws-sdk/client-s3" dependency-version: 3.1041.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@opentelemetry/api-logs" dependency-version: 0.216.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@opentelemetry/exporter-logs-otlp-http" dependency-version: 0.216.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@opentelemetry/resources" dependency-version: 2.7.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: "@opentelemetry/sdk-logs" dependency-version: 0.216.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: "@posthog/nuxt" dependency-version: 1.7.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: ai dependency-version: 6.0.174 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: nodemailer dependency-version: 8.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: nuxt dependency-version: 4.4.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: posthog-node dependency-version: 5.33.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies - dependency-name: zod dependency-version: 4.4.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…uction-dependencies-09cdec8072 chore(deps): bump the production-dependencies group with 14 updates
Update existing overrides: - axios: >=1.13.6 -> >=1.16.1 (fixes prototype pollution, SSRF, CRLF injection, null byte injection, credential injection, header injection, DoS — 13 CVEs including GHSA-w9j2-pvgh-6h63, GHSA-pmwg-cvhr-8vh7, GHSA-3w6x-2g7m-8v23, etc.) - devalue: >=5.6.4 -> >=5.8.1 (fixes DoS via sparse array — GHSA-77vg-94rm-hx3p) Add new overrides: - fast-xml-builder: >=1.2.0 (fixes attribute injection, comment value regex bypass — GHSA-5wm8-gmm8-39j9, GHSA-45c6-75p6-83cc) - kysely: >=0.28.17 (fixes JSON-path traversal injection — GHSA-pv5w-4p9q-p3v2) - simple-git: >=3.36.0 (fixes RCE — GHSA-hffm-xvc3-vprc) - protobufjs: >=8.3.0 (fixes code injection, DoS, prototype injection — 7 CVEs including GHSA-66ff-xgx4-vchm, GHSA-2pr8-phx7-x9h3, GHSA-fx83-v9x8-x52w, etc. transitive via @opentelemetry/otlp-transformer 0.216+)
- Set fast-xml-parser to version 5.7.1 - Updated minimatch to 10.2.5 - Updated glob to 13.0.6 - Set @isaacs/brace-expansion to version 5.0.1 - Updated axios to version 1.16.1 - Updated rollup to 4.60.1 - Updated esbuild to 0.28.0 - Updated serialize-javascript to 7.0.5 - Updated underscore to 1.13.8 - Updated h3 to 1.15.11 - Updated unhead to 2.1.13 - Set uuid to version 14.0.0 - Set fast-xml-builder to version 1.2.0 - Kept kysely at version 0.28.17 - Kept simple-git at version 3.36.0 - Kept protobufjs at version 8.3.0
Update package dependencies
…in--components--reqcore chore: release v1.5.0
- Updated @better-auth/sso from ^1.6.9 to ^1.6.16 - Updated better-auth from ^1.6.1 to ^1.6.16 - Updated nuxt from ^4.4.4 to ^4.4.8 - Updated @crowdin/cli from ^4.14.0 to ^4.14.2 - Updated @playwright/test from ^1.58.2 to ^1.60.0 - Updated @types/node from ^25.2.3 to ^25.9.3 - Updated tsx from ^4.21.0 to ^4.22.4 - Updated vitest from ^4.1.0 to ^4.1.8 - Updated vue-tsc from ^3.2.5 to ^3.3.4 - Updated wait-on from ^9.0.4 to ^9.0.10 - Updated fast-xml-parser from 5.7.1 to 5.8.0
- Update tab styling to use a pill-based navigation. - Implement compact empty states for sections in the overview tab. - Reduce vertical spacing and improve component density throughout the dashboard view.
Bumps the dev-dependencies group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [tsx](https://github.com/privatenumber/tsx), [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and [vue-tsc](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc). Updates `@types/node` from 25.9.4 to 25.9.5 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `tsx` from 4.23.0 to 4.23.1 - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](privatenumber/tsx@v4.23.0...v4.23.1) Updates `vitest` from 4.1.9 to 4.1.10 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest) Updates `vue-tsc` from 3.3.6 to 3.3.7 - [Release notes](https://github.com/vuejs/language-tools/releases) - [Changelog](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md) - [Commits](https://github.com/vuejs/language-tools/commits/v3.3.7/packages/tsc) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.9.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: tsx dependency-version: 4.23.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: vitest dependency-version: 4.1.10 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: vue-tsc dependency-version: 3.3.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…dependencies-ad78d71c5a chore(dev-deps): bump the dev-dependencies group with 4 updates
…n-page feat: Redesign application confirmation page
- Replace standard email invitations with integrated candidate conversation threads - Add `RESEND_RECEIVING_API_KEY` and associated environment configuration for inbound email handling - Limit outbound candidate messages for Free plan organizations - Update database schema to track interview personal notes and message history - Add manual fallback link for email delivery failures
Move database URL logic to a shared utility and integrate it into the environment validation schema. This ensures Railway preview environments with malformed `DATABASE_URL` strings are automatically corrected during startup. Additionally, update the auth handler to return JSON errors instead of throwing server errors to prevent masking validation failures.
Update billing logic to track started candidate conversations rather than total outbound messages. This allows unlimited messaging within existing threads for free users while capping the number of distinct conversations.
- Add `candidateMessageAttachment` table for persistent storage - Implement S3 upload/download and cleanup logic - Update frontend components to allow file attachments - Add validation and erasure support for attachments
- Added a security disclaimer to the attachment list for inbound files. - Added a 21 MB limit check for the request content-length to prevent unnecessary memory buffering of oversized multipart requests.
- Move application status transition to interview stage to server-side logic upon interview creation to ensure consistency. - Update the messaging panel layout to move secondary actions like "Open in inbox" and refresh into a more compact footer area.
- Add expand/collapse functionality to the message composer - Refine visual styling for the messaging panel and attachments - Protect against race conditions between email status webhooks and send operations by preventing status updates if a provider status exists
feat: Refactor interview scheduling and add messaging
- Enable required email verification for production sign-ups. - Add denylist for disposable email domains to prevent account spam. - Enforce rolling-hour outbound message rate limits for candidate emails and interview invitations. - Update sign-in/up flows to handle unverified sessions and verification resends.
- Require Content-Length for attachment uploads to prevent unbounded memory buffering. - Use advisory locks and idempotency checks to prevent concurrent submission races for interview responses.
…nd-guard security: Implement email verification and anti-abuse safeguards
Changed email verification from a sign-in gate to an action-gate. Users can now sign in immediately after registration, but must verify their email before performing actions that trigger outbound emails (e.g., invitations or candidate messages). Added `EmailVerificationBanner.vue` to guide users through the verification process post-sign-in.
Move the database URL resolution logic to the test fixtures and automatically verify test account emails during the sign-up flow to bypass email verification requirements.
…tion security: Defer email verification to outbound actions
…in--components--reqcore chore: release v1.6.0
… the resolved target The conf was sourced AFTER the environment defaults, so an explicit `UPSTREAM_BRANCH=v1.6.0 ./sync-upstream.sh` was silently overwritten by the conf's UPSTREAM_BRANCH=main and merged upstream's HEAD instead — which is exactly the ref we were avoiding, upstream main being red. Environment now wins over the file, UPSTREAM_REF can name a tag directly, the fetch pulls tags, and the script prints the resolved commit it is about to merge rather than only a ref name. Template defect: the identical copy is in claude-code-policy policy/gate-template/sync-upstream.sh and in twenty/.
Upstream carries workflows this org cannot run — GitHub Actions is blocked org-wide by a billing condition, so each one reports failure for an account reason and checks nothing. This repo's gate is ./verify.sh, enforced by .githooks/pre-push, and ./check-no-workflows.sh fails if they come back. Target is the TAG v1.6.0, not upstream HEAD: upstream's main has been red since 2026-08-11 (npm ci fails, EUSAGE / Missing oxc-parser@0.144.0; our reqcore-inc/reqcore#271 fixes it and is still open). Re-checked at sync time with gh run list --branch main; both Docker jobs still failing at 63a2968. Four real conflicts, resolved by reading both sides: package.json kept this fork's engines/private and the range-form security overrides, took upstream's licence/repository/homepage metadata, scripts and dependency bumps. Every override floor is now max(ours, upstream's v1.6.0 pin), so switching an exact pin to a range never lowers a version upstream had already reached. README.md upstream deliberately dropped the openalternative/Railway badges and replaced the nav line — taken. Their CI badges stay out: they point at workflows this fork deletes and would report an account failure forever. tests/unit/ai-config-schema.test.ts duplicate intent — both sides independently repaired the same stale file. Upstream's assertions are a strict superset (GCP metadata SSRF, name trim, the 80-char cap, the maxTokens ceiling), so theirs stands, with this fork's record of HOW they went stale folded into the docblock. package-lock.json regenerated, not hand-merged. Carried changes that were NOT reimposed, because upstream's tree is right: server/utils/logger.ts back to the POSITIONAL BatchLogRecordProcessor. The options-object form belongs to sdk-logs 0.221; this tree is on upstream's 0.219, whose resources ^2.8.0 already clears the @opentelemetry/core <2.8.0 advisory the 0.221 bump existed for. This one merged CLEANLY and broke typecheck — only the gate caught it. Two deviations added, both recorded in docs/UPSTREAM-DIVERGENCE.md: * ai / @ai-sdk ceilings. The tail of every current AI-SDK major is under advisory, and provider-utils 4.0.41+ pulls undici ^5.29.0 — all of undici 5.x is inside GHSA-vrm6-8vpv-qv8q, the one HIGH that fails the gate. No fix exists inside these majors; the fix is ai 7 / @ai-sdk 4, a breaking upgrade through the scoring path that needs its own review, not a sync. * unhead override raised to >=3.3.1. Upstream pins 2.1.13 while their own nuxt 4.4.8 asks for ^2.1.15, and nuxt 4.5.2 — the first release outside the nuxt advisory — needs ^3.3.1. The exact pin was already forcing their tree backwards, and it broke `npm ci` outright here. Also fixes sync-upstream.sh, which merged upstream/main on the first attempt despite an explicit UPSTREAM_BRANCH=v1.6.0: the conf was sourced after the environment. Canonical copy fixed in claude-code-policy with a mutation-checked regression test. Verified, not assumed: ./verify.sh exit 0 (556 tests, 44 files) npm audit --audit-level=high exit 0, 0 vulnerabilities npm ci in node:22.22-alpine (npm 10.9.8) exit 0 npm ci locally (npm 11.11.1) exit 0 docker build (full 27 steps, real image) exit 0 ./check-no-workflows.sh exit 0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resyncs
mainonto upstream tag v1.6.0 (4d08b0b).mainwas 258 commits behind the real upstream and had never been measured against it — until5a924c5theupstreamremote named a dead mirror.Target is the tag, not HEAD (operator decision, 2026-08-12): upstream's
mainhas been red since 2026-08-11,npm cifailing withEUSAGE / Missing: oxc-parser@0.144.0. Re-checked before starting — both Docker jobs still failing at63a2968. Our fix for it, reqcore-inc/reqcore#271, is open and unreviewed.v1.6.0upstream/main)26 is close to the floor: 21 of them are permanent overlay — the 8 workflow deletions,
verify.sh/verify-e2e.sh/check-no-workflows.sh/install-hooks.sh/.githooks/,deploy.sh,release.sh,sync-upstream.sh/.sync-upstream.conf, the divergence doc,.nvmrc,.gitignore. Only 5 are content deltas.Conflicts, resolved by reading both sides
No
--ours/--theirsanywhere.package.json— kept this fork'sengines/privateand the range-form security overrides; took upstream's licence/repository/homepage metadata, scripts and dependency bumps. Every override floor is nowmax(ours, upstream's pin), so the range form never lowers a version upstream had already reached.README.md— upstream deliberately dropped the openalternative/Railway badges and rewrote the nav line; taken. Their CI badges stay out — they point at workflows this fork deletes.tests/unit/ai-config-schema.test.ts— duplicate intent: both sides independently repaired the same stale file. Upstream's assertions are a strict superset, so theirs stands, with our record of how they went stale folded into the docblock.package-lock.json— regenerated, not hand-merged.Three carried "fixes" that were not reimposed
As predicted: the
testscript and thenode:22.22-alpinebase image were already upstream and collapsed silently. The third,server/utils/logger.ts, did not — it merged cleanly and broketypecheck. Our options-objectBatchLogRecordProcessorbelongs to sdk-logs 0.221; this tree is on upstream's 0.219. Reverted to positional. Only the gate caught it.Two new deviations, both documented
ai/@ai-sdk/*ceilings. The tail of every current AI-SDK major is under advisory, and@ai-sdk/provider-utils4.0.41+ pullsundici ^5.29.0— all of undici 5.x sits insideGHSA-vrm6-8vpv-qv8q, the one HIGH that fails the gate. There is no fixed release inside these majors; the fix isai7 /@ai-sdk4, a breaking upgrade through the scoring and shortlisting path. That needs its own review, not a sync — filed separately.unheadoverride raised to>=3.3.1. Upstream pins2.1.13while their own nuxt 4.4.8 asks for^2.1.15; nuxt 4.5.2 — the first release outside the nuxt advisory — needs^3.3.1. The exact pin was already dragging their tree backwards, and here it brokenpm cioutright.main's "0 vulnerabilities" was an artefact of a frozen lockfile.origin/main's ownpackage.json, resolved fresh today, yields 10 advisories including 2 high. This branch yields 0.Also fixed
sync-upstream.shmergedupstream/mainon the first attempt despite an explicitUPSTREAM_BRANCH=v1.6.0— the conf was sourced after the environment, so it silently won. That is the exact ref the operator chose the tag to avoid. Canonical copy fixed inclaude-code-policywith a mutation-checked regression test;twenty/still carries the old one and is named in the follow-up.Verified, not assumed
Both npm versions matter and neither is optional: the image ships npm 10.9.8, but npm 10.9.8's resolver hoists
cac@7and cannot nest thecac@6@bomb.sh/tabneeds — producing a lockfile its ownnpm cirejects. An npm 11-resolved lockfile satisfies both.Nothing deploys from
main;esc-liveis a separate branch and a separate resync.