Skip to content

fix: restore worker builds, Convex contracts and honest release gates - #621

Draft
HomenShum wants to merge 30 commits into
mainfrom
fix/worker-clean-build-20260908
Draft

fix: restore worker builds, Convex contracts and honest release gates#621
HomenShum wants to merge 30 commits into
mainfrom
fix/worker-clean-build-20260908

Conversation

@HomenShum

@HomenShum HomenShum commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Repair worker build reproducibility and concrete Convex contracts while keeping release failures visible. Settings now opens under normal motion, restores focus to its connected opener, and keeps its existing controls reachable on phones: compact top navigation replaces the fixed sidebar, while service rows and key-input controls wrap within the content pane. Desktop keeps its sidebar and measured shell geometry.

The cumulative implementation includes:

  • Reproducible worker inputs, targeted dependency repairs, protected dotenv/container boundaries and configured Convex project-path resolution.
  • Concrete generated API visibility, research exports, delegation arguments and backend result contracts through source repairs. Funding-verification batches and phased pipeline scheduling now have finite explicit return contracts, including real internal-client checks. Type-only delegation/profile annotations preserve emitted JavaScript; SDK widening is not used.
  • Authenticated deletion admission, owner/admin checks, bounded transactional deletion with progress and honest deferred outcomes. Broad account/entity erasure remains held before destructive writes.
  • Telegram storage registration, internal administration/history, authenticated webhook admission, bounded requests/provider responses and propagated delivery failures. Provider fixtures remain synthetic.
  • A lazy optional-query adapter preserving public SDK semantics, skip gates, errors and cleanup. Saved owned calendar values false,false,auto survive readback while owner admission and unset/no-auth defaults remain.
  • Shared renderer recovery, truthful benchmark status, focused CI selection and diagnostic artifacts. The existing preflight cap is 6 GiB after a measured 4-GiB OOM; its checker, timeout, exit contract and artifacts remain. The main app step is unchanged.

Validation for candidate b162b56ad890d41b2252a8e132d902efdf123a70:

  • Current type-only follow-up: one Windows application baseline and one candidate checker run with the same explicit 6-GiB heap report 1,295 → 1,292 diagnostics, both FAIL. Both targeted circular return errors and one related cron reference error disappear; no new full diagnostic messages appear. The actual generated API rejects 9/9 invalid client calls, while positive return fields remain concrete. Both changed runtime modules emit byte-identical JavaScript.
  • Responsive source carried unchanged: 26/26 focused tests, one ordinary build, and 24/24 actual-component states at320/390/768/1440 in normal/reduced motion, with30 compact reopen cycles, keyboard/touch traversal, containment, focus and cleanup. Desktop geometry remains within one pixel. This is controlled SDK/component evidence with blocked external requests and held unrelated panels; authentication/provider/full visual grades remain open.
  • Preceding committed b803cb50 first CI is FAIL: Linux application 1,290 diagnostics, codegen 1,046 across278 files, Build skipped. Runtime smoke 587/43, renderer 21/5, generator 7/7 and then-current API checks 5/5 pass. Preflight completes in208.420s and fails on actual application typing, without heap exhaustion. These shared results precede the finite-return follow-up.
  • First shared checks for the workflow-input successor are recorded separately below; the preceding candidate remains a typing failure. Prior failed runs remain preserved; no workflow was restarted. Earlier dialog, optional-query, storage and authority evidence remains scoped to its exact source and scenarios.

Keep this PR draft. Full typing, the existing motion-variants diagnostic, authenticated/provider workflows, anonymous cold-load/loader rejection, broader deletion coverage, production adoption and complete product acceptance remain open. Separate Attrition HTTP405 failures remain suppressed and unresolved. This publication does not merge, deploy, retrieve provider keys or perform live destructive actions.

Workflow input follow-up 527db79c6c0b85e87892e60c49f6653b73666a88

The issue-comment packet action now reads event text in one static JavaScript step, serializes JSON requests and formats bounded response data without shell/step-output/sed source generation. Marker extraction is case-insensitive and preserves the original query. HTTPS origin checks, redirect refusal,60-second response deadline,256KiB body limit and awaited failure paths keep malformed or failed requests from producing a success comment. Bot replies are excluded. Attrition's manual URL is bound through the environment; its separate routing and suppressed benchmark failures remain open.

Independent scoped review accepted all five files. Actual local proof passed16/16 with60 loopbackHTTP captures, including24concurrent and20sustained queries, with intercepted GitHub posts and no provider request/public comment. The earlier Bash-PATH failure and read-only TAP decoding correction remain preserved. No app/compiler/native proof was replayed for publication. Existing full typing still fails; this narrow follow-up does not certify the application or repair unrelated errors.

