Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
## [1.6.20]
## [1.6.21]

### Fixes

- **fix(notion): parse one-way (`single_property`) relation columns instead of aborting the whole database.** `RelationProp.from_dict` only handled two-way (`dual_property`) relations and `raise`d `ValueError("single_property type not recognized")` for anything else. A normal one-way relation column — the Notion default — therefore failed to map, and because the error propagates up to database retrieval it aborted extraction of the *entire* database (every property and row), not just the relation field. `dual_property` is now optional and only parsed when present; one-way relations map with `dual_property=None`, and unmodeled future relation `type`s no longer raise. Adds regression tests for single/dual/unknown relation variants and the relation cell.
- **harden(notion): drop unknown keys across the page-block extraction path so additive Notion API fields can't break mapping.** Notion ships new, backwards-compatible keys on object payloads (e.g. ordered-list `list_format`/`list_start_index` on `numbered_list_item`), but the connector mapped most types with a bare `cls(**data)` that raises `TypeError` the moment an unmodeled key appears — which had already taken down `numbered_list_item` downloads. A shared `init_from_dict` helper (in the notion `interfaces` module) now instantiates each dataclass from only its declared fields, dropping unknown keys while still surfacing genuinely-missing required fields. It is applied across the block layer (`paragraph`, `heading`, `quote`, `toggle`, `to_do`, `template`, `table_of_contents`, `numbered_list_item`, `child_database`, `child_page`, `embed`, `equation`, `link_preview`, `link_to_page`, `table`, and the `callout` icon sub-types), the rich-text leaves parsed inside nearly every block (`Annotations`, `Text`, `RichText`, the `Mention*` types, `Equation`; `RichText` also tolerates a missing `annotations` key), the file objects backing image/video/file/PDF blocks (`External`, `File` — `expiry_time` is now optional), and the `relation` database property. `link_to_page` variants the dataclass doesn't model (e.g. `comment_id`) now map cleanly and simply render nothing instead of raising. Adds comprehensive unit coverage for every block type plus the helper, rich-text, file, and relation hardening.

## [1.6.20]

### Fixes
- **test(stager): de-flake the stager bounded-memory tests.** `test_process_whole_peak_memory_is_flat_as_input_grows` and `test_blob_store_stager_peak_memory_is_flat_as_input_grows` asserted a near-flat `tracemalloc` peak ratio between two input sizes. `tracemalloc`'s peak includes not-yet-collected per-element garbage, so the ratio varies with GC timing across environments and the blob-store test failed on CI even though the streamed peak (~3.8 MB) was a small fraction of the ~47 MB input. The tests now assert the meaningful streaming-vs-whole-file bound — peak stays below the input file size (a whole-file load materializes the parsed list at several times the JSON text) — which is robust to GC timing while still catching a regression to whole-file loading.

## [1.6.19]
Expand Down
Empty file.
Loading
Loading