Skip to content

Commit 1c61e20

Browse files
authored
Add inline steering queue support (#4)
* Add inline steering queue support * Harden steering recovery after Stop * Wait for session readiness after Stop * Make Stop lifecycle tests event driven * Isolate real RPC tests from shared environment * Stop real RPC fixtures deterministically
1 parent 39baa2a commit 1c61e20

47 files changed

Lines changed: 1792 additions & 96 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.4.1--fdc1dc54680b",
3+
"requirementId": "REQ-003.4.1",
4+
"hash": "fdc1dc54680b",
5+
"verdict": "pass",
6+
"summary": "testRunningChatDoesNotBlockSelectingAnotherChatOrNewChatSurface exercises the real select()/startNewChat() code path (no mocking of the gate) and asserts selectedSessionID actually changes while the first chat's isConversationRunning stays true, which would fail if a blocking guard (like the archive-flow's blockedNavigationAlert) were added to select().",
7+
"timestamp": "2026-09-02T22:28:30.820Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.4.2--bdf1ed3cc242",
3+
"requirementId": "REQ-003.4.2",
4+
"hash": "bdf1ed3cc242",
5+
"verdict": "pass",
6+
"summary": "Test starts a running chat in project A, selects a chat in project B, and asserts the selection actually switches (selectedProjectID/selectedSessionID) while project A's conversation remains running — a real behavioral check since select(projectID:) has no running-state guard that could make this pass vacuously.",
7+
"timestamp": "2026-09-02T22:28:30.392Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.4.5--77bc109ed8ea",
3+
"requirementId": "REQ-003.4.5",
4+
"hash": "77bc109ed8ea",
5+
"verdict": "pass",
6+
"summary": "testRuntimeCallbacksRouteOutputToOwningChatAfterSelectionChanges routes a real event through AppModel/ConversationModel while a different chat is selected, asserts the delta appends only as the final item of the owning chat's cachedTranscript (order preserved via dropLast equality) and is absent from the other chat's transcript — genuine, non-mocked coverage of the append-only-to-owning-chat requirement.",
7+
"timestamp": "2026-09-02T22:28:27.839Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.4.7--ea2a4fa4eaf8",
3+
"requirementId": "REQ-003.4.7",
4+
"hash": "ea2a4fa4eaf8",
5+
"verdict": "pass",
6+
"summary": "Test verifies selection actually switches to another chat (selectedSessionID/selectedProjectID change) while a queued-prompt chat and a pending-startup chat both remain in working state; covers both boundary terms (queued prompt, pending startup) with real AppModel state, not mocked-away.",
7+
"timestamp": "2026-09-02T22:28:31.084Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.4.8--e7eb0b484688",
3+
"requirementId": "REQ-003.4.8",
4+
"hash": "e7eb0b484688",
5+
"verdict": "pass",
6+
"summary": "Test opens new-chat surface and creates+sends a new chat while another session is actively running (isConversationRunning true throughout), verifying via non-mocked AppModel state that neither startNewChat() nor sendNewChatPrompt() are blocked or altered by in-flight work; assertions would fail if a guard were added to gate these on running state.",
7+
"timestamp": "2026-09-02T22:28:51.080Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.5.2--014fb242ad97",
3+
"requirementId": "REQ-003.5.2",
4+
"hash": "014fb242ad97",
5+
"verdict": "pass",
6+
"summary": "Unit tests (mock delay + real fake-RPC subprocess) and UI test verify late text_delta/tool_execution_start events after Stop and after a later prompt starts do not append to transcript, while new-turn output still appends; negative-space (forbidden late output) and positive-space (allowed new output) both covered without over-mocking.",
7+
"timestamp": "2026-09-08T22:20:16.554Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.5.2--0419965f8453",
3+
"requirementId": "REQ-003.5.2",
4+
"hash": "0419965f8453",
5+
"verdict": "pass",
6+
"summary": "Tests exercise real RPC race conditions (delayed late deltas/tool starts from stopped and superseded turns, incl. real subprocess) and assert absence of late output in transcript/UI; covers both stop-only and stop-then-new-turn boundary cases genuinely.",
7+
"timestamp": "2026-09-02T22:23:05.454Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.5.2--06c255642356",
3+
"requirementId": "REQ-003.5.2",
4+
"hash": "06c255642356",
5+
"verdict": "pass",
6+
"summary": "Genuine coverage: unit tests use real timing races and a real fake-RPC subprocess to confirm late/stopped-turn output never appends while distinct later-turn output does append; UI test confirms no assistant transcript node after Stop before new send.",
7+
"timestamp": "2026-09-08T21:25:03.765Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.5.2--09c4e4ebdbbc",
3+
"requirementId": "REQ-003.5.2",
4+
"hash": "09c4e4ebdbbc",
5+
"verdict": "pass",
6+
"summary": "Genuine coverage: mocked and real-RPC-process tests confirm late/delayed turn output after Stop (and after a subsequent new turn starts) never appends to transcript, both at model and UI level.",
7+
"timestamp": "2026-09-08T20:42:56.451Z"
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"reviewId": "REQ-003.5.2--177331f1f38e",
3+
"requirementId": "REQ-003.5.2",
4+
"hash": "177331f1f38e",
5+
"verdict": "pass",
6+
"summary": "Tests genuinely assert stale output from a stopped turn is excluded from transcript items after stop, both immediately and after a later turn starts, using mocked and real (non-mocked) RPC subprocess paths; negative assertions would fail under the violation.",
7+
"timestamp": "2026-09-08T22:04:05.193Z"
8+
}

0 commit comments

Comments
 (0)