NodeBench Packet is disabled_manually as an explicit reversible security hold because the vulnerable default-branch source remains unreplaced. Keep it disabled until the reviewed replacement is on default main and independently read back. CI and Attrition remain active; the hold is not CI-green or a claim that main is repaired.

The first shared CI for this exact workflow-input head is pending. No CI rerun, main merge, workflow reenabling or deployment is part of this publication.

Commit a root lock from unchanged package declarations using npm11.5.2 and
the existing legacy-peer-deps setting. Pin the Node22 base, share install
policy across stages, and remove COPY instructions for a deleted script.

Include only the public root npm setting in Cloud Build upload context;
exclude dotenv and registry-token files. Five controlled credential canaries
are excluded by the actual gcloud file-selection command, without upload.

Add a Linux CI container build and isolated startup/rejection proof. Local
Docker failed during socket startup, so container proof remains pending.
Fresh resolution has31 audit findings/13high; no security acceptance, provider
proof, image publication or deployment is claimed. Keep the candidate draft.
@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
nodebench-ai Ignored Ignored Preview Sep 9, 2026 2:05pm UTC

Request Review

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

PR size advisory

This PR adds 34499 lines of substantive change. CONTRIBUTING.md defines a soft limit of ~400 LOC.

If the PR is genuinely cohesive (e.g. an architecture map, a generated migration, a deletion of a dead module), no action is needed. Otherwise consider:

  • splitting into 2-3 PRs along independent concerns
  • pre-discussing the architecture change in a GitHub Discussion before merge

This is advisory — it does not block the merge.

The first Linux container job failed before Docker: actions/checkout with
credential persistence disabled runs submodule cleanup, which exits128 for
the accidentally tracked Claude worktree without a .gitmodules URL.

Remove only that Gitlink from future source checkouts. Its target commit
remains an ancestor of main; the three inspected local directories are empty
and untouched. Keep credential persistence disabled and the existing ignore
rule. Capture base-build diagnostics on PR runs so the failed initial checkout
does not leave the actual before-build proof missing.
The first shared runtime suite had405 passes and one failure because the
old text check required Node20 literally. Read the configured Node major
and package-manager version instead, require a pinned base and shared policy,
compare the root lock's direct graph and check that actual COPY sources exist.

Retain the existing emitted-ESM, production-only, asset, credential exclusion
and ownership checks. This source guard does not replace the actual Linux
container build/startup proof, which remains pending.
The clean Linux image built successfully but Node crashed before main because
the entrypoint imports dotenv, which npm ci --omit=dev correctly excluded.
Move its existing version range into runtime dependencies. Regenerate the
lock with declared npm11.5.2; only root metadata and dotenv's dev flag change.

Keep all233 version ranges and resolved package/integrity values unchanged.
Record the real failure and optional capability/typecheck limits in the runbook.
Actual startup after this change remains pending the isolated container gate.
@HomenShum HomenShum changed the title fix(worker): restore clean container build inputs fix(worker): restore clean container build and startup Sep 8, 2026
Scope Axios0.33.0 to paged-request without changing application ranges or
unrelated lock resolutions. Retain a real npm-api pagination and HTTP suite
covering concurrency, repeated rounds, failure/retry and credential boundaries.
Run it against the production install in the isolated worker container gate.

On Windows the same11 scenarios reproduce inherited credentials reaching a
controlled server with0.21.4 (10pass/1fail);0.33.0 passes11/11. The root audit
falls from31 affected packages/13high to27/9; production-only remains13/1.
The installed component does not call npm-api in its current source. Its
separate token-argument logging finding is documented as an open release hold.

Fresh Linux image/startup/contracts and independent review remain pending.
@HomenShum HomenShum changed the title fix(worker): restore clean container build and startup fix(worker): restore clean startup and patch HTTP dependency Sep 8, 2026
Published convex-oss-stats0.8.2 logs its full sync arguments before provider
work, including the GitHub token. Add a package-specific postinstall hook
that verifies published/repaired hashes of both entrypoints before removing
only that statement. Keep API arguments, token forwarding and scheduling.

Default clean installs apply the repair. Docker and the legacy thin manifest
include its required source. The root lock only gains hasInstallScript;
all2451 resolved package records remain unchanged.

