feat(coder): handle large text paste with compact placeholder references
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
added
packages/openagents-cli/src/coder-paste.ts -
modified
packages/openagents-cli/src/coder-ui.ts -
modified
packages/openagents-cli/test/coder-paste.test.ts
Diff
3 files changed, +171 -10
packages/openagents-cli/src/coder-paste.ts added +85
@@ -0,0 +1,85 @@
| 1 |
|
|
| 2 |
|
|
| 3 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
| 9 |
|
|
| 10 |
|
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
|
| 14 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
|
|
| 21 |
|
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
|
|
| 29 |
|
|
| 30 |
|
|
| 31 |
|
|
| 32 |
|
|
| 33 |
|
|
| 34 |
|
|
| 35 |
|
|
| 36 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
|
| 50 |
|
|
| 51 |
|
|
| 52 |
|
|
| 53 |
|
|
| 54 |
|
|
| 55 |
|
|
| 56 |
|
|
| 57 |
|
|
| 58 |
|
|
| 59 |
|
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
|
|
| 65 |
|
|
| 66 |
|
|
| 67 |
|
|
| 68 |
|
|
| 69 |
|
|
| 70 |
|
|
| 71 |
|
|
| 72 |
|
|
| 73 |
|
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
|
packages/openagents-cli/src/coder-ui.ts modified +27 -4
@@ -43,6 +43,14 @@ import type { CoderEntry, CoderSession, CoderSnapshot, CoderToolCall } from "./c
| 43 | 43 |
|
| 44 | 44 |
|
| 45 | 45 |
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
|
| 50 |
|
|
| 51 |
|
|
| 52 |
|
|
| 53 |
|
|
| 46 | 54 |
|
| 47 | 55 |
|
| 48 | 56 |
|
@@ -407,6 +415,8 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 407 | 415 |
|
| 408 | 416 |
|
| 409 | 417 |
|
| 418 |
|
|
| 419 |
|
|
| 410 | 420 |
|
| 411 | 421 |
|
| 412 | 422 |
|
@@ -1055,8 +1065,9 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 1055 | 1065 |
|
| 1056 | 1066 |
|
| 1057 | 1067 |
|
| 1058 |
|
|
| 1068 |
|
|
| 1059 | 1069 |
|
| 1070 |
|
|
| 1060 | 1071 |
|
| 1061 | 1072 |
|
| 1062 | 1073 |
|
@@ -1180,7 +1191,10 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 1180 | 1191 |
|
| 1181 | 1192 |
|
| 1182 | 1193 |
|
| 1183 |
|
|
| 1194 |
|
|
| 1195 |
|
|
| 1196 |
|
|
| 1197 |
|
|
| 1184 | 1198 |
|
| 1185 | 1199 |
|
| 1186 | 1200 |
|
@@ -1226,7 +1240,15 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 1226 | 1240 |
|
| 1227 | 1241 |
|
| 1228 | 1242 |
|
| 1229 |
|
|
| 1243 |
|
|
| 1244 |
|
|
| 1245 |
|
|
| 1246 |
|
|
| 1247 |
|
|
| 1248 |
|
|
| 1249 |
|
|
| 1250 |
|
|
| 1251 |
|
|
| 1230 | 1252 |
|
| 1231 | 1253 |
|
| 1232 | 1254 |
|
@@ -1506,7 +1528,7 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 1506 | 1528 |
|
| 1507 | 1529 |
|
| 1508 | 1530 |
|
| 1509 |
|
|
| 1531 |
|
|
| 1510 | 1532 |
|
| 1511 | 1533 |
|
| 1512 | 1534 |
|
packages/openagents-cli/test/coder-paste.test.ts modified +59 -6
@@ -1,5 +1,14 @@
| 1 | 1 |
|
| 2 | 2 |
|
| 3 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
| 9 |
|
|
| 10 |
|
|
| 11 |
|
|
| 3 | 12 |
|
| 4 | 13 |
|
| 5 | 14 |
|
@@ -28,8 +37,53 @@ class FakeIn extends EventEmitter {
| 28 | 37 |
|
| 29 | 38 |
|
| 30 | 39 |
|
| 31 |
|
|
| 32 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
|
| 50 |
|
|
| 51 |
|
|
| 52 |
|
|
| 53 |
|
|
| 54 |
|
|
| 55 |
|
|
| 56 |
|
|
| 57 |
|
|
| 58 |
|
|
| 59 |
|
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
|
|
| 65 |
|
|
| 66 |
|
|
| 67 |
|
|
| 68 |
|
|
| 69 |
|
|
| 70 |
|
|
| 71 |
|
|
| 72 |
|
|
| 73 |
|
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
|
|
| 86 |
|
|
| 33 | 87 |
|
| 34 | 88 |
|
| 35 | 89 |
|
@@ -79,7 +133,7 @@ describe("pasting", () => {
| 79 | 133 |
|
| 80 | 134 |
|
| 81 | 135 |
|
| 82 |
|
|
| 136 |
|
|
| 83 | 137 |
|
| 84 | 138 |
|
| 85 | 139 |
|
@@ -94,10 +148,9 @@ describe("pasting", () => {
| 94 | 148 |
|
| 95 | 149 |
|
| 96 | 150 |
|
| 97 |
|
|
| 98 |
|
|
| 151 |
|
|
| 99 | 152 |
|
| 100 |
|
|
| 153 |
|
|
| 101 | 154 |
|
| 102 | 155 |
|
| 103 | 156 |
|