feat(session-query): expose projectSessions batch projection

Public SessionQueryService.projectSessions wraps the existing corpus
projectMany: one persistence listing, bounded persisted-inspect
concurrency, per-id failure isolation, and a synchronous projector over
a borrowed source with no replay validation or cloning.
readTitleSnapshots now routes through it; LogicalSessionSource and
LogicalProjectionResult are exported and documented.
This commit is contained in:
Turtle
2026-07-31 16:09:05 +08:00
parent 66f8cc074e
commit 6e577843c8
12 changed files with 143 additions and 11 deletions

View File

@@ -55,6 +55,8 @@ export const LINK_MAP: Readonly<Record<string, string>> = {
SessionEvent: 'core.md',
SessionId: 'core.md',
SessionStartSource: 'core.md',
LogicalProjectionResult: 'session-query.md',
LogicalSessionSource: 'session-query.md',
SessionLogSnapshot: 'session-query.md',
SessionSurfaceSnapshot: 'session-query.md',
ApprovalOutcome: 'approval.md',

View File

@@ -449,6 +449,16 @@
"symbol": "SessionTitleObservationResult",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.md",
"symbol": "LogicalSessionSource",
"source": "packages/session-query/session-query/src/corpus.ts"
},
{
"doc": "docs/core-data-structures/session-query.md",
"symbol": "LogicalProjectionResult",
"source": "packages/session-query/session-query/src/corpus.ts"
},
{
"doc": "docs/core-data-structures/session-query.md",
"symbol": "SessionEventRecord",