feat: add bounded exact bookmark materialization - #181
Conversation
Provide one bounded non-LLM exact-ID source operation without bulk thread sync, database migrations, or persistence. Reuse the TweetDetail parsing work from upstream PR afar1#141. Co-authored-by: Eric Litman <28211+ericlitman@users.noreply.github.com>
Repair pagination, exact-ID, nested-media, asset-binding, and article-currentness boundaries found in exact-head review.
Reject identity-less responses and fail closed on unsupported or unbound TweetDetail continuation cursors.
Recognize prefixed continuation cursors and replacement-entry delivery while failing closed on unknown cursor shapes.
Inspect entry arrays independent of instruction name so unknown cursor delivery cannot imply exhaustion.
|
Final repaired head: Validation:
The review cycle repaired and froze fail-closed boundaries for pagination/cursor exhaustion, response-owned exact IDs, parent/continuation media, URL-keyed poster/video assets, and stale X Article currentness. This remains a bounded foreground read-only source-owner operation; it adds no bulk persistence, database migration, LLM, scheduler, or background research behavior. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 189cc1de9a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Superseding exact-head settlement: The three findings from the prior review are repaired:
Validation is green: build, 66/66 focused tests, 586/586 full tests, diff hygiene, and a fresh exact-head CRITICAL/HIGH review with no findings. No source-local path leakage was found. The PR remains a bounded, foreground, non-LLM source-owner operation; upstream merge remains maintainer-owned. |
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8fb4b6890e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6b85d6e84c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head Current evidence: build PASS; focused materialization/GraphQL/refresh suite 104/104 PASS; full suite PASS; diff hygiene clean. Please focus on article full-body admission, focal-tweet traversal binding, distinct-vs-equivalent article locators, cursor completeness, and the source-owner/BMA component contract. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0dee3f9837
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head Current evidence: build PASS; focused changed-surface suite 136/136 PASS; full suite 593/593 PASS; diff hygiene clean. Please focus on raw-archive/index enrichment overlay, malformed TweetDetail fail-closed behavior, request throttling, ambiguous Article identity, full-body admission, focal/cursor completeness, and the source-owner/BMA component contract. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26fdc2d263
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a418689fe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
ft materialize <id> --jsonfor one exact archived X bookmarkWhy this shape
Research systems need more than the bookmarked root: thread continuations, quote context, X Articles, outbound identities, and attached media can carry the decision-material content. This provides that source-owner boundary while remaining query-time and local-first.
Unlike a corpus-wide thread sync, this change adds no database migration, FTS column, scheduler, background job, classification, or LLM.
--refreshdoes not modify the bookmark archive or index. Destination pages/PDFs and OCR/transcript/visual interpretation remain explicit gaps for their source owners rather than inferred content.This is a deliberately thinner complement/alternative to #141 and addresses the exact-id use case behind #59. The TweetDetail parser and same-author continuation logic are based on Eric Litman's work in #141; the commit retains co-author attribution.
Safety
Validation
Exact candidate head:
26fdc2d263b40f7940347cd22eb785ed9c75fc30(tree5c70c3af2f95905d43eb2b25e113838a26dbec37).npm run build— PASSnpm test— 593/593 PASSgit diff --check— PASSFresh Codex review is requested on the current head. Upstream merge remains maintainer-owned, and downstream plans assume no merge for at least 48 hours.