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
Check · Review · Land · Live done — Landed and live in production.
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
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.tsexportsisExploreLine(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 oldexploringregex used, with the three missing keys added. - Terminal:
src/tui/screens/dashboard.tscallsisExploreLinein place of its own regex. - MCP:
explore'sdocand itsquerydescription insrc/http/mcp/tools/explore.tsnow namekind:,sort:,updated:,owner:andarchived:. - 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.tsandbun x tsc --noEmitpass, andbun scripts/gate.tsprinted 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.
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)insrc/actions/explore.tsis true when any word starts withkind:,sort:,updated:,owner:orarchived:, in any letter case.src/tui/screens/dashboard.tsuses it in place of its own regex, soowner:trevatoalone lists trevato's apps and people, ranked as/explore?q=owner:trevatodoes.- MCP
explorenames all five words in itsdocandquerydescription.
Tests
test/explore.test.tscovers the predicate for each key and for plain words, which give false.test/tui-dashboard-explore.test.tsshowsowner:alicetyped 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.
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.
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.
The terminal now treats a search as the explorer's whenever it has any of the five explore words:
kind:,sort:,updated:,owner:orarchived:. Before, onlykind:andsort:did, soowner:trevatoalone filtered the board instead of listing apps and people. I didn't try it by eye in the terminal.src/actions/explore.tsexportsisExploreLine(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 oldexploringregex used, with the three missing keys added.src/tui/screens/dashboard.tscallsisExploreLinein place of its own regex.explore'sdocand itsquerydescription insrc/http/mcp/tools/explore.tsnow namekind:,sort:,updated:,owner:andarchived:.-
test/explore.test.tscovers the predicate for each key (including an upper-case key) and for plain words (false). -test/tui-dashboard-explore.test.tshasowner:alicetyped 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.explore.test.ts,tui-dashboard-explore.test.ts,mcp-size.test.tsandbun x tsc --noEmitpass, andbun scripts/gate.tsprinted nothing.A board search that contains
owner:text now goes to the explorer, which matches how/explorereads it. I didn't touch the parsing inreadExploreLineor any MCP ceiling. The only extra step to try it is typing/owner:trevatoin the terminal.Closes #7926