From f14674ebd5aeffc76c75aa39c8270b7252dd3f6b Mon Sep 17 00:00:00 2001 From: Bernhard Jackiewicz Date: Fri, 2 Oct 2026 20:53:22 +0200 Subject: [PATCH] docs(ui): record the implementation and acceptance of the call feedback Add the measured browser acceptance (19 of 19 checks), the test runs on the final tree, what was not run and why, and the remaining limits, with ten downscaled screenshots of the fixed views beside the reproduction. Signed-off-by: Bernhard Jackiewicz --- .../development/pr-2068-call-feedback-plan.md | 53 +++++++++++++++++- ...21-after-galaxy-two-layers-root-marked.jpg | Bin 0 -> 130020 bytes .../22-after-galaxy-path-view.jpg | Bin 0 -> 103103 bytes .../23-after-galaxy-call-order.jpg | Bin 0 -> 149424 bytes .../24-after-chat-who-calls-listed.jpg | Bin 0 -> 193548 bytes ...after-agent-configuration-token-limits.jpg | Bin 0 -> 101329 bytes .../26-after-overview-django-drill-in.jpg | Bin 0 -> 166769 bytes .../27-after-system-structure-django.jpg | Bin 0 -> 180812 bytes .../28-after-behavior-django.jpg | Bin 0 -> 196490 bytes .../29-after-routes-endpoints-grouped.jpg | Bin 0 -> 190190 bytes .../30-after-strip-select-scope.jpg | Bin 0 -> 142873 bytes 11 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 docs/development/pr-2068-call-feedback/21-after-galaxy-two-layers-root-marked.jpg create mode 100644 docs/development/pr-2068-call-feedback/22-after-galaxy-path-view.jpg create mode 100644 docs/development/pr-2068-call-feedback/23-after-galaxy-call-order.jpg create mode 100644 docs/development/pr-2068-call-feedback/24-after-chat-who-calls-listed.jpg create mode 100644 docs/development/pr-2068-call-feedback/25-after-agent-configuration-token-limits.jpg create mode 100644 docs/development/pr-2068-call-feedback/26-after-overview-django-drill-in.jpg create mode 100644 docs/development/pr-2068-call-feedback/27-after-system-structure-django.jpg create mode 100644 docs/development/pr-2068-call-feedback/28-after-behavior-django.jpg create mode 100644 docs/development/pr-2068-call-feedback/29-after-routes-endpoints-grouped.jpg create mode 100644 docs/development/pr-2068-call-feedback/30-after-strip-select-scope.jpg diff --git a/docs/development/pr-2068-call-feedback-plan.md b/docs/development/pr-2068-call-feedback-plan.md index 6f75dfd04..340de0b37 100644 --- a/docs/development/pr-2068-call-feedback-plan.md +++ b/docs/development/pr-2068-call-feedback-plan.md @@ -1,6 +1,6 @@ -# PR 2068: review call feedback, reproduction and plan +# PR 2068: review call feedback, reproduction, plan and acceptance -Prepared on 2 October 2026 (Europe/Berlin) after the review call between Martin and Bernhard. Base: `feat/codeatlas-web` at `50a6a67b89f2e2bd901b903fe0f2affabc1cb449`. This document is a plan for approval. No product code has been changed for it yet; the only code in this branch is the capture script that produced the evidence. +Prepared on 2 October 2026 (Europe/Berlin) after the review call between Martin and Bernhard. Base: `feat/codeatlas-web` at `50a6a67b89f2e2bd901b903fe0f2affabc1cb449`. The plan below was approved as proposed (all ten decisions) and is implemented on `fix/atlas-call-feedback`; the measured acceptance is in [Implementation and acceptance](#implementation-and-acceptance) at the end. Every point from the call was reproduced in a real browser before a fix was proposed. Where the call notes or the first code reading guessed a cause, the measurement below decides. Two guesses were refuted that way; both are marked. @@ -233,3 +233,52 @@ The model already supports `filter` and `maxNodes`, but the UI hard-wires the fi - `semantic-graph.test.ts` above 40 nodes 2. **P2 items** as approved. 3. **Final checks:** `scripts/ci/test-ui.sh`, then the same capture script against Django and the control repository. Before and after appear side by side, with the canvas, camera and prompt measurements above as acceptance criteria. + +## Implementation and acceptance + +All items G1 to G7, C1 to C6, A1 to A4, the backend parts of A2 and A3 and the style gate side finding are implemented on `fix/atlas-call-feedback`, 49 signed-off commits on top of the plan commit. The decisions were applied exactly as proposed. + +### Browser acceptance + +[`graph-ui/tools/call-feedback-acceptance.mjs`](../../graph-ui/tools/call-feedback-acceptance.mjs) checks every item in the running UI: a binary built from this branch with the UI embedded, the same Django 5.2.7 index and the control repository. Each check measures a value in the page instead of judging a picture. Movements are also cut into frame strips (six frames per second) from a recorded video. Final run: **19 of 19 checks passed, no page errors.** + +| Item | Measured after the fixes (before) | +| --- | --- | +| G1 | One canvas element through selection and two expansions (before: rebuilt twice per Expand). Fits: one per new root, none per Expand. While the first scope arranges, the whole graph stays drawn instead of a blank canvas ([frame strip](pr-2068-call-feedback/30-after-strip-select-scope.jpg)) | +| G2 | A symbol opens at "1 layer" with 25 drawn edges for `JSONBAgg`; the minus button is disabled at depth 1 (before: "0 layers · 1 node · 0 edges") | +| G3 | Wheel zoom moves the camera 0.87 and 0.85 along the view direction, so it turns toward the cursor (before: exactly 1.000, always to the centre) | +| G4 | After two layers (90 nodes) the root marker sits at the canvas centre and all 90 nodes are inside the view ([image](pr-2068-call-feedback/21-after-galaxy-two-layers-root-marked.jpg)) | +| G5 | "Path to Func · 2 hops" via `Aggregate` with labelled edges, stepping and Escape ([image](pr-2068-call-feedback/22-after-galaxy-path-view.jpg)). Call order of `call_command`: 8 calls in source line order 110 to 173 ([image](pr-2068-call-feedback/23-after-galaxy-call-order.jpg)) | +| G7 | Scoped toolbar 49 px high at 1600 px, one row | +| C1 | The explanation prompt names all 11 callers from the index and contains none of the internal keys (before: one outgoing INHERITS item and `Snapshot.*`, `renderedNodes`, omission paths) | +| C2 | "Who calls JSONBAgg?" lists all 11 CALLS callers, the 11 TESTS edges and DEFINES from `general.py`, marked "Listed from the indexed graph; not generated by the model", with no repeated line ([image](pr-2068-call-feedback/24-after-chat-who-calls-listed.jpg)) (before: `DateTimeField` repeated to item 48) | +| C3 | The element under the Send button is the Send button; Selection details ends at x 1158, the input starts at x 1193 (before: Selection details intercepted pointer events) | +| C4 | Returning to `JSONBAgg` starts no new model run and shows the same explanation at once (before: "Explaining selection..." again) | +| C5 | Output limit set to 384, still 384 after a reload; input limit 2048 ([image](pr-2068-call-feedback/25-after-agent-configuration-token-limits.jpg)) | +| C6 | Robot icon with status lamp; the model name is in the tooltip and label; a click opens the agent configuration | +| A1 | Inside `django`: 23 labels, none overlapping, no full paths; the next folder level as area blocks, external areas in an "Outside" lane, the same tilted perspective as the root ([image](pr-2068-call-feedback/26-after-overview-django-drill-in.jpg)) | +| A2 | System structure for Django: 12 groups shown; backend status `ready` with 12,774 components in 458 ms (before: `limited`, 0 components, reason hidden) ([image](pr-2068-call-feedback/27-after-system-structure-django.jpg)) | +| A3 | Behavior offers 61 starts for Django: the 2 classified entry points first, then ranked flows; `main` is picked and shows its 2 direct callees ([image](pr-2068-call-feedback/28-after-behavior-django.jpg)). The control repository keeps 129 | +| A4 | Endpoints grouped by first segment with counts, 155 test routes hidden behind a toggle, 20 labels without overlap, percent-encoded paths shown decoded ([image](pr-2068-call-feedback/29-after-routes-endpoints-grouped.jpg)) | + +### Test runs on the final tree + +- `scripts/ci/test-ui.sh`: green. vitest 235 files and 3,228 tests, style gate green (it was red on the base), promise scan, 203 portable acceptance checks, production build. +- C, ASan and UBSan: all 143 suites through the parallel harness, 8,005 passed, 0 failed, 7 skipped. The watchdog regressions of `scripts/test.sh` Step 5 (parent death, worker supervisor death, worker MCP error) pass. +- clang-format clean on the changed C files. The diff-scoped clang-tidy gate leaves four findings that already apply to the base: + - the cognitive complexity of `ap_render` (140) and `ap_overview` (67) + - the file's `calloc(n + 1, ...)` idiom + - an analyzer path with a NULL file that cannot reach `ap_ownership`, because `ap_load` returns an error first +- DCO: `scripts/check-dco.sh 92224c44..HEAD` reports 49 signed-off commits. + +### Not run, and why + +- `scripts/test.sh` without `--suites` stops at Step 0x, the packaging version-metadata contract: the package manifests declare 0.10.8 while the newest release is 0.11.0. The same failure occurs on `50a6a67b`, since this branch predates the 0.11.0 release on `main`. The suites and Step 5 were therefore run directly with the same build flags. +- Linux and Windows legs, and cppcheck (not installed locally), were not run. + +### Remaining limits and follow-ups + +- Django `urls.py` `path()` views are not linked to their routes by HANDLES edges in the index, so only two Django entry points are classified. Behavior covers this with ranked flows; linking the views is an indexer change. +- The listed caller answer is produced in the chat, which needs the browser model to be loaded before a question can be sent. +- Explanations are still worded by the local 0.5B model. The facts it receives are now complete and readable, but the wording quality is bounded by the model. + diff --git a/docs/development/pr-2068-call-feedback/21-after-galaxy-two-layers-root-marked.jpg b/docs/development/pr-2068-call-feedback/21-after-galaxy-two-layers-root-marked.jpg new file mode 100644 index 0000000000000000000000000000000000000000..315309b45d827800d80a0049aa29744d2660a5fe GIT binary patch literal 130020 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