gsxdsm
bebb46ff41
FN-9037: add indexed recommendation task lookups
Keep recommendation task creation responsive without changing duplicate-intake semantics.
- Add project-scoped proposal claim and source-lineage persistence reads with supporting indexes.
- Use bounded lookups for recommendation replay and same-agent duplicate intake.
- Resolve terminal lanes from each candidate's workflow and cover the indexed query paths.
Files changed:
.changeset/fn-9037-recommendation-create-perf.md | 7 ++
docs/storage.md | 4 +
.../intake-duplicate-terminal-lanes.test.ts | 3 +-
.../postgres/proposal-claim-lookup.pg.test.ts | 106 +++++++++++++++++++++
.../__tests__/same-agent-duplicate-intake.test.ts | 14 ++-
.../0059_fn_9037_tasks_source_agent_index.sql | 3 +
packages/core/src/postgres/schema-applier.ts | 12 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/store.ts | 8 +-
.../core/src/task-store/async/async-persistence.ts | 40 ++++++++
packages/core/src/task-store/reads.ts | 18 +++-
packages/core/src/task-store/task-creation.ts | 10 +-
.../__tests__/task-recommendation-routes.test.ts | 38 +++++++-
.../src/routes/register-task-workflow-routes.ts | 20 ++--
14 files changed, 259 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-9037
Fusion-Task-Lineage: ea44d65c-98cc-4a5b-a116-b3c28f14c292
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-13 17:13:56 -07:00
..
2026-08-10 03:50:58 -07:00
2026-08-13 17:13:56 -07:00
2026-08-12 07:43:29 -07:00
2026-08-12 13:29:34 -07:00
2026-08-12 16:03:30 -07:00
2026-08-08 22:55:38 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 20:25:59 -07:00
2026-08-03 00:20:53 -07:00
2026-08-04 08:57:30 -07:00
2026-08-12 07:43:29 -07:00
2026-08-08 18:56:43 -07:00
2026-08-12 21:15:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 13:33:16 -10:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-13 15:30:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-09 15:16:12 -07:00
2026-08-09 15:46:09 -10:00
2026-08-13 16:01:57 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 11:50:56 -07:00
2026-08-12 07:43:29 -07:00
2026-08-13 17:13:56 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-03 00:20:53 -07:00
2026-08-12 07:43:29 -07:00
2026-08-12 16:03:30 -07:00
2026-08-13 17:13:56 -07:00
2026-08-11 10:57:36 -10:00
2026-08-12 22:18:18 -07:00
2026-08-11 13:34:27 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 14:22:14 -07:00
2026-08-12 22:18:18 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-07-31 21:56:30 -07:00
2026-07-31 21:56:30 -07:00
2026-08-05 16:46:53 -07:00
2026-08-13 17:13:56 -07:00
2026-08-01 02:47:25 -07:00
2026-08-03 00:20:53 -07:00
2026-07-22 08:30:12 -07:00
2026-08-03 00:20:53 -07:00
2026-08-12 21:15:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-12 22:18:18 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00