Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
1b2496d
fix(managed-agent): stop database amplification on session hot paths
Oct 2, 2026
f75955c
fix(managed-agent): pin the head-path proof in the fencing tests
Oct 2, 2026
7de5860
fix(managed-agent): pin the per-row retention flags on bound pages
Oct 2, 2026
b0d357a
fix(managed-agent): keep the text-order snapshot test deterministic
Oct 2, 2026
b6ba408
fix(managed-agent): keep singleAppendsContinueTheTextPartBeforeThem d…
Oct 2, 2026
9a4bcd8
fix(managed-agent): close out the second review round on #13181
Oct 3, 2026
7f5081b
fix(managed-agent): close the audit round on the R2 fixes
Oct 3, 2026
e7f7c7d
fix(managed-agent): close the second audit round on the R2 fixes
Oct 3, 2026
d0cacdb
test(managed-agent): correct the publish positive-control comment's l…
Oct 3, 2026
93b9f46
fix(managed-agent): merge main and renumber the PR's migrations to V3…
Oct 3, 2026
2a5d6e1
test(managed-agent): pin the creator-submit capability's batched page…
Oct 3, 2026
4e77d9f
docs(managed-agent): state the conditional creator/grant batches in t…
Oct 3, 2026
7f4d6aa
test(managed-agent): exercise the can_create grant term across two wo…
Oct 3, 2026
f92d32d
fix(managed-agent): close out the third review round on #13181
Oct 3, 2026
232340e
fix(managed-agent): align the commit-side scope check with the read p…
Oct 3, 2026
b81978c
Merge branch 'main' into fix/13181-managed-agent-query-amplification
wenshao Oct 3, 2026
79a746a
fix(managed-agent): merge main (turn deadlines, prefix retraction, lo…
Oct 4, 2026
6817658
fix(managed-agent): close out the fourth review round on #13181
Oct 4, 2026
e9d04c4
docs(managed-agent): state the widened commit-side scope check in sec…
Oct 4, 2026
a5a549e
fix(managed-agent): close the audit round on the R4 fixes
Oct 4, 2026
884a5b3
Merge remote-tracking branch 'origin/fix/13181-managed-agent-query-am…
Oct 4, 2026
4d3b135
Merge branch 'main' into fix/13181-managed-agent-query-amplification
Oct 4, 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
Prev Previous commit
Next Next commit
fix(managed-agent): pin the per-row retention flags on bound pages
Round-4 adversarial follow-up (no Criticals): the 20-row bound-page loops
asserted titles and actions but never the sessionArchive/Unarchive/Delete
flags, so a regression computing retention once per page would have passed.
One bound session now carries a completed CLOSE row and both surfaces
assert sessionDelete per row.
  • Loading branch information
wenshao
wenshao committed Oct 2, 2026
commit 7de58603bc714e7ce694b487d671d5d7e36d9d27
Original file line number Diff line number Diff line change
Expand Up @@ -639,10 +639,20 @@ void sessionListsAssemblePagesFromGroupedBatchQueries() {
new WorkspaceSelection("workspace", "."))).sessionId());
}
// One workspace session opts out of yolo: its actions capability
// must differ from the other rows'.
// must differ from the other rows'. Another holds a completed close:
// its retention capabilities must differ per row, not per page.
fixture.jdbc.update("UPDATE managed_agent_session SET approval_mode ="
+ " 'confirm' WHERE tenant_id = ? AND session_id = ?",
bound, boundIds.get(3));
fixture.jdbc.update("INSERT INTO managed_agent_operation (tenant_id,"
+ " session_id, operation_id, operation_kind, actor_digest,"
+ " idempotency_key, request_digest, state, admission_stage,"
+ " delivery_state, session_status_before, receipt_id,"
+ " available_at, created_at, updated_at, completed_at)"
+ " VALUES (?, ?, ?, 'CLOSE', '', 'close-key', 'digest',"
+ " 'COMPLETED', 'JAVA_DURABLE', 'DELIVERED', 'CLOSED',"
+ " 'rcpt', 0, 0, 0, 0)",
bound, boundIds.get(5), "op_" + UUID.randomUUID());
fixture.ledger.reset();
var boundPublic = fixture.service.listPublicSessions(bound, "actor",
null, 20).data();
Expand All @@ -661,6 +671,8 @@ void sessionListsAssemblePagesFromGroupedBatchQueries() {
int index = boundIds.indexOf(row.id());
assertThat(row.metadata()).containsEntry("title", "w-" + index);
assertThat(row.capabilities().actions()).isEqualTo(index == 3);
assertThat(row.capabilities().sessionDelete())
.isEqualTo(index == 5);
}

fixture.ledger.reset();
Expand All @@ -680,6 +692,8 @@ void sessionListsAssemblePagesFromGroupedBatchQueries() {
int index = boundIds.indexOf(row.sessionId());
assertThat(row.title()).isEqualTo("w-" + index);
assertThat(row.capabilities().actions()).isEqualTo(index == 3);
assertThat(row.capabilities().sessionDelete())
.isEqualTo(index == 5);
}
}

Expand Down