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
{{ message }}
Repository navigation
Studio: non-loss follow-ups from CodeRabbit's review of #201 #209
CodeRabbit's review of #201 at 361b3c5 left findings that do not lose a draft or send the wrong text. Astra allows them as follow-ups to #201. Each needs a test written first.
A picture path saved before the update is resolved against the wrong folder. A draft from before feat(studio): the window works on the sidecar's committed chats, and the claude -p runner is gone #201 may name a picture by a path relative to its project, and copyPictures (sidecar/src/chat.ts) resolves it from the sidecar's working folder. The send fails with "can't be read". Resolve such paths against the project when the draft is revised at start.
Long names. A picture name near 255 bytes makes a temporary copy name past the file system's limit (.<name>.part), so the copy fails. Use a short temporary name.
Temporary-name collision. A picture named like another one's temporary copy (.photo.jpg.part) can remove that copy during the send. Keep temporary names apart from every name in the draft.
An edited retry makes a second project. After a first send fails once its project is made, an edit gives the start draft a new revision, so the retry makes another project. The first project keeps an empty chat. Tie an edited retry to the first project that has not had its message yet.
Picture previews stay in memory. Previews of pasted pictures are freed only when the window closes. Free a picture's preview once no draft holds it.
Send is on before the chat loads. A send during a turn that has not loaded yet is refused with an error. Keep Send off until the open chat loads.
A stale readiness answer can come back. An earlier setup.check that answers after a later one can bring a cleared notice back. Apply only the newest answer.
No confirmed duplicate found. #205 covers the draft ownership redesign, while #207 tracks different startup and disk cleanup defects. These follow-ups are against the still-open #201 at 361b3c5.
Implementation plan — write each regression test first:
In sidecar/src/store.ts, normalize legacy project draft attachment paths during reviseOldDrafts, preserving absolute paths and the correct project context. In sidecar/src/chat.ts, use short, exclusively created temporary names outside the draft’s destination-name set; test long names, colliding names, and retry cleanup.
Extend startProject/chat.send to associate an edited retry with its uncommitted first project without reusing a committed message or losing newer drafts. Test failures before commit, edits, retries, and lost responses alongside Studio drafts: one owner for the draft and the outgoing message #205’s idempotency cases.
In src/studio/StudioApp.tsx, release preview URLs only after no screen draft references them, including after send and screen changes. Test shared references and late pastes.
Keep Send disabled until the current project’s chat.open succeeds, including reconnects and failed loads; guard the send handler too. Sequence setup.check requests so stale successes and failures cannot replace newer results. Test delayed and out-of-order responses in StudioApp.test.tsx.
Changes to chat.ts touch the update safety model’s tracked source: run the repository’s formal verification skill as well as the sidecar and Studio regression suites.
Activity
pullfrog commentedon Nov 8, 2026
No confirmed duplicate found. #205 covers the draft ownership redesign, while #207 tracks different startup and disk cleanup defects. These follow-ups are against the still-open #201 at
361b3c5.Implementation plan — write each regression test first:
sidecar/src/store.ts, normalize legacy project draft attachment paths duringreviseOldDrafts, preserving absolute paths and the correct project context. Insidecar/src/chat.ts, use short, exclusively created temporary names outside the draft’s destination-name set; test long names, colliding names, and retry cleanup.startProject/chat.sendto associate an edited retry with its uncommitted first project without reusing a committed message or losing newer drafts. Test failures before commit, edits, retries, and lost responses alongside Studio drafts: one owner for the draft and the outgoing message #205’s idempotency cases.src/studio/StudioApp.tsx, release preview URLs only after no screen draft references them, including after send and screen changes. Test shared references and late pastes.chat.opensucceeds, including reconnects and failed loads; guard the send handler too. Sequencesetup.checkrequests so stale successes and failures cannot replace newer results. Test delayed and out-of-order responses inStudioApp.test.tsx.Changes to
chat.tstouch the update safety model’s tracked source: run the repository’s formal verification skill as well as the sidecar and Studio regression suites.gpt-6.1-terra| 𝕏