Commit ffdb3d0
feat: dashboard chat reply is the agent's own words, not a canned string
The dashboard build contract forbade prose ("no prose"), and both the
backend and the frontend hardcoded the same reply on every completed
build: "Done — built and verified against your data." Every turn showed
the identical line regardless of what the user asked — including turns
that were corrections ("you're showing 3k, I expected 6k+"), where a
blanket "built and verified" claimed success over a change that may not
have landed. Worse than templated: a confident false claim.
The contract now ends with a required ```dashboard-note``` fence — 1-3
sentences in plain business language stating what THIS turn changed,
what it could not do or verify, and (on a correction) whether the
disputed value actually moved. It is bound by the existing
"never show internals" security rule, so no table/column/SQL/UUID leaks
into the reply.
- DashboardAgentService: NOTE_FENCE + extractSummary/stripNotes; the
note is stripped BEFORE HTML extraction so prose can't be mistaken for
the artifact; summary rides in config.summary.
- SavedDashboardService.buildReplyText and the frontend store's
buildReplyText both render the note, falling back to the (now shared)
DEFAULT_BUILD_REPLY constant only when a turn produced no note — so an
agent still on the old contract keeps working.
Verified end-to-end against the live stack (real build + a correction
turn + chat-only path), DB read-back, and browser: the reply now differs
per turn, addresses corrections directly, leaks no internals, and
survives reload.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 819c286 commit ffdb3d0
4 files changed
Lines changed: 75 additions & 7 deletions
File tree
- backend/src/main/java/com/dbaagent/service
- src/lib/stores
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
258 | | - | |
| 258 | + | |
| 259 | + | |
259 | 260 | | |
260 | 261 | | |
261 | 262 | | |
| |||
Lines changed: 48 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
46 | 53 | | |
47 | 54 | | |
48 | 55 | | |
| |||
146 | 153 | | |
147 | 154 | | |
148 | 155 | | |
149 | | - | |
| 156 | + | |
| 157 | + | |
150 | 158 | | |
151 | 159 | | |
152 | 160 | | |
| |||
165 | 173 | | |
166 | 174 | | |
167 | 175 | | |
| 176 | + | |
168 | 177 | | |
169 | 178 | | |
170 | 179 | | |
| |||
321 | 330 | | |
322 | 331 | | |
323 | 332 | | |
324 | | - | |
325 | | - | |
326 | | - | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
327 | 349 | | |
328 | 350 | | |
329 | 351 | | |
| |||
337 | 359 | | |
338 | 360 | | |
339 | 361 | | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
340 | 384 | | |
341 | 385 | | |
342 | 386 | | |
| |||
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
39 | 42 | | |
40 | 43 | | |
41 | 44 | | |
| |||
409 | 412 | | |
410 | 413 | | |
411 | 414 | | |
412 | | - | |
| 415 | + | |
413 | 416 | | |
414 | 417 | | |
415 | 418 | | |
416 | 419 | | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
417 | 430 | | |
418 | 431 | | |
419 | 432 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
6 | 16 | | |
7 | 17 | | |
8 | 18 | | |
| |||
282 | 292 | | |
283 | 293 | | |
284 | 294 | | |
285 | | - | |
| 295 | + | |
286 | 296 | | |
287 | 297 | | |
288 | 298 | | |
| |||
0 commit comments