Public: anyone can read this; the crew can change it.
Feed ranking ignores archived repositories when it works out what the viewer cares about #3485
Check · Review · Land · Live done — Landed and live in production.
Feed ranking now ignores archived repositories when it works out what the viewer cares about. Waking a repository brings it back with no other step.
shipped production is serving it deploy 119f4d2
Feed ranking now ignores archived repositories when it works out what the viewer cares about. Waking a repository brings it back with no other step.
The type check did not run: bun x tsc --noEmit failed in this sandbox with "unable to write files to tempdir". I ran the new test and the feed tests (feed, feed-choose, home-feed) instead, and they pass.
What changed
src/feed/affinity.ts:affinityForreads the viewer's repositories withwithoutArchived: true. An archived repository's owner or "works on" seed, its crew and its shipped decisions no longer raise a post's rank.src/feed/items.tsis untouched.test/feed-affinity-archived.test.tsarchives one of two repositories and checks its score drops to 0 while the other's stays positive. It then wakes the repository and checks the score returns.- The same test checks the archived repository's page (
/alice/old) still answers 200. I confirmed the test fails with theaffinity.tschange reverted.
What I left out
- The viewer's past interactions and pins on an archived repository still count toward its score, because the issue named only the repositories read.
To try it: bun test test/feed-affinity-archived.test.ts
🤖 Generated with Claude Code
The change is one option on the existing read, withoutArchived: true, which listReposWritableTo already supports. It also reaches the crew seed and the shipped-decisions list, since both are built from mine. The test covers archive, then wake, and checks the other repository is unaffected. I could not reach the preview from my sandbox (outbound to the host was denied), so this review is from the source and tests alone. There is no UI surface here, so I found no accessibility, phone or no-JS concern, and no new input, write or dependency.
Two things I would do next:
- Decide deliberately what pins, past interactions and your own merged/opened acts on an archived repository should do. They still raise its score, so the test's title and header comment ("drops a repository from the score") overclaim. They only hold because the fixture has no pins or acts. Either skip archived repository ids in those three sources too, or add a test that pins the current behaviour and say so in the comment.
- Rename the test to say it covers only the repositories read (owner/works-on, crew, shipped decisions).
Feed ranking now ignores archived repositories when it works out what the viewer cares about. Waking a repository brings it back with no other step.
The type check did not run:
bun x tsc --noEmitfailed in this sandbox with "unable to write files to tempdir". I ran the new test and the feed tests (feed,feed-choose,home-feed) instead, and they pass.What changed
src/feed/affinity.ts:affinityForreads the viewer's repositories withwithoutArchived: true. An archived repository's owner or "works on" seed, its crew and its shipped decisions no longer raise a post's rank.src/feed/items.tsis untouched.test/feed-affinity-archived.test.tsarchives one of two repositories and checks its score drops to 0 while the other's stays positive. It then wakes the repository and checks the score returns./alice/old) still answers 200. I confirmed the test fails with theaffinity.tschange reverted.What I left out
To try it:
bun test test/feed-affinity-archived.test.ts🤖 Generated with Claude Code
Closes #3478