Same six real-handler/install scenarios: unpatched2pass/4token-leakfail,
patched6pass. Cover failure, schedule replacement, concurrent/repeated sync,
idempotent installation and preflight refusal on source/version drift.
Fresh Linux startup/HTTP/token contracts and independent review are pending.
The legacy thin generator retains its pre-existing syntax/layout gaps.
@HomenShum HomenShum changed the title fix(worker): restore clean startup and patch HTTP dependency fix(worker): restore clean startup and secure statistics dependencies Sep 8, 2026
Scope Undici 6.28.1 to AI SDK provider-utils while preserving its URL,
DNS and redirect guards. Match the direct parent range without changing
any application dependency range. Inspect the three-record lock delta.

Same native contracts: old 10 passes/1 excessive-encoding failure,
patched 11 passes. Both versions retrieve the bounded public tarball
through real native fetch/DNS and verify its published SHA512 identity.
Extend the actual Linux production-image gate with these download lanes.

Production audit has zero high findings, with 12 lower-severity findings
remaining; the development-inclusive graph still has 9 high findings.
Fresh Linux proof and independent review remain pending at authoring.
@HomenShum HomenShum changed the title fix(worker): restore clean startup and secure statistics dependencies fix(worker): restore clean startup and secure installed dependencies Sep 8, 2026
Scope SDK0.91.1 to the existing Pi-AI dependency path, reusing the patched
root client and removing only its obsolete nested0.90.0 lock entry.
Keep all application ranges and the model/provider interface unchanged.

Both native clients pass9 actual local HTTP/SSE scenarios. Both memory
helpers pass4 operation scenarios; Windows explicitly skips2 POSIX cases.
Require the Linux image to reproduce exactly2 old permission failures
and pass all6 scenarios against the installed patched dependency.

The canary retrieves one fixed public tarball with a4MiB cap and published
SHA512, extracting only3 required fixture modules. It never accesses
personal memory or enters the production dependency graph.

Production audit9/0high, full24/9high. Fresh Linux proof and independent
review remain pending at authoring; retain the draft and remaining holds.
Keep exact source and copy available through lazy-renderer failure, remove lifetime snippet caches, and retire the unused Prism wrapper dependency chain. Add focused regression coverage to CI.
@HomenShum HomenShum changed the title fix(worker): restore clean startup and secure installed dependencies fix: restore repeatable installs and secure dependency boundaries Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

❌ Dogfood Visual QA Gate: FAILED

Check Status
Screenshots 23 captured (pass)
Walkthrough 9 chapters (pass)
Key Frames 9 extracted (pass)
Scribe Steps 8 how-to steps (pass)
Build cancelled
Artifacts

Download the dogfood-evidence-82aaedb artifact from the Actions tab for full screenshots, frames, and walkthrough video.


Generated by Dogfood QA Gate

Rendered contrast measured below target with the dark destructive background token. Use readable error foregrounds and suppress feedback-class transitions.
Guard Convex dynamic codegen at the published 1.45.0 bytes, retain per-module inference at repository scale, and replace the empty application check with actual source and caller checks. Preserve failed diagnostics in CI; full application typing remains unresolved.
@HomenShum HomenShum changed the title fix: restore repeatable installs and secure dependency boundaries fix: restore repeatable installs, dependency boundaries and real app checks Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript Convex

Detail: convex typecheck failed

backend/convex/workflows/specializedLinkedInPosts.ts(1038,35): error TS18046: 'internal.domains.social.specializedPostQueries' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1062,31): error TS18046: 'internal.workflows.dailyLinkedInPostMutations' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1228,42): error TS18046: 'internal.domains.social.linkedinPosting' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1248,33): error TS18046: 'internal.domains.social.specializedPostQueries' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1270,31): error TS18046: 'internal.workflows.dailyLinkedInPostMutations' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1455,42): error TS18046: 'internal.domains.social.linkedinPosting' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1473,33): error TS18046: 'internal.domains.social.specializedPostQueries' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1495,31): error TS18046: 'internal.workflows.dailyLinkedInPostMutations' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1542,7): error TS18046: 'internal.domains.social.specializedPostQueries' is of type 'unknown'.
backend/convex/workflows/specializedLinkedInPosts.ts(1565,11): error TS18046: 'internal.domains.social.specializedPostQueries' is of type 'unknown'.
backend/convex/workflows/testDailyBrief.ts(15,7): error TS18046: 'internal.workflows.dailyMorningBrief' is of type 'unknown'.
backend/convex/workflows/testDailyBrief.ts(36,7): error TS18046: 'api.domains.research.dashboardQueries' is of type 'unknown'.
backend/convex/workflows/testDailyBrief.ts(49,7): error TS18046: 'internal.domains.research.dashboardQueries' is of type 'unknown'.
backend/convex/workflows/testDailyBrief.ts(55,7): error TS18046: 'internal.domains.research.dailyBriefMemoryQueries' is of type 'unknown'.
backend/convex/workflows/testDailyBrief.ts(154,25): error TS18046: 'api.domains.integrations.ntfy' is of type 'unknown'.
backend/convex/workflows/weeklySourceSummary.ts(70,39): error TS18046: 'internal.domains.enrichment.fundingQueries' is of type 'unknown'.
backend/convex/workflows/weeklySourceSummary.ts(217,47): error TS18046: 'internal.workflows.weeklySourceSummary' is of type 'unknown'.

