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

The terminal lists your archived repositories from the `:` palette, and `a` wakes the selected one #8115

Merged opened this

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

Merged

You can now open `:` → "Archived repositories" in the terminal and see every archived repository you may read. Pressing `a` on a row wakes it. The new tests, the palette tests, `tsc` and the gate pass. I did not run the rest of the suite; the forge runs it on push.

shipped production is serving it deploy c82665e

opened this

You can now open : → "Archived repositories" in the terminal and see every archived repository you may read. Pressing a on a row wakes it. The new tests, the palette tests, tsc and the gate pass. I did not run the rest of the suite; the forge runs it on push.

What changed

  • New screen (src/tui/screens/archived.ts): lists archived repositories newest first, each with owner/name, the archived date and app spun down when the repository has an app. Visibility uses listReposVisibleTo with archivedOnly, the same query as /apps?archived=1. A repository the viewer can't read never appears in the list.
  • Keys:

- enter opens the existing About card. - a wakes the selected repository through updateRepoSettings with archived: false, the same path as the About card's a. The row then leaves the list and the toast says awake again. - a is offered only to a person who administers that repository, and the header line shows "a wakes it" only then. Agents and non-admins get no a.

  • Empty list: the screen says Nothing archived.
  • Palette (entries.ts): one import and one line, entry id archived, "Archived repositories". It is offered to any signed-in user. The dashboard filter is untouched.
  • Tests (test/tui-archived.test.ts):

- An archived repository is listed; an unarchived one and someone else's private archived one are not. - a wakes the selected repository, the row leaves the list and the toast shows. - A non-admin has no a, and pressing it changes nothing. - An empty list shows Nothing archived.

I also edited test/palette-roster.test.ts. It pins the full palette roster, so it failed until I added the new entry to its three expected lists.

Not done: the list is capped at 200 rows, the same cap as the web page, with no paging.

To try it: run ssh to the terminal, press ctrl+k, type "Archived", then enter to open the screen.

🤖 Generated with Claude Code

Closes #8090

commented

You can now open : → "Archived repositories" in the terminal and see every archived repository you may read. Pressing a on a row wakes it. The new tests, the palette tests, tsc and the gate pass. I did not run the rest of the suite; the forge runs it on push.

What changed

  • New screen (src/tui/screens/archived.ts): lists archived repositories newest first, each with owner/name, the archived date and app spun down when the repository has an app. Visibility uses listReposVisibleTo with archivedOnly, the same query as /apps?archived=1. A repository the viewer can't read never appears in the list.
  • Keys:

- enter opens the existing About card. - a wakes the selected repository through updateRepoSettings with archived: false, the same path as the About card's a. The row then leaves the list and the toast says awake again. - a is offered only to a person who administers that repository, and the header line shows "a wakes it" only then. Agents and non-admins get no a.

  • Empty list: the screen says Nothing archived.
  • Palette (entries.ts): one import and one line, entry id archived, "Archived repositories". It is offered to any signed-in user. The dashboard filter is untouched.
  • Tests (test/tui-archived.test.ts):

- An archived repository is listed; an unarchived one and someone else's private archived one are not. - a wakes the selected repository, the row leaves the list and the toast shows. - A non-admin has no a, and pressing it changes nothing. - An empty list shows Nothing archived.

I also edited test/palette-roster.test.ts. It pins the full palette roster, so it failed until I added the new entry to its three expected lists.

Not done: the list is capped at 200 rows, the same cap as the web page, with no paging.

To try it: run ssh to the terminal, press ctrl+k, type "Archived", then enter to open the screen.

🤖 Generated with Claude Code

Approved

Clean. The archived list uses the same visibility query as the web page, and a goes through updateRepoSettings and is offered only to a person who administers the repository. Agents get no a. Both doors are covered: palette entry, empty state, wake, and a non-admin pressing a changes nothing. The four tests would fail without the screen. The roster test edit is justified. No new dependency, small single-purpose module. I could not exercise the SSH terminal from this shell, so the screen is judged from the code and its tests.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs