- printer_list.html: extract group_client_id from first printer in group;
wrap client name in <a href="/clients/{id}"> when id present; Unassigned
group renders as plain text (no dead link)
- client_list.html: wrap client name cell in <a href="/clients/{{ c.id }}">
- Add Alpine.store('theme') for Light/Dark/System cycling with localStorage persistence
- Add Alpine.store('i18n') with FR/EN translations for all static UI strings
- Add topbar with theme toggle button (:aria-label, @click cycle) and lang button
- Wrap main content in .main-wrapper + .topbar for layout structure
- Add .main-wrapper, .topbar, .topbar-controls styles to app.css
- Add test_theme_toggle_present integration test
- Fix test_dashboard_shows_recent_printers assertion (string now in i18n JS too)
- Add PATCH /{printer_id} route with validation and in-place update
- Optional ip_address/port_name fall back to existing values when not sent
- updated_at set explicitly on save (datetime.now(UTC))
- Update _render_printer_list to include clients and driver_data in context
- Import Driver at module level for use in both handler and helper
- Create 11-01-SUMMARY.md with full execution record
- Update STATE.md: advance plan to 3, add decisions, update session
- Update ROADMAP.md: phase 11 progress to 1/4 summaries (In Progress)
- Add 8 new test functions: printers_new_returns_200, create_printer_redirects,
printers_library_no_form, patch_printer, patch_printer_not_found,
client_detail_returns_200, client_detail_not_found, client_links_in_printer_list
- Add FIXME comments on existing POST /printers tests noting upcoming 303 change
- All new tests FAIL against current code (proper RED TDD state)
- Existing 13 tests remain GREEN
Plan 4 plans across 3 waves covering UIE-01..05: form separation
(Plan 01), printer edit modal (Plan 02), theme+i18n toggles (Plan 03),
and client detail page (Plan 04). Wave 0 test scaffolds included in Plan 01.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Flip v1.0-VALIDATION-INDEX.md frontmatter draft -> signed-off (Sébastien QUEROL, 2026-04-13)
- Tick index sign-off line (45/45 pass, 0 fail-fix-v1.1)
- Replicate dated sign-off line into all 7 per-phase VALIDATION.md Validation Sign-Off blocks
- Tick nyquist_compliant checkbox in phases 01/02/03/04/05/07 (06 already ticked)
- Upgrade Approval lines phases 01-05 from 'pending' to signed-off with index back-link
- Tick REQUIREMENTS.md NYQ-02/NYQ-03 and flip Traceability Pending -> Complete
- Phase 4 attestation-only runtime gap recorded in index Residual Risk block (not reopened per plan 10-03 sign-off)
Technician confirmed real-world rollout: ImpTune ran in its local Docker
container, generated printer packages were delivered end-to-end via BOTH
Intune and NinjaRMM to real endpoints, and all tested installs succeeded
with no blocking items to triage.
Closes RWR-01..04. Attestation-only (mirrors Phase 10 accepted gap) -
no artifact evidence captured.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Status flipped from READY FOR SIGN-OFF to SIGNED OFF
- Signed off by Sébastien QUEROL on 2026-04-13
- All three sign-off checkboxes ticked
- Reviewer explicitly acknowledged attestation-only audit-trail gap for RTVAL-02/03/04
- Only RTVAL-01 is artifact-backed; RTVAL-02/03/04 accepted on technician attestation
- Status moved from IN PROGRESS to READY FOR SIGN-OFF
- RTVAL-01 evidence converted to markdown relative links (tenant-upload, app-assigned, .intunewin package)
- Sign-off section rewritten to surface attestation-only audit trail damage prominently
- Three sign-off checkboxes restructured to force explicit reviewer acknowledgement of RTVAL-02/03/04 attestation-only nature
- Compensating controls block added (known device, known tenant, single session, known-good generator)
- Duplicate Signed off by header removed from top; consolidated in Sign-off section
- Status: PASS (attested, no artifact) — third consecutive attestation-only check
- No uninstall log or portal screenshot captured
- Technician verbally confirmed uninstall under SYSTEM, clean removal from ARES-5CG5220YTM
- RTVAL-02/03/04 together constitute an attestation-only runtime half for Phase 10
- User warned twice and still chose attestation-only; audit trail weakened
- Top-level Status line updated to reflect all four RTVAL checks recorded
- Status: PASS (attested, no artifact) — second consecutive attestation-only check
- No evidence/rtval-03-detection.png or rtval-03-detect-manual.txt captured
- Technician verbally confirmed Intune 'Installed' on ARES-5CG5220YTM
- User warned about weakened audit trail and chose to proceed anyway
- Plan 10-02 advanced to Task 4 (RTVAL-04 uninstall under SYSTEM)
- Mark RTVAL-02 PASS based on technician verbal attestation
- Flag explicitly as attestation-only: no log excerpt, no screenshot
- Audit trail weakened for this check (documented in Notes)
- User approved proceeding without evidence on 2026-04-13
- Advance report header to 'paused at Task 3 (RTVAL-03)'