Add Notion datasource sync foundation#683
Conversation
|
Worker AP pushed Summary:
Verification:
Live disposable writes were not run locally because this shell has a Notion token but lacks Posted on behalf of @schickling
|
|
Worker AS update:
Verification:
Posted on behalf of @schickling
|
|
Worker AV row-create milestone is implemented and locally/live verified in commit Highlights:
Verification completed:
Epic update: #698 (comment) Posted on behalf of @schickling
|
|
Worker AY update: promoted public SQLite data-source metadata CDC for title/description. Highlights:
Verification:
Posted on behalf of @schickling
|
|
Worker BA milestone: promoted database metadata CDC for the public SQLite replica.\n\nSummary:\n- Added Posted on behalf of @schickling
|
|
Worker BC update: pushed Posted on behalf of @schickling
|
|
Worker BD update: promoted guarded public SQLite relation removals/reorders from fully paginated relation bases. Relation writes now require complete base values, preserve all non-target relation entries through replacement-shaped writes, enforce the 100 item Notion cap, and keep relation additions fail-closed until target accessibility is modeled. Verified with fake E2E, focused replica/CLI/gateway/executor coverage, and a full disposable live Notion suite using a local ledger only. Posted on behalf of @schickling
|
|
Worker BE update: pushed Posted on behalf of @schickling
|
|
Worker BF update pushed in Posted on behalf of @schickling
|
|
Worker BH pushed c918c70 (fix: model remaining datasource replica guard surfaces). Remaining high-risk product surfaces stay fail-closed unless their identity/reconciliation model is proven. Changes: added local-upload lifecycle fields to notion_file_assets; added typed fail-closed notion_view_changes CDC with compatibility projection; added E2E coverage for local upload and view-write requests staying unsupported/no-intent; corrected capabilities docs so notion_views read-only inventory is supported while view writes/query membership are not, and schema writes refer to the dedicated command path rather than public SQLite schema CDC. Verification: git diff --check; datasource-sync TypeScript; focused replica/CLI E2E 55 passed; daemon/OTel 17 passed; full disposable live Notion E2E 33 passed / 1 skipped using the Effect Utils scratch parent with local-only ledger worker-bh-20260528T000014Z.json and 0 cleanup failures. Did not stage unrelated genie/ci-workflow.ts drift or .claude/. Posted on behalf of @schickling
|
Problem
@overeng/notion-datasource-syncneeded production-grade coverage around the live Notion adapter boundary before it could be treated as more than a fail-closed foundation.Goal
Make datasource-sync prove the important Notion integration paths end-to-end: page-property pagination, canonical query/high-watermark mapping, safe schema updates, NotionMD body push, bounded daemon soak behavior, OTEL trace shape, and an automated visible demo.
Decisions
Verification
Latest landed milestone commit:
d793d9bb.Delegated final verification from Worker E:
CI=1 pnpm --dir packages/@overeng/notion-datasource-sync exec tsc -p tsconfig.json --pretty falsepassed.notion-ds-sync-d5ecbe90-fd73-41da-89af-f2806685984c.Earlier package validation on this branch also covered datasource-sync unit/E2E, notion-effect-client page-property tests, and package TypeScript checks.
Complexity
The added complexity is mostly test harness and adapter boundary code. That is intentional: the live Notion API has pagination, schema mutation, body sync, cleanup, and eventual-consistency behavior that cannot be represented safely by unit tests alone.
Concerns
devenv check:all, oxlint, and stale FOD validation were intentionally skipped per explicit user direction. Do not treat this PR as repo-wide gate complete yet.Follow-ups
References
Draft PR. Auto-merge is not enabled.
Posted on behalf of @schickling
agent_nameagent_session_idagent_toolagent_tool_versionagent_runtimeagent_modelworktreemachinetooling_profile