Fix: Run npx tsc -p backend/convex --noEmit --pretty false.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@HomenShum HomenShum changed the title fix: restore worker installs, backend boundaries and honest app gates fix: restore worker builds, Convex contracts and honest release gates Sep 8, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

[2259:0x1b38f000]   191274 ms: Mark-Compact 4030.6 (4129.8) -> 4014.7 (4130.1) MB, pooled: 2 MB, 1666.24 / 0.00 ms  (average mu = 0.063, current mu = 0.010) allocation failure; scavenge might not succeed
[2259:0x1b38f000]   192926 ms: Mark-Compact 4030.8 (4130.1) -> 4014.8 (4130.3) MB, pooled: 2 MB, 1633.05 / 0.00 ms  (average mu = 0.038, current mu = 0.012) allocation failure; scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 0xe46bbe node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 2: 0x1244310 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 3: 0x12445e7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 4: 0x14734f5  [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 5: 0x1473523  [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 6: 0x148c5fa  [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 7: 0x148f7c8  [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]
 8: 0x1cf8351  [/opt/hostedtoolcache/node/22.23.2/x64/bin/node]

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Vercel preflight failed: TypeScript app

Detail: app typecheck failed

backend/convex/tools/wrappers/resourceLinkTools.ts(39,67): error TS2551: Property 'retrieveFullArtifact' does not exist on type '{ retrieveArtifact: FunctionReference<"action", "public", { budget?: number | undefined; resourceId?: Id<"resourceLinks"> | undefined; artifactId: Id<"sourceArtifacts">; query: string; }, RetrievalResult, string | undefined>; retrieveMultipleArtifacts: FunctionReference<...>; }'. Did you mean 'retrieveArtifact'?
backend/convex/workflows/dailyLinkedInPost.ts(1242,32): error TS2615: Type of property '_' circularly references itself in mapped type '{ _: { postDailyDigestToLinkedIn: FunctionReference<"action", "internal", { model?: string | undefined; persona?: string | undefined; dryRun?: boolean | undefined; hoursBack?: number | undefined; didYouKnowUrls?: string[] | undefined; didYouKnowTonePreset?: "homer_bot_clone" | ... 2 more ... | undefined; forcePost?:...'.
backend/convex/workflows/deepTrace.ts(90,7): error TS2322: Type 'ResearchCellOutput' is not assignable to type '{ [key: string]: unknown; triggered: boolean; }'.
  Index signature for type 'string' is missing in type 'ResearchCellOutput'.
backend/convex/workflows/enhancedMorningBrief.ts(92,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(123,90): error TS2339: Property 'searchForTopic' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(362,80): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/enhancedMorningBrief.ts(388,77): error TS2339: Property 'generateEnhancedBrief' does not exist on type '{}'.
backend/convex/workflows/scheduledPDFReports.ts(1117,15): error TS2322: Type 'string' is not assignable to type '3 | 2 | 4 | 1 | 5 | undefined'.
backend/convex/workflows/specializedLinkedInPosts.ts(1049,15): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1257,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/specializedLinkedInPosts.ts(1482,13): error TS2322: Type 'string | undefined' is not assignable to type 'string'.
  Type 'undefined' is not assignable to type 'string'.
backend/convex/workflows/testDailyBrief.ts(15,44): error TS2339: Property 'runDailyMorningBrief' does not exist on type '{}'.

Fix: Run npm run typecheck:app.

HomenShum added a commit that referenced this pull request Sep 11, 2026
…son (#625)

One shared resolver (src/project.ts) honoring convex.json functions with convex/, src/convex, backend/convex fallbacks; all 19 tool files import it; the architect single-file test derives the schema path from it; projectResolution.test.ts pins the behaviour; the real-backend audit test gets the same 30s budget as the neighbouring repo scans. Fixes the nightly Convex MCP Eval Gate red since PR #590 moved the backend. Carved out of #621.
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