Merge the two agent screens into one: 작업 - #84
Merged
Merged
Conversation
`AI 세션` and `레포 은퇴` were one object shown twice through two subsystem lenses. Nobody outside the codebase has a reason to know that scree finds workspaces and mothball judges repos: a session, a worktree, a git state and a retirement verdict are all facts about a project, and splitting them across two sidebar entries made the user assemble the object themselves. The retirement page could not even start without the audit having run first -- the shape of a step in a workflow, not a peer in a sidebar. So: one `작업` destination, project-primary. Worktrees become evidence rather than identity -- `affectionate-cohen-f52bc6` is useful once you know which project you are looking at and useless as the thing to sort a list by, so agent worktrees fold into their repo. Retirement becomes an action raised from a project, as a sheet that states the whole case at once. Reaching a conversation is now two clicks: project, then title. Titles are the click target, which needed a batch `titles` command -- the per-session one is right for one session and wrong for a list, and thirty serial process spawns is why rows sat on "제목을 읽는 중…" long enough to look broken. Four things were broken rather than merely awkward: - The session index was capped at 500. The cap was invisible to the person searching, who was told the machine holds thousands of sessions and then silently allowed to search the newest few hundred. It was not buying the I/O it appeared to either -- the count was taken after walking everything, and the full walk measures 0.4s against a 5.6s report whose time is git inspection. - Gemini's conversations were unreachable. `collect_gemini` reports the registry, which is what retention and lineage want; the chats live in `~/.gemini/tmp/*/chats/` and appeared in no listing at all, while the screen named Gemini in its subtitle. 4,005 of them here. Both answers are kept, because they are answers to different questions. - Every `titles` call wrote to one shared scratch path and deleted it on return, so concurrent rows clobbered each other's input and no title ever arrived. - The full index is megabytes, past the runner's output ceiling, so it goes to a file like `bind-all`'s already did. `collect_all` gives the judgment and the browser one definition of "all the stores", which is how Gemini came to be visible to one and not the other. The two commands stay two processes on purpose; the measurement above says collapsing them would buy little. Python 633 · Modore 247 · MothballCore 120. Driven in the running app against this machine: 350 projects, 7,145 conversations, titles resolving, a conversation open in two clicks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AI 세션and레포 은퇴were one object shown twice through two subsystem lenses. The retirement page could not even start without the audit having run first — the shape of a step in a workflow, not a peer in a sidebar.One
작업destination, project-primaryaffectionate-cohen-f52bc6is useful once you know which project you're looking at, and useless as the thing to sort a list by.Four things were broken, not merely awkward
collect_geminireports the registry; the chats live in~/.gemini/tmp/*/chats/and were in no listing — 4,005 here — while the screen named Gemini in its subtitle.titlesused one shared scratch path, deleted on returnbind-allalready did.Both Gemini answers are kept — registry for retention/lineage, chats for the browser — because they answer different questions, and a test pins that.
collect_allgives the judgment and the browser one definition of "all the stores", which is how Gemini came to be visible to one and not the other. The two commands stay two processes on purpose; the measurement says collapsing them buys little.Verification
release_smoke.pyclean.은퇴 검토sheet itself. Its trigger was moved to the project header after I saw it sitting below 72 conversation rows, and macOS Notification Center began intercepting the automation's hit-tests before I could re-open it. Covered by build and unit tests only.