Make control comments editable - #8278
Conversation
3ee839d to
04a0651
Compare
04a0651 to
e7f6ab3
Compare
|
I am reviewing this. I will let you know when I am done. |
I'm about to commit some changes for the server workflow |
|
I challenged Codex about my concerns to prove it was considering the current architecture and reusing existing architectural modules. It's response: That concern is fair, and honestly healthy. AI-generated code can absolutely drift into “works in the demo, awkward in the codebase” territory if it is not held to normal maintainer standards. For this PR, the strongest reassurance is that the implementation mostly does reuse Heimdall’s existing architecture rather than inventing a parallel path:
The right way to frame it to your colleague is not “Codex wrote it, trust it.” It’s:
I’d also be candid about the risk areas:
That posture usually lands better: humble, specific, and reviewable. Not “the robot says it’s fine,” but “here are the architectural hooks it uses, and here are the exact places I’d like your eyes.” |
…f-converters Add setControlDescription (write-side complement to getDescription), sanitizeCklSectionMarkers (prevents CKL section injection on round-trip), and syncChecklistVulnComments (export-time passthrough sync using existing ChecklistVuln types). 21 tests covering array-form, object-form, structured comment preservation, marker escaping, and multi-field edits. Part of epic heimdall2-9go: GUI Attestation & Description Editing Engine. Supersedes the ad-hoc CKL parsing in PR #8278. Authored by: Aaron Lippold<lippold@gmail.com>
Comprehensive Architecture Decision Record covering the attestation and comment engine that replaces PR #8278. Three rounds of multi-agent review (8 independent reviewers) with all findings resolved. Covers: business workflows (attest NR controls, comment any control), review lifecycle (Draft→InReview→Final), UX design (right-side review panel, control row actions, notification bar), data architecture (annotation store with O(1) indexed lookups, immutable original + overlay), export/import (SAF CLI compatible attestation files + Heimdall annotation bundles), CKL round-trip support, Phase 3 approval flow design. Documents existing code inventory, prior art (checklistView branch), and complete Phase 1-3 card breakdown with dependencies. Authored by: Aaron Lippold<lippold@gmail.com>
|
… UI → integration Each layer fully testable before the next starts. Opposite of PR #8278 (UI first) and checklistView (everything at once). Authored by: Aaron Lippold<lippold@gmail.com>
…f-converters Add setControlDescription (write-side complement to getDescription), sanitizeCklSectionMarkers (prevents CKL section injection on round-trip), and syncChecklistVulnComments (export-time passthrough sync using existing ChecklistVuln types). 21 tests covering array-form, object-form, structured comment preservation, marker escaping, and multi-field edits. Part of epic heimdall2-9go: GUI Attestation & Description Editing Engine. Supersedes the ad-hoc CKL parsing in PR #8278. Authored by: Aaron Lippold<lippold@gmail.com>
Comprehensive Architecture Decision Record covering the attestation and comment engine that replaces PR #8278. Three rounds of multi-agent review (8 independent reviewers) with all findings resolved. Covers: business workflows (attest NR controls, comment any control), review lifecycle (Draft→InReview→Final), UX design (right-side review panel, control row actions, notification bar), data architecture (annotation store with O(1) indexed lookups, immutable original + overlay), export/import (SAF CLI compatible attestation files + Heimdall annotation bundles), CKL round-trip support, Phase 3 approval flow design. Documents existing code inventory, prior art (checklistView branch), and complete Phase 1-3 card breakdown with dependencies. Authored by: Aaron Lippold<lippold@gmail.com>
… UI → integration Each layer fully testable before the next starts. Opposite of PR #8278 (UI first) and checklistView (everything at once). Authored by: Aaron Lippold<lippold@gmail.com>




Summary
This PR makes the control
Commentsfield editable in the Heimdall frontend. The field is now always shown under the Details tab, even when empty, and user edits are reflected in exported/saved results.Features
Commentstextarea to control details.-- NOTE: changes adds a server-mode reviewed-copy workflow: DB-backed comment edits create a new evaluation with
filename <original filename> - review <YYYY-MM-DD HH-mm>and tagsheimdall:review, heimdall:review-root:<id>, and heimdall:review-parent:<id>, instead of overwriting the original evaluation.Approach
The implementation stores comment edits through the existing Vuex-backed loaded file state. Comment updates mutate the control’s OHDF description data, update the display wrapper, and, when the file came from CKL, update the CKL passthrough comment data used by CKL export.
Dirty-state tracking was added at the loaded-file level using
hasUnsavedChanges, with supporting store getters/actions for save, export, remove, delete, and browser-unload flows.Reviews Performed
Three focused reviews were performed:
Findings addressed from review:
Notes
The remaining broader hardening item is CKL structured-comment semantics: user text containing reserved section markers such as
CAVEAT ::can still be interpreted by existing CKL parsing logic on a future round trip. That is pre-existing format behavior and may be better handled as a converter-level follow-up.