Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
93a8fdf
fix(cli): stage a rewound turn's quotes into the replacement submit
ggbdpq Sep 13, 2026
eb5c88f
fix(cli): avoid unsafe optional chaining in the staged-quotes assertion
ggbdpq Sep 13, 2026
6ca7ff9
fix(cli): scope quote restaging to the origin draft and admit quote-o…
ggbdpq Sep 14, 2026
399f15e
fix(cli): make quote restaging reachable and generation-safe
ggbdpq Sep 16, 2026
8822a09
fix(cli): surface staged-quote state across switches, clears, and the…
ggbdpq Sep 17, 2026
d0c2967
Merge branch 'main' into fix/tui-rewind-quote-staging
ggbdpq Sep 18, 2026
a127b13
chore: retrigger CI after a flaky PTY resource-process test
ggbdpq Sep 18, 2026
935cbab
Merge remote-tracking branch 'upstream/main' into fix/tui-rewind-quot…
ggbdpq Sep 20, 2026
cb6d108
fix(cli): restage quotes on an unknown submit outcome and neutralize …
ggbdpq Sep 20, 2026
c07c577
fix(cli): route the unknown-outcome notice through the rewind copy ca…
ggbdpq Sep 20, 2026
dcb9c22
style(cli): collapse the shortened waitFor assertion to one line
ggbdpq Sep 20, 2026
6d5da11
Merge remote-tracking branch 'upstream/main' into fix/tui-rewind-quot…
ggbdpq Sep 26, 2026
b261e8d
fix(cli): supersede a pending quote restoration on submits and clears
ggbdpq Sep 26, 2026
fea2f7a
fix(cli): restage a retracted message's quotes instead of dropping them
ggbdpq Sep 27, 2026
92615d6
test(cli): expect the retraction quotes in the driver contract test
ggbdpq Sep 27, 2026
668a576
fix(cli): fence a retraction to the session it was asked for
ggbdpq Sep 27, 2026
d9aa90e
fix(cli): fence the whole retraction, and its stop, to the owning ses…
ggbdpq Sep 27, 2026
f0b31c9
fix(cli): serialize session switches behind an in-flight retraction
ggbdpq Sep 28, 2026
1677bbc
Merge upstream/main into fix/tui-rewind-quote-staging
ggbdpq Sep 28, 2026
a16a934
fix(cli): pin the idle switch race behind a held activity lease
ggbdpq Sep 28, 2026
b48832d
fix(cli): block Alt+Up retractions for the entire in-progress switch …
ggbdpq Sep 28, 2026
0ac4a7e
fix(cli): hold the switch window across side-conversation re-keys
ggbdpq Sep 29, 2026
0f26b77
fix(cli): drain in-flight retractions before side-conversation re-keys
ggbdpq Sep 30, 2026
bd25e82
fix(cli): keep a drained retraction's payload out of the wrong editor
ggbdpq Sep 30, 2026
5e53868
fix(cli): keep retraction-restored quotes and close-window typing fro…
ggbdpq Sep 30, 2026
eb0f8e4
fix(cli): keep retry provenance across failed submissions and switches
ggbdpq Sep 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions packages/cli/src/__tests__/pi-transcript.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,45 @@ describe('Maka Pi TUI transcript', () => {
}
});

test('traces quotes on the durable user entry', () => {
const state = createMakaPiTranscriptState();
const excerpt = {
text: 'a large pasted excerpt',
label: 'earlier turn',
sourceTurnId: 'turn-0',
};
replaceTranscriptWithStoredMessages(state, [
// A quote-only submit stores no text: without the trace the sent
// context would leave no row at all (#5109 review).
{
type: 'user',
id: 'message-1',
turnId: 'turn-1',
ts: 1,
text: '',
quotes: [excerpt, { ...excerpt, text: 'second excerpt' }],
},
{
type: 'user',
id: 'message-2',
turnId: 'turn-1',
ts: 2,
text: 'with words',
quotes: [excerpt],
},
{ type: 'user', id: 'message-3', turnId: 'turn-1', ts: 3, text: 'plain' },
] as StoredMessage[]);
const rendered = renderMakaPiTranscript(state, meta(), 100).map(stripAnsi).join('\n');
assert.match(rendered, /· 2 quotes/);
assert.match(rendered, /· 1 quote/);
assert.match(rendered, /with words/);
assert.equal(
(rendered.match(/· \d+ quotes?/g) ?? []).length,
2,
'messages without quotes render no hint',
);
});

test('renders stored legacy Automation prompts as read-only provenance', () => {
const state = createMakaPiTranscriptState();
replaceTranscriptWithStoredMessages(state, [
Expand Down
Loading