feat(1688/hupu/douban/linux-do): surface dropped ids on listings (sweep)#1302
Merged
feat(1688/hupu/douban/linux-do): surface dropped ids on listings (sweep)#1302
Conversation
Round 7 — silent-drop sweep. Continues the listing→detail id-pairing work from #1297. Each row was already extracting these ids/urls internally; only the `columns` projection was missing, so they showed up in `-f json` but never on the table view. | Adapter | Added columns | |--------------------|-------------------------------------| | `1688 search` | `item_url`, `member_id` | | `hupu mentions` | `tid`, `pid`, `url` | | `douban photos` | `photo_id`, `subject_id` | | `linux-do tags` | `slug` | Round-trip wins: - `1688 search` → `1688 item <item_url>` (item_url is the canonical detail.1688.com URL); `1688 search` → `1688 store <member_id>` - `hupu mentions` → `hupu detail <tid>` (and `pid` for the deep link) - `douban photos` → tied back to the parent movie via `subject_id` - `linux-do tags` → `linux-do feed --tag <slug>` (slug is the URL form) No logic change — only the column array. JSON output unchanged. Tests: 45/45 pass for the four affected sites.
14c1379 to
d426091
Compare
jackwener
added a commit
that referenced
this pull request
May 4, 2026
…(sweep) (#1305) * feat(youtube/xiaohongshu/xiaoe): surface dropped ids/url on listings (sweep) Round 8 same silent-column-drop class as #1300/#1301/#1302 — row already emits the id/url field but `columns` array forgot to project it, so table view drops it and agent loses the chain into detail commands. - youtube/feed: rename row.videoId → video_id (snake_case convention), add to columns. youtube/video accepts both URL and id, so url-based round-trip already worked, but exposing the canonical id removes the url-parse step for chained calls. - xiaohongshu/feed: pipeline map already extracts `id` from the homefeed payload, columns now lists it. - xiaoe/catalog: pipeline map already projects `url`, columns now lists it. xiaoe/detail takes a positional url, so this completes the round-trip explicitly. Also fixes one camelCase column violation on youtube/feed (videoId vs the project's snake_case convention as in twitter `is_retweet`/`created_at`, douban `subject_id`/`photo_id`, hupu `thread_title`). CI gate `check:listing-id-pairing` ✓ (34 sites, 77 listings, 10 exempt). typecheck clean. 114 tests pass for youtube + xiaohongshu. * fix(youtube): keep feed continuation ids after rename
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Round 7 — silent-drop sweep across four adapters surfaced by an audit run after PR #1297 (listing↔detail id-pairing convention) shipped. Each row already carries the ids internally — only the
columnsprojection was missing, so the data was visible in-f jsonbut never on the table view.1688 searchitem_url,member_id1688 item <item_url>,1688 store <member_id>hupu mentionstid,pid,urlhupu detail <tid>(pid for deep link)douban photosphoto_id,subject_idlinux-do tagssluglinux-do feed --tag <slug>This is the same bug class as PRs #1284 / #1285 / #1288 / #1289 / #1291 / #1293 / #1300 / #1301 — the row builder extracts the canonical id then drops it from columns. Each fix is one line.
What was NOT changed
Audit also flagged
tieba/search,tieba/hot,youtube/feed,xiaohongshu/feed,xiaoe/catalog, plus a few twitter listings (already covered by #1301). On re-verification:tieba/search,tieba/hot— already exposeid/urlon main; audit was stale.youtube/feed,xiaohongshu/feed,xiaoe/catalog— kept for a follow-up PR; need slightly more thought (renamevideoId→video_idfor snake_case consistency, etc.).Test plan
npx vitest run clis/1688/ clis/hupu/ clis/douban/ clis/linux-do/— 45/45 passnpm run check:listing-id-pairing— passes (the new id-pairing CI gate from feat(convention): listing↔detail id pairing rule + CI gate #1297)npx tsx src/build-manifest.ts— 660 entries, columns delta only