Andrew Yim
144a17c88d
feat(notion): migrate 31+32 to API 2025-09-03 + add property writes, upsert, anchor-link fix
Phase 1 — docs alignment:
- Fix path drift in 32 CLAUDE.md (02-notion-writer → 32-notion-writer)
- Align env var to NOTION_API_KEY in 31 docs (NOTION_TOKEN still accepted)
- Document Phase 3 roadmap in 31 (metadata-aware migration, Notion-as-RAG)
Phase 2 — multi-source database support:
- New 32/scripts/_notion_compat.py: client factory, data_source resolution
with cache, property coercion, find_existing_page (for upsert),
explain_api_error for friendlier failure messages
- 32 notion_writer.py: drop the 2022-06-28 pin, route schema introspection
through data_sources.retrieve, build data_source_id parent shape, accept
arbitrary properties via --properties JSON-or-file flag, add --upsert-by
for idempotent re-runs
- 32 markdown parser: anchor-link fix — Notion's URL validator rejects
fragment URLs and relative paths; fragments now render as bold to preserve
TOC nav intent, relatives drop the link, absolute URLs preserved
- 31 async_organizer.py + schema_migrator.py: same data_sources migration
with cached resolution; pages.create now uses data_source_id parent
- 16/16 parser tests pass (was 13; +3 link-handling regression guards)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 09:57:20 +09:00
..
2026-03-23 19:32:44 +09:00
2026-04-06 00:33:59 +09:00
2026-04-06 00:33:59 +09:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-04-05 20:32:46 +09:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-03-21 12:52:59 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 12:05:59 +09:00
2026-03-08 03:09:36 +09:00
2026-03-08 03:09:36 +09:00
2026-03-08 03:09:36 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-04-27 09:57:20 +09:00
2026-02-14 01:09:35 +09:00
2026-04-27 09:57:20 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-14 01:09:35 +09:00
2026-02-03 16:48:06 +07:00
2026-02-03 16:48:06 +07:00
2026-03-31 03:20:53 +09:00
2026-02-03 16:48:06 +07:00
2026-02-03 16:48:06 +07:00
2026-03-27 20:02:00 +09:00
2026-03-29 16:21:22 +09:00
2026-03-24 20:37:24 +09:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-03-21 02:22:46 +09:00
2026-03-17 21:55:50 +09:00
2026-03-17 21:55:50 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-04-13 01:55:11 +09:00
2026-02-03 16:48:06 +07:00
2026-04-23 21:13:09 +09:00