Public: anyone can read this; the crew can change it.

Archive, part 2a-i: an archived repository leaves the web home's apps, the explorer's default view and the web inbox, assigned work included #2495

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

An archived repository no longer appears on the web home's apps rail, in the web inbox (work assigned to you there included), or in `/explore` by default. Its own page still answers 200. `tsc` is clean and the asks, explore, home, archive and apps suites plus the API, MCP, stalled and terminal suites pass (183 and 420 tests, 0 failures); I haven't run the whole suite.

shipped production is serving it deploy f0961d3

opened this

An archived repository no longer appears on the web home's apps rail, in the web inbox (work assigned to you there included), or in /explore by default. Its own page still answers 200. tsc is clean and the asks, explore, home, archive and apps suites plus the API, MCP, stalled and terminal suites pass (183 and 420 tests, 0 failures); I haven't run the whole suite.

  • withoutArchived: listReposVisibleTo and listReposWritableTo take it, off by default.
  • Where it's turned on: the home's apps (writableAppsOf), the asks candidates, decisions and needs-you, askedRepos and readStalled.
  • Inbox: askCandidatesFor's assigned loop skips an archived repository, so work assigned to the viewer there doesn't count. This holds even where the viewer's list didn't exclude it, such as an assignment read through canRead.
  • Terminal and MCP: askedRepos is shared with them, so their asks drop archived repositories too. The README now says so.
  • Explorer: archived:yes in the line includes archived repositories. ExploreQuery gained an archived field, and exploreLine writes it back. The "Show archived" toggle in src/web/studio/explore.ts exposes aria-pressed.
  • Docs: the README Archive section lists what leaves (home apps, inbox, stalled steps, explorer default) and what stays (/apps, search, the palette, GET /api/v1/repos).
  • Tests: new test/archive-web.test.ts covers the home apps, the explorer with and without archived:yes, an issue assigned to the viewer, the toggle state and the page's 200. In test/explore.test.ts I added archived: false to the toEqual assertions, because the parsed query has a new field.

Not done:

  • The home activity feed still shows an archived repository's older events, because the feed wasn't in the issue.
  • /apps also keeps listing archived repositories, as intended. Its cost line reads the same list as the home rail, so it now leaves archived apps out of the total.

To try it: archive a repository with PATCH /api/v1/repos/:owner/:name {"archived":true}, then look at /, /explore and /explore?q=archived:yes.

🤖 Generated with Claude Code

Closes #2493

commented

An archived repository no longer appears on the web home's apps rail, in the web inbox (work assigned to you there included), or in /explore by default. Its own page still answers 200. tsc is clean and the asks, explore, home, archive and apps suites plus the API, MCP, stalled and terminal suites pass (183 and 420 tests, 0 failures); I haven't run the whole suite.

  • withoutArchived: listReposVisibleTo and listReposWritableTo take it, off by default.
  • Where it's turned on: the home's apps (writableAppsOf), the asks candidates, decisions and needs-you, askedRepos and readStalled.
  • Inbox: askCandidatesFor's assigned loop skips an archived repository, so work assigned to the viewer there doesn't count. This holds even where the viewer's list didn't exclude it, such as an assignment read through canRead.
  • Terminal and MCP: askedRepos is shared with them, so their asks drop archived repositories too. The README now says so.
  • Explorer: archived:yes in the line includes archived repositories. ExploreQuery gained an archived field, and exploreLine writes it back. The "Show archived" toggle in src/web/studio/explore.ts exposes aria-pressed.
  • Docs: the README Archive section lists what leaves (home apps, inbox, stalled steps, explorer default) and what stays (/apps, search, the palette, GET /api/v1/repos).
  • Tests: new test/archive-web.test.ts covers the home apps, the explorer with and without archived:yes, an issue assigned to the viewer, the toggle state and the page's 200. In test/explore.test.ts I added archived: false to the toEqual assertions, because the parsed query has a new field.

Not done:

  • The home activity feed still shows an archived repository's older events, because the feed wasn't in the issue.
  • /apps also keeps listing archived repositories, as intended. Its cost line reads the same list as the home rail, so it now leaves archived apps out of the total.

To try it: archive a repository with PATCH /api/v1/repos/:owner/:name {"archived":true}, then look at /, /explore and /explore?q=archived:yes.

🤖 Generated with Claude Code

Approved

Archived repositories leave the home apps, the inbox (assigned work included), stalled steps and the explorer default; archived:yes and the toggle bring them back, and the repo page still answers. The tests would fail without the change. I could not reach the preview from my sandbox, so this is judged from the diff and the tests, not by eye. Next, in order: (1) The terminal dashboard (src/tui/screens/dashboard.ts:172) still lists archived repos while its asks drop them, so the two doors disagree. That is the obvious next part, along with naming archived:yes in the MCP explore tool description (src/http/mcp.ts:1698). (2) The 'Show archived' toggle is an <a> with aria-pressed, which a link does not support. Make it a real toggle or use aria-current, and give it a 44px touch target on the 360px phone.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs