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

The terminal's search lists the explorer's rows for any explore word (owner:, updated:, archived:), as /explore does #7930

Merged opened this

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

Merged

The terminal now treats a search as the explorer's whenever it has any of the five explore words: `kind:`, `sort:`, `updated:`, `owner:` or `archived:`. Before, only `kind:` and `sort:` did, so `owner:trevato` alone filtered the board instead of listing apps and people. I didn't try it by eye in the terminal.

shipped production is serving it deploy fb6f20c

opened this

The terminal now treats a search as the explorer's whenever it has any of the five explore words: kind:, sort:, updated:, owner: or archived:. Before, only kind: and sort: did, so owner:trevato alone filtered the board instead of listing apps and people. I didn't try it by eye in the terminal.

  • Shared predicate: src/actions/explore.ts exports isExploreLine(line), true when any word starts with one of those five keys followed by :. It matches the case-insensitive, key-with-colon test the dashboard's old exploring regex used, with the three missing keys added.
  • Terminal: src/tui/screens/dashboard.ts calls isExploreLine in place of its own regex.
  • MCP: explore's doc and its query description in src/http/mcp/tools/explore.ts now name kind:, sort:, updated:, owner: and archived:.
  • Tests:

- test/explore.test.ts covers the predicate for each key (including an upper-case key) and for plain words (false). - test/tui-dashboard-explore.test.ts has owner:alice typed alone, giving "Read as: owner:alice" with alice's apps and none of bob's. - I did not run either test against the unchanged code to confirm they fail there.

  • Checks: explore.test.ts, tui-dashboard-explore.test.ts, mcp-size.test.ts and bun x tsc --noEmit pass, and bun scripts/gate.ts printed nothing.

A board search that contains owner: text now goes to the explorer, which matches how /explore reads it. I didn't touch the parsing in readExploreLine or any MCP ceiling. The only extra step to try it is typing /owner:trevato in the terminal.

Closes #7926

commented

The terminal now treats a search as the explorer's whenever it has any of the five explore words: kind:, sort:, updated:, owner: or archived:. Before, only kind: and sort: did, so owner:trevato alone filtered the board instead of listing apps and people. I didn't try it by eye in the terminal.

  • Shared predicate: src/actions/explore.ts exports isExploreLine(line), true when any word starts with one of those five keys followed by :. It matches the case-insensitive, key-with-colon test the dashboard's old exploring regex used, with the three missing keys added.
  • Terminal: src/tui/screens/dashboard.ts calls isExploreLine in place of its own regex.
  • MCP: explore's doc and its query description in src/http/mcp/tools/explore.ts now name kind:, sort:, updated:, owner: and archived:.
  • Tests:

- test/explore.test.ts covers the predicate for each key (including an upper-case key) and for plain words (false). - test/tui-dashboard-explore.test.ts has owner:alice typed alone, giving "Read as: owner:alice" with alice's apps and none of bob's. - I did not run either test against the unchanged code to confirm they fail there.

  • Checks: explore.test.ts, tui-dashboard-explore.test.ts, mcp-size.test.ts and bun x tsc --noEmit pass, and bun scripts/gate.ts printed nothing.

A board search that contains owner: text now goes to the explorer, which matches how /explore reads it. I didn't touch the parsing in readExploreLine or any MCP ceiling. The only extra step to try it is typing /owner:trevato in the terminal.

commented

The terminal's search now lists the explorer's rows for owner:, updated: and archived: as well as kind: and sort:, so one explore line means the same on /explore, in the terminal and through MCP. I haven't run it by eye in the terminal.

The check failed because I changed the wording of MCP explore's doc and query description without regenerating the tool table in docs/MCP.md. I ran bun scripts/mcp-tools.ts, committed the regenerated docs/MCP.md, and pushed.

The other three failures were who filed it, in the terminal (#7658) and the two private destinations in the terminal tests. They pass when I run their files (test/tui-egress.test.ts, test/tui-reports.test.ts) on their own. I think they failed from load in the check's 43-shard run, but I haven't confirmed that, so if they fail again on this push I'll look at them properly.

What changed

  • isExploreLine(line) in src/actions/explore.ts is true when any word starts with kind:, sort:, updated:, owner: or archived:, in any letter case.
  • src/tui/screens/dashboard.ts uses it in place of its own regex, so owner:trevato alone lists trevato's apps and people, ranked as /explore?q=owner:trevato does.
  • MCP explore names all five words in its doc and query description.

Tests

  • test/explore.test.ts covers the predicate for each key and for plain words, which give false.
  • test/tui-dashboard-explore.test.ts shows owner:alice typed alone giving the explorer ("Read as: owner:alice") with alice's apps and none of bob's.
  • I didn't run the new tests against the old code, so I haven't confirmed they fail without the change.

Not done: a board search that contains owner: text now goes to the explorer, which matches /explore and is intended. I didn't change readExploreLine's parsing or any MCP size ceiling.

Try it: in the terminal, type /owner:trevato.

commented

The terminal's search, /explore and the MCP explore tool now share one isExploreLine predicate. It treats owner:, updated: and archived: as explore words. docs/MCP.md is regenerated for the tool's new words.

The failed check does not point at this change. Shard 30 was killed after 41 s while running test/unfurl.test.ts. The log reports 0 failures across 10214 tests, and the other 41 shards passed. This pull does not touch unfurl or anything it uses. It edits src/actions/explore.ts, src/http/mcp/tools/explore.ts, src/tui/screens/dashboard.ts, docs/MCP.md and two explore tests. Run alone here, test/unfurl.test.ts passes (12 of 12 in 2.2 s), so I read it as a slow or stalled shard.

I changed no code in response. I pushed an empty commit, c832d771, so the forge runs the check again. If shard 30 is killed again on a different test, that is a problem with the shard and not this pull.

To try it, type owner:, updated: or archived: into the terminal's search, /explore or the MCP explore tool. Each is read as an explore word. test/explore.test.ts and test/tui-dashboard-explore.test.ts cover this.

Approved

Clean, small, and on the direction. isExploreLine covers the five keys readExploreLine already parses, the dashboard uses it in place of its private regex, and the MCP doc and docs/MCP.md are regenerated. No new input surface, no write path, and the terminal reads gate as before. Tests cover the predicate (including case and the downer: negative) and the terminal path for owner:alice.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs