You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Companion to #106. Across the May 8 benchmark (Opus / Sonnet / Haiku × MCP / relayfile, on the "what did I work on yesterday" multi-source synthesis task), ~9 of 23 turns on every relayfile run were spent hand-crafting filters — find -newermt "2026-05-07", grep -l '"updated_at":"2026-05-07', inline python3 -c "..." over JSON files.
This is the largest remaining cost source after #106 lands. The fix is to materialize the common filters as directories so the agent's filter becomes a ls.
Proposal
Maintain symlink trees alongside the canonical <uuid>.json files. The relayfile sync daemon already watches the data; have it maintain these views on every change.
Symlinks, not copies — storage cost is negligible.
Why this matters per task
"List my open Linear issues" → ls linear/issues/by-state/Todo/. Zero filtering logic in the agent.
"What did I work on yesterday" → ls notion/pages/by-edited/2026-05-07/ + same for github/linear. Three ls calls instead of three find/grep/python pipelines.
"What PRs has Khaliq opened this week" → for d in by-updated/2026-05-0{2..8}; ls $d/by-author/khaliqgant/.
Filter-view filenames should be human-readable where possible (AGE-12.json not the UUID), so ls output is useful directly.
Out of scope
Writes through filter views. Canonical write target stays the <uuid>.json file — see relayfile-adapters fix(mount): reduce websocket polling overhead #45 for the file-native writeback contract. This issue is read-only enumeration.
Acceptance
Each top-level integration directory has at least one by-*/ view (concrete axes per integration TBD in PR review).
Re-running the May 8 benchmark "what did I work on yesterday" prompt shows < 10 turns and < $0.20 cost on Sonnet RF.
LAYOUT.md documents what views exist and how to use them.
Context
Companion to #106. Across the May 8 benchmark (Opus / Sonnet / Haiku × MCP / relayfile, on the "what did I work on yesterday" multi-source synthesis task), ~9 of 23 turns on every relayfile run were spent hand-crafting filters —
find -newermt "2026-05-07",grep -l '"updated_at":"2026-05-07', inlinepython3 -c "..."over JSON files.This is the largest remaining cost source after #106 lands. The fix is to materialize the common filters as directories so the agent's filter becomes a
ls.Proposal
Maintain symlink trees alongside the canonical
<uuid>.jsonfiles. The relayfile sync daemon already watches the data; have it maintain these views on every change.Symlinks, not copies — storage cost is negligible.
Why this matters per task
ls linear/issues/by-state/Todo/. Zero filtering logic in the agent.ls notion/pages/by-edited/2026-05-07/+ same for github/linear. Threelscalls instead of three find/grep/python pipelines.for d in by-updated/2026-05-0{2..8}; ls $d/by-author/khaliqgant/.Predicted benchmark impact
After #106 + this:
This is the lever that flips relayfile from "more expensive but more thorough" to "cheaper and more thorough" on every model.
Implementation notes
LAYOUT.md(Mount layout: add indexes, semantic aliases, and a SKILL.md to reduce agent file-shopping #106) so the agent knows to use them.AGE-12.jsonnot the UUID), solsoutput is useful directly.Out of scope
<uuid>.jsonfile — see relayfile-adapters fix(mount): reduce websocket polling overhead #45 for the file-native writeback contract. This issue is read-only enumeration.Acceptance
by-*/view (concrete axes per integration TBD in PR review).LAYOUT.mddocuments what views exist and how to use them.