feat(reader): deliver Windows MarkdownViewr using AppKit #3

Closed
KofTwentyTwo wants to merge 103 commits from feat/windows-viewer into main
pull from: feat/windows-viewer
103 Commits
Author SHA1 Message Date
james.maesandCodex GPT-6 baee14f492 docs: prepare user-focused MarkdownViewr product page
Add real reader screenshots, user and developer guides, current contribution/support links, and verified OpenSSF enrollment evidence. Refs #31, #33, #34.

Co-Authored-By: Codex GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 12:39:59 -05:00
james.maesandCodex b1dc8743b8 feat(release): enable verified Windows signing
Use the published standards 1.1.0 builder with the six-file owned signing catalog. Verified Azure configuration, local final signed distribution and current application acceptance are recorded; production OIDC/signatures remain required before publication.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 11:18:59 -05:00
james.maesandCodex 313d25888d docs(release): record verified Azure identity and signing proof
Document the existing signing resource, isolated secretless CI trust and profile-scoped permission, protected release variable readback, and real SHA256/timestamped six-binary verification. Record completed tooltip acceptance while keeping CI and final distribution signing unproved.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 09:01:30 -05:00
James MaesandGPT-6 321816c1c9 fix(toolbar): attach disabled-editor tooltip to its native owner
Use the same ToolTip instance in ToolTipService and the hover timer, check the loaded target, and exercise actual hover/text/exit with UI-error assertions. Remove completed timing diagnostics while preserving all prior cases/assertions/deadlines. Refs #32, #28.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-12 05:44:02 -05:00
James MaesandGPT-6 de70220b83 test(ui): retain timing evidence for published acceptance
Measure fixture launch, slow lookups, owned closure and Appearance PDF phases in existing hosted artifacts. Preserve every case, assertion and deadline. Refs #21, #22.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-12 00:47:15 -05:00
James MaesandCodex d0526ef2f3 test(settings): activate the owned window before native picker actions
Retain original picker assertions and deadlines; include invocation evidence on failure. Hosted causation/acceptance remains required.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-12 00:15:14 -05:00
James MaesandCodex e6fd2818ff test(security): gate seeded parser campaigns and record assurance
Refs #30, #31. Add real parser properties and replay evidence; retain unenrolled badge and signing requirements without bypasses.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 23:31:46 -05:00
James MaesandCodex 82256f362e docs: record application review and remaining release evidence
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 22:50:30 -05:00
James MaesandCodex 3b01199afc fix(themes): avoid reserved Unicode export filenames
Prefix COM/LPT superscript device names in theme-export suggestions, matching Microsoft's Windows naming rules and existing ASCII/device handling. Six new existing filename cases pass; 668 core tests retain 100% measured line coverage and formatting passes.

Hold the push until the full final PR review is complete. Actual preceding b542 CI is terminal with native/published109 and installed108 per channel, zero skips. No signing/publication or genuine human review claimed.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 22:27:22 -05:00
James MaesandCodex b542dcd1f5 feat(documents): open bounded local links in native readers
Require user-initiated current-namespace Markdown/text links, verify the opened target handle against the source physical folder, and retain that grant for all reloads. Preserve source readers and duplicate focus without arbitrary shell or protocol dispatch.

Validation: 662 core tests and 100% measured coverage, 10 actual document/image filesystem cases, zero-warning Release and formatting. Prepared physical link/duplicate/watcher/junction-reload acceptance; 109 native cases discovered. Prior exact4d full distributed CI is terminal success.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 21:46:44 -05:00
James MaesandCodex 4d346565ea fix(rendering): preserve authored code and format raw HTML text
Reproduce four authored-code delimiter failures, protect actual code/pre regions, and apply enabled formatting only to raw visible text after original source positions are captured. Preserve attributes, comments, entities and the reference metadata/subscript boundary. Keep original MIT attribution and extend real browser acceptance.

Validation: 642 core tests and 100% measured line coverage, zero-warning Release build, full formatting. Previous c3c735e CI is terminal with native/published106 and installed105 per channel, zero skips. New hosted acceptance remains required.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 20:54:15 -05:00
James MaesandCodex a5bccf862a docs(signing): record verified gclo release reference
Verify the existing gclo release checksum and exact executable with Microsoft SignTool, record its full publisher subject, and retain the distinction from unconfigured MarkdownViewr signing. Update actual native placement acceptance.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 20:24:17 -05:00
James MaesandCodex c4047c746a docs(release): reconcile remaining work with verified acceptance
Add a current release checklist backed by actual distributed test cases and fresh placement screenshots, preserve all historical scope, and record the pending shared builder decision.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 20:21:22 -05:00
James MaesandCodex 216830e94f docs(release): record complete distributed acceptance and tenant discovery
Retain actual terminal native, published and stable/dev installed results. Distinguish public directory discovery from still-unverified Azure signing resources; preserve current hosted placement acceptance.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 20:13:42 -05:00
James MaesandCodex c3c735edd6 fix(settings): keep the full window inside its monitor work area
Center the bounded Settings window rather than retaining an offscreen cascading position. Record actual26/26 focused and106/106 native success and preserve current distributed acceptance.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 19:51:04 -05:00
James MaesandCodex 9d5c0d1d51 docs(release): retain terminal palette and repeat-click failures
Record exact1bfab22 focused/native outcomes and actual published timeout evidence before pushing the prepared metadata and native realization corrections.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 19:28:30 -05:00
James MaesandCodex b1f8af75a6 test(themes): realize offscreen choices with native scrolling
Navigate the owned virtualized list before selecting its exact theme automation ID, preserving every value assertion and the original lookup deadline.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 19:23:42 -05:00
James MaesandCodex 49f0556bf9 fix(navigation): retain heading identity on Contents row content
Preserve the trusted heading Tag after adding native depth-marker layout, so repeat ItemClick can navigate an already selected heading. Retain original physical assertions and correct client-versus-screen diagnostic interpretation.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 19:18:04 -05:00
James MaesandCodex 1bfab22835 feat(settings): preview theme palettes and clarify saved defaults
Use accessible native palette/state rows and one default radio choice inside the existing copied draft. Close every owned test window before the unchanged FlaUI exit fallback to avoid intentional sibling-window waits.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 19:12:06 -05:00
James MaesandCodex 24a464eac6 feat(settings): show effective Markdown default-viewer status
Read the Windows selected ProgID with bounded Unicode interop and exact installed ownership, refresh General without changing defaults, and show full-title tooltips only for actual native truncation with physical acceptance prepared.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:55:16 -05:00
James MaesandCodex b2ecc8c6ef docs(release): record terminal reader regression evidence
Retain actual published98/100 results and distinguish unreached installed lifecycle checks from the prepared source/Printing correction.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:44:06 -05:00
James MaesandCodex 7fa9f7735f feat(settings): share printing defaults with the output dialog
Add native Printing preferences with Apply/Restore and a shared validated options editor. Checked saves refresh all reader baselines, preserve concurrent Settings drafts and update the available named themes.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:42:32 -05:00
James MaesandCodex ec78b5020a fix(reader): retain cross-block headings and native click targets
Reproduce multiline inline closing tags in the following HTML block. Preserve complete token spans, place Contents tooltips away from rows and locate the observed exact picker edit through owned enumeration.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:40:03 -05:00
James MaesandCodex b5e519eddf docs(release): retain installed registration and coexistence evidence
Record exact hosted53755ab acceptance and distinguish unsigned fixture proof from remaining production signing and Windows chooser checks.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:27:45 -05:00
James MaesandCodex aeeb28dd5d feat(settings): add native Contents presentation preferences
Move new-window panel defaults and file-type guidance into General. Add full heading wrapping, optional depth markers and sibling-safe saved presentation, retaining the native depth control and exact heading titles.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:26:16 -05:00
James MaesandCodex 5803fc1b5a fix(source): retain complete inline heading syntax when folded
Pair actual inline heading nodes and exercise multiline headers, code/comment lookalikes and implicit closes. Record the Mac settings comparison and exact validation evidence.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 18:18:56 -05:00
James MaesandCodex 53755ab144 test(print): retain published fixture startup failure evidence
Retain owned activity logs, screenshot and accessibility tree when the original print fixtures cannot render their first heading. Add per-case console progress to full published/installed runs. All assertions, cases, startup and process deadlines remain unchanged.

Retained bd3d72a has full native 99/99 and focused 21/21; published log shows two startup failures before the 600-second timeout. Build/format, 17 relevant tooling tests, all configured analyzer rules and shared Markdown lint pass.

Refs #22

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 17:52:13 -05:00
James MaesandCodex 489af757e7 docs(release): record pinned rendering fidelity evidence
Verify immutable upstream template/CSS-help blob hashes and record matching shared screen declarations plus native Contents/source CSS boundaries. Retain full native 99/99 and focused 21/21 on bd3d72a while preserving the live installed run. Shared standards Markdown lint policy passes.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 17:46:07 -05:00
James MaesandCodex 5de41252f1 test(release): verify simultaneous stable and dev installations
Keep both actual editions installed and open during AppKit updates, verify isolated profile logs and registrations plus unchanged sibling process/bytes/settings, and require stable uninstall to preserve dev. Gate every smoke uninstall on the canonical artifact boundary and actual package manifest.

All 64 tooling tests and every configured analyzer rule on changed scripts pass. Real hosted coexistence execution remains pending; no local desktop input used.

Refs #14

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 17:39:42 -05:00
James MaesandCodex bd3d72abb8 fix(source): retain complete multiline HTML headings when folding
Use parser token spans for raw heading ends, preserving authored multiline attributes, nested title markup and closing syntax. Three newline regressions reproduce the previous header loss; all 589 core tests and required 100% line coverage pass.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 17:32:31 -05:00
James MaesandCodex 764c7ac7fb feat(release): prepare 1.0 and verify installed file registrations
Refs #14 and #10. Add read-only real install/update/uninstall/default-choice assertions and raw HTML heading/fold/find/reload acceptance. Prior9994eda is terminal green across native, published and both installed channels.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 17:18:50 -05:00
James MaesandCodex c89ce5cbb7 chore(source): remove temporary native diagnostic probes
Refs #17 and #27. Exact9994eda passes20 focused and98 native cases; keep its live published/installed run intact before pushing this clean candidate.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 16:43:08 -05:00
James MaesandCodex 9994eda630 fix(source): use content coordinates for offscreen scroll anchors
Refs #17. Retain bounded geometry probes until unchanged native and published acceptance verifies the correction.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 16:31:16 -05:00
James MaesandGPT-6 6374611537 fix(source): repaint on explicit shell theme mode changes
A System-to-Light mode change can retain ActualTheme, so repaint the source from the actual shell command as well as resolved-theme events. Extend real native palette coverage through System-to-Light on already highlighted text, and require three consecutive attribute observations to catch the proven correct-then-plain color reset. Keep original colors, selection and read-only assertions.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 16:00:47 -05:00
James MaesandGPT-6 b15fcbce5f fix(source): include scroll offsets in native caret hit testing
The actual focused regression returns character2 at verticaloffset5297.759. WinUI exposes the full text extent as RichEdit client space, so add current horizontal and vertical offsets to the client inset before native hit-testing. Keep the original physical source alignment assertions and bounds.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:56:55 -05:00
James MaesandGPT-6 5fa6754f0a fix(source): paint tokens after native foreground propagation
The published trace shows the native heading changing from #75628B to #1F1F1F after painting with the same snapshot, generation and six tokens. Await the owned low-priority dispatcher boundary after setting control brushes, then apply default and semantic native ranges. Recheck stale/disposal guards; preserve actual color, pointer, selection and read-only assertions.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:46:04 -05:00
James MaesandGPT-6 91877f7688 fix(source): select the visible native caret before focus
The hosted probe shows that offscreen range rectangles are zero before adding the scroll offset, so binary searching them selects character zero and native focus reveals the old caret. Hit-test the actual visible native text instead. Outline DOM probes prove nested hidden state survives parent expansion; await the corresponding real UIA peer transition with the existing bound and identical absence assertions.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:37:34 -05:00
James MaesandGPT-6 04c1da8289 test(reader): retain native failure evidence before geometry queries
Preserve source alignment failures when UIA glyph queries throw E_UNEXPECTED. Capture opt-in native color propagation and generated collapsed-section indices to distinguish the remaining source and outline defects; keep all acceptance assertions intact.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:29:10 -05:00
James MaesandCodex dbda6d48da test(installation): require channel-owned file registrations
Mark native tests as published or installed from the actual smoke harness's
verified manifest/channel/update boundary, saving and restoring the marker.
Installed Settings must find this exact executable's expected registration
and enable Default Apps; a missing registration plus disabled button cannot
silently pass. Published fixtures must remain unregistered.

The marker changes no application behavior and creates no registry state.
Windows user selection, Explorer and lifecycle acceptance remain required.

Validation: zero-warning Release, format, 55 script boundary cases and both
script analyzer partitions; actual installed execution pending.
Refs #14

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:15:12 -05:00
James MaesandCodex efe14af2fa fix(source): repaint after native theme propagation
Initial native source foreground is intermittently reset to#1F1F1F following
ThemeLight even when its real UIA Toggle action executes. Queue semantic paint
after native theme propagation instead of painting inside ActualThemeChanged.
Preserve parser/range generation guards, native selection and read-only state.

Keep exact native foreground and physical hover regressions; focused14/15 does
not override current full93/97 proof. Include the newly observed nested outline
variant in focused CI, retaining all existing cases and release gates.

Validation: zero-warning Release and full format; exact hosted proof pending.
Refs #16, #27

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:12:02 -05:00
James MaesandCodex 2fe5853720 fix(activation): release accepted broken pipe connections
A synchronous broken read clears IsConnected before cleanup; skipping Disconnect
leaves the native instance busy and prevents later file activations. Track each
accepted connection and release it even after the managed Broken transition.

Add a deterministic real current-user pipe regression: defer the actual server
continuation until its peer closes, then assert the next real acknowledgement.
The unfixed next connection times out10seconds; all4 cases and25 stress runs /
100tests pass after the fix. No retries, deadlines or assertions were relaxed.

Include pipe cases in the required focused job. Retain numeric source focus
coordinates behind the existing test-only trace opt-in for the sole remaining
focused source alignment failure; remove that tagged probe before release.

Validation: zero-warning Release build, full format verification and actual
100-case pipe stress. Prior9fdfc2d focused14/15; distributed proof pending.

Refs #1, #10, #14, #16, #17

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 15:08:15 -05:00
James MaesandCodex 9fdfc2d981 fix(reader): respect heading insets and native menu actions
Compare heading navigation against its actual CSS scroll target so repeated
commands advance while preserving Darin's original scroll inset. Assert the
exact native 16px landing position.

Use WinUI's supported Toggle action instead of a focus-sensitive mouse
fallback; physical source hover assertions remain. Navigate the native picker
before entering all four quoted filenames to avoid its observed input limit.
Include every remaining native failure in the focused required CI check.

Validation: zero-warning Release build, full format verification, 55 Pester
boundary tests and both analyzer partitions pass. Prior 8abbd4d native run is
93/97; this correction awaits exact-head native/published/installed proof.

Refs #1, #10, #16, #17, #21, #27

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 14:56:57 -05:00
James MaesandGPT-6 8abbd4d43c fix(reader): expose the reading scroller and preserve native focus
Name and focus the original document scroll region for real browser UIA
scrolling. Defer duplicate-reader activation until menus finish closing.
Use visible menu peers and preserve Settings focus during UIA invocation.

Retain exact font-growth, PDF width/edge, source-color and palette assertions.
Give the font fixture a clear rounding margin and center its narrow print
body; sample the real empty reading gutter. Record actual failure values.

Validation: zero-warning Release build;586 core tests and100% measured line
coverage; native84/97 on the prior head;75 real pipe stress tests pass.
Current hosted/published/installed and production signatures remain pending.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 14:39:15 -05:00
James MaesandGPT-6 05bf612779 fix(reader): correct print width and native acceptance boundaries
Reset the outer custom body width for full-page printing and align fixed
Contents/Print controls with the standard toolbar hit targets. Use the
observed native Open picker filename control and visible outline-depth peer.

Keep the exact existing pixel, width, scroll and font-growth assertions;
retain native failure geometry and run a focused hosted regression group.
Record current74/97 native acceptance and the passing source-hover proof.

Validation: zero-warning Release build;586 core tests;100% measured line
coverage; full formatting verification. Current distributed acceptance and
production signing remain pending.

Co-Authored-By: GPT-6 <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 14:19:38 -05:00
James MaesandCodex 0ed608e09c feat(reader): isolate editions and refine native review behavior
Use separate stable/dev package IDs and compose native services from the actual
installed channel after Velopack startup. Keep titles, settings, logs and update
identity separate; installed fixtures now pack distinct IDs and assert edition
titles without touching production installs. Add a reproducible gclo-family
Markdown icon and WinUI open-source credit with complete vendor notices retained.

Hosted0eb3a0e reproduced the source-hover bug: heading color changes from
#75628B to #000000 at the first pointer assertion. Test the native visual-state
foreground hypothesis by removing only ContentElement.Foreground animations;
keep native chrome and actual character-color assertions. Add a focused hosted
regression with retained TRX alongside the unchanged full acceptance scope.

Record exact current failures and immutable GitHub OIDC claims. Prepare deployed
Azure account/profile/full-subject inspection and profile-scoped signer actions;
no Azure mutation or actual production signature is claimed.

Validation: zero-warning Release, 586 core tests/100% measured lines, formatting,
55 script tests and both changed-script analyzer partitions pass locally. Native
candidate/edition acceptance and all 25 current full-suite failures remain open.

Refs #1, #14, #16, #24, #27, #29

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 14:00:47 -05:00
James MaesandCodex 0eb3a0efbd feat(reader): complete configuration and Windows integration
Add cancel-safe native Settings pages, configurable typography/CSS/themes,
file registration and activation, theme-aware source and proportional layout,
toolbar/footer/editor guidance and open-source credits. Preserve attributed
Darin Kelkhoff document styles and literal passive rendering. Retain verbatim
vendor notices with scoped newline/whitespace preservation; secret, security
and other hooks remain enabled.

Validation: zero-warning Release build, 582 core tests with 100% measured line
coverage, 25 Windows adapter tests, formatting and self-contained publish pass.
Current native/distributed acceptance and source-hover diagnosis remain pending;
no production release-readiness claim.

Refs #1, #6, #11, #14, #16, #17, #18, #19, #20, #21, #23, #24, #25, #26, #27, #28

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 13:40:39 -05:00
James MaesandCodex 841798c750 test(documents): drive owned native controls after navigation
Reacquire browser glyphs, click unsupported menu providers physically and retain exact picker diagnostics. Keep individual waits unchanged; allow the measured expanded full suite to emit its TRX within a bounded 600-second process budget.

Refs #1, #14

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 13:20:03 -05:00
James MaesandCodex 1cfc07f900 docs: record full print evidence and window milestone
Refs #1, #12, #14

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 04:46:02 -05:00
James MaesandCodex e48a08cd56 feat(documents): add native windows and private recent files
Refs #1, #14

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 04:36:28 -05:00
James MaesandCodex bf4fcdc26a test(print): measure precise font scale in actual PDFs
Refs #12, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 04:25:11 -05:00
James MaesandCodex 6e17674494 test(reader): retain actual zoom failure geometry
Refs #12, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 04:15:28 -05:00
James MaesandCodex d0a225d420 test(print): verify actual font and layout options
Compare real PDF glyph scaling and padding, user-theme content width, optional border rows and full-page output through native controls. Verify actual paired find/source selection and screen paint after successful exports. Preserve original print cases and retain generated PDF/PNG evidence.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 04:01:02 -05:00
James MaesandCodex 300e14526c chore(print): retain verified acceptance and remove probes
Original hosted print cases pass: both cancels, actual default/themed PDF pixels and unchanged rendered/source/collapse state. Remove the temporary workflow and numeric probes; retain original regressions and require full clean native/published/stable/dev gates. Record measured standards readiness and remaining inventory/review/signing work.

Refs #12, #1

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:47:33 -05:00
James MaesandCodex ec5f98fbf4 test(print): await the complete native PDF filename
The hosted native edit reports a typed prefix while queued input is still processing. Wait for exact full readback before Save rather than asserting an incomplete snapshot; keep PDF output and reading-state assertions unchanged.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:42:17 -05:00
James MaesandCodex 6bfcf0c52e fix(print): restore reading position after native PDF output
Hosted evidence confirms PDF generation moves the same screen glyph by 41 pixels. Restore validated vertical geometry after the awaited PDF operation only on the same ready navigation; assert actual glyph/view rectangles instead of a stale 200-percent UIA range.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:38:04 -05:00
James MaesandCodex 39f4ea3983 test(print): compare actual glyphs with scroll-provider state
The first viewport trace reports an impossible 200 percent before printing. Pair each print stage with actual heading and browser rectangles before choosing a restoration change.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:29:43 -05:00
James MaesandCodex eba7a752fd test(print): measure settled viewport around PDF output
Record fixture-only viewport stages and await stable native layout before taking the unchanged-state baseline. Preserve the original PDF pixel and after-print state assertions.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:25:15 -05:00
James MaesandCodex 41a687d17c test(print): drive committed native PDF destinations
Use the established find control identities. Exercise real filename typing with exact readback to diagnose a saved PDF missing from its expected fixture path.

Refs #12

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:19:42 -05:00
James MaesandCodex 28c295f3fe feat(print): add native printing and independent print styles
Keep reading and print styles in separate media sheets; preserve viewport, source, collapse, find and window font zoom. Add saved reference print choices, Windows print UI and explicit PDF save through the installed App SDK picker. Core363/100% lines, build/format/docs and55 script tests pass. Three hosted native/output cases are pending; they cancel physical print UI and rasterize owned PDFs using Windows, without a new renderer dependency.

Refs #12, #1. ADR-0003 proposed for maintainer review.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 03:12:17 -05:00
James MaesandCodex 2639e2d8d2 test(source): retire diagnostics after the original regression passes
Original source viewport test passed on 690be07 in run 38121389088. Remove temporary workflow, clicked-content/focus probes and geometry traces; keep the actual browser/source/physical-wheel regression and full required suites. Preserve historical session notes and keep startup state concise.

Refs #10, #11, #13.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 02:32:08 -05:00
James MaesandCodex 690be072d9 fix(navigation): resolve the heading from clicked native content
WinUI ItemClick supplies the TextBlock content rather than the ListViewItem. Attach the numeric heading identity to both native elements and accept the tagged clicked content. The original physical repeat-navigation regression reproduces the mismatch; no source scroll mapping or assertion changes.

Refs #10, #11.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 02:26:35 -05:00
James MaesandCodex dcddefb9c7 test(navigation): trace the native repeated activation boundary
Refs #10, #11. Physical repetition also fails; trace the opted-in numeric ItemClick boundary and assert actual browser alignment before source alignment.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 02:18:33 -05:00
James MaesandCodex 016c7453a4 test(navigation): activate the selected heading with physical input
Refs #10, #11. Preserve the original glyph and wheel assertions; distinguish native ItemClick from the UIA selection path.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 02:13:28 -05:00
James MaesandCodex 2bf1d14570 fix(navigation): reactivate an already selected outline heading
The original source regression now passes actual native and browser middle-heading alignment after bounded physical wheel input. It then reproduces a same-heading click that never jumps back because selection is unchanged. Handle native ItemClick as well as SelectionChanged; preserve keyboard selection jumps and bounded numeric renderer commands.

Zero-warning build, format, docs and normal hooks pass. The existing regression is retained unchanged; hosted full/native/installed proof remains required.

Refs #9, #10, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 02:04:26 -05:00
James MaesandCodex 22a33937b6 test(source): bound physical wheel input per native event
Measured input moves source and reader correctly, but a 31.8-detent event moves only one 580px viewport. Send at most four detents per event, read settled native movement after each, and retain exact glyph adjustment and all original bidirectional/wheel assertions. No application change.

Zero-warning build, format, docs and normal hooks pass. Existing 330 core tests/100% measured coverage and 55 script tests remain; hosted proof pending.

Refs #10, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:54:55 -05:00
James MaesandCodex 05c4bc91b9 test(source): drive measured physical wheel scrolling
The UIA range accepted min0/max7370 and value2455.883 but did not reveal the middle glyph or produce a new source geometry frame. Exercise the user gesture instead: measure one settled physical wheel detent, approach the text region, then align from actual native glyphs. Retain all source/reader alignment and wheel assertions; no application change.

330 core tests/100% measured lines retained; zero-warning build, format, documentation and hooks pass. Hosted proof remains pending.

Refs #10, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:44:12 -05:00
James MaesandCodex 06a1213eff test(source): retain native scrollbar range diagnostics
The expanded native suite passes 48/49 including actual zoom glyph/key/toolbar/reload acceptance. Preserve the original source failure and record native scrollbar min/max/read-only/value plus owned geometry before another driver change. No app change or relaxed assertions.

Refs #10, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:35:08 -05:00
James MaesandCodex 0f13849017 feat(reader): add window-local font zoom and native controls
Adapt pinned reference font-size scaling, 1.1 steps and 30–500% bounds without changing line height or persisted theme JSON. Ctrl+plus/equal/minus/0 retain owned reading focus; native menu and accessible percentage toolbar share the command. Navigation retains viewport/collapse and existing find replay.

Source focus alignment passes on 1c4d1ad. Drive the actual native scrollbar after the observed no-op text-range request, retaining exact source/reader glyph and physical-wheel assertions. Separate optional diagnostics from required CI.

330 core tests/100% measured lines, zero-warning build, format, docs, all 55 script tests and normal hooks pass. Hosted 49 native/published and 48 installed tests remain pending; no local GUI input.

Refs #10, #11, #13

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:28:00 -05:00
James MaesandCodex 1c4d1adaca fix(source): align the visible caret before native focus
Hosted diagnostics show GettingFocus captures the correct 5311 offset but later pointer/caret processing resets it to zero. Position only an unselected read-only caret in the visible text before focus; retain active find and viewport guards. Exact full UI acceptance remains required.

Allow the enlarged full published/installed suites a bounded five minutes and retain process output before reporting timeout failure. An owned headless timeout probe and both script-analyzer passes passed.

Refs #10, #11

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:12:44 -05:00
James MaesandCodex 82898bd278 test(source): isolate viewport diagnostics without masking timeouts
Keep full required UI suites intact. Run the exact failing source case on a read-only hosted Windows job and print owned focus logs before diagnostic range reads.

Refs #10, #11

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 01:06:42 -05:00
James MaesandCodex f650e36642 feat(reader): manage editor lists and preserve source focus
Add stable named editor choices, bounded legacy migration, copied add/remove/reorder drafts and native file/folder launch menus. Preserve one literal process argument and add actual hosted selection/persistence/probe tests. Restore the synchronized source viewport after native focus/caret revelation, with actual glyph assertions retained.

Refs #10, #11

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 00:53:21 -05:00
James MaesandCodex 2dc509dcfa test(source): verify native movement before reader alignment
Physically focus the owned native source before its text-range scroll request and require actual source glyph alignment before reverse synchronization. Retain original heading bounds and physical-wheel assertions; trace actual source offset changes numerically.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 00:36:26 -05:00
James MaesandCodex 90b5406fe4 fix(source): map original offsets to native CR text
Hosted source selections exposed a two-character drift after two newlines. Preserve canonical offsets and normalize only the native projection to one CR per break; retain exact viewport, fold and find assertions.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 00:28:30 -05:00
James MaesandCodex ddb98ac286 feat(source): mirror folds and synchronize reading positions
Preserve canonical source/find snapshots while projecting literal nested folds and pairing native/browser heading geometry. Add bounded numeric frame validation and actual hosted viewport/fold/find/reload acceptance.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-11 00:20:40 -05:00
James MaesandCodex b0f3b8638f perf(source): index original line boundaries once
Avoid scanning the remaining original text for every heading on a long raw HTML line; verify 300 distinct same-line anchors. Record full native/published/installed vim acceptance while retaining full source synchronization scope.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 23:53:48 -05:00
James MaesandCodex a0d8fe73aa feat(source): map sanitized headings to original syntax
Carry parser-derived UTF-16 provenance through sanitation using fresh private markers that are stripped before presentation. Cover Setext, fences, raw HTML, nesting, duplicates, Unicode, frontmatter and forged attributes. Source scroll and collapse UI remains pending.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 23:49:19 -05:00
James MaesandCodex 6bf125d7fd test(navigation): focus the reader with physical input
The first vim producer retained all 41 existing successes but UIA focus left native logical focus empty or on the outline button. Use the proven real MOVE/Down/Up path inside exact owned browser bounds, keeping real viewport, heading and query-typing assertions unchanged.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 23:39:46 -05:00
James MaesandCodex dfc41a78bd feat(navigation): add native vim reading commands
Route bounded reading commands through the owned UI thread with text-focus, modifier, layout and timed-prefix guards. Add physical viewport, heading and query-typing acceptance and preserve reference attribution.

Refs #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 23:31:02 -05:00
James MaesandCodex 5a9af6328f fix(navigation): reveal same-document fragment targets
Route same-document SourceChanged events through an exact-document and bounded-heading policy. Rearm repeated links after recollapse; retain physical click and actual reveal outcomes. Core 206 tests/100% lines and build/format/docs pass.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 23:07:20 -05:00
James MaesandCodex 9edd982e41 fix(tests): account for the composed browser hit provider
Require the physical pointer inside the exact hyperlink bounds and its owned browser provider. Retain the real click and collapsed heading/body reveal outcomes; record the proven native Ctrl+F acceptance.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:57:21 -05:00
James MaesandCodex 574b57432a feat(editor): configure literal external document launch
Persist a validated editor executable, expose native configuration and launch commands, and preserve the viewer on missing files or launch errors. Add bounded argument tests and hosted actual-process fixtures; editor-list and folder parity remain tracked in issue #11.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:55:12 -05:00
James MaesandCodex 2292603569 fix(input): route owned browser shortcut messages
Limit the Ctrl+F adapter to this foreground window and UI thread. Keep physical keyboard/link assertions and retain exact focus, pointer and fixture screenshot evidence.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:51:10 -05:00
James MaesandCodex 7d7c712c63 fix(find): register the window shortcut before menus open
Keep the physical browser-focus shortcut test and identify collapsed browser headings separately from outline labels. Correct ADR spacing and record the terminal acceptance evidence.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:41:19 -05:00
James MaesandCodex 4f4280921c feat(find): pair native document and source search
Add one Ctrl+F toolbar with literal source positions, native browser highlights, shared counts and wrapping navigation. Serialize query/reload updates, restore section choices and keep scripts/messages/host objects disabled. Add real keyboard, selection, viewport, hostile-query/reload and fragment-link acceptance.

Refs: #1, #9, #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:30:13 -05:00
James MaesandCodex 4bf0b81b85 fix(ui): expose source and inject native pointer movement
Declare the native source surface before the embedded browser without changing its visual column. Replace cursor-only warping with checked SendInput movement after hosted traces showed drag start/completion without deltas; retain physical mode and resize assertions and add source-divider acceptance.

Refs: #8, #9, #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 22:00:22 -05:00
James MaesandCodex 9ff820f477 feat(source): show literal snapshots beside the reader
Persist source visibility and width, refresh the committed snapshot on reload, and keep the reader usable with both panes open. Add hosted literal/read-only/reload acceptance and opt-in native event traces for the two outstanding pointer failures.

Refs: #8, #9, #10

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:50:34 -05:00
James MaesandCodex d59dba2c96 fix(tests): process pointer states before releasing native input
Refs #8, #9. Keep mode/table/resize assertions and timeouts; settle actual mouse down/move/up and retain resize diagnostics.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:31:19 -05:00
James MaesandCodex 443b4928ee fix(ui): target submenu input and expose the resize surface
Refs #8, #9. Keep settings/table/physical-resize assertions; verify pointer identity and dismiss the depth popup before dragging.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:23:09 -05:00
James MaesandCodex ce9afc6237 fix(ci): isolate casing analysis from competing rule lookups
Refs #5. Preserve every configured rule and fail closed; verify both partitions with negative fixtures. All 13 files and a bounded 20-case race probe pass locally.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:18:55 -05:00
James MaesandCodex 5c3988e012 feat(navigation): add native outline and section controls
Refs #9, #8. Preserve exact frontmatter assertions with fixture diagnostics; 161 core tests and 100% line coverage pass.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:15:47 -05:00
James MaesandCodex a141929820 fix(frontmatter): expose metadata table semantics
Refs #8. Add a caption and row headers; keep the actual accessible-table assertion unchanged.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 21:03:18 -05:00
James MaesandCodex 3b6ebf83d0 feat(frontmatter): add persisted metadata display modes
Refs #8, #7. Also verify the native code-font size control.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:58:14 -05:00
James MaesandCodex d3530d106f chore(ci): report analyzer files and engine exceptions
Refs #5. Keep every configured rule and propagate analyzer failures.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:58:10 -05:00
James MaesandCodex 30ca0943c0 feat(themes): edit and restore persistent document themes
Refs #7

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:44:51 -05:00
James MaesandCodex 77dd04da96 fix(accessibility): declare native status before the browser peer
Refs #6, #7

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:33:36 -05:00
James MaesandCodex fa0df784b3 fix(window): keep document status inside the working display
Refs #6

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:27:28 -05:00
James MaesandCodex 0507ca5ac4 feat(themes): port the original document palettes
Refs #7

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:22:31 -05:00
James MaesandCodex e7b6985a34 test(accessibility): retain native status layout evidence
Refs #6

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:20:23 -05:00
James MaesandCodex 23928bc614 fix(accessibility): expose document status to automation
Refs #6

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:15:01 -05:00
James MaesandCodex 665ece7fa4 test(documents): diagnose deletion recovery status
Refs #6

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 20:11:02 -05:00
James MaesandCodex 09d14e6b78 feat(documents): reload saves and retain the reading position
Refs #6

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 19:59:49 -05:00
James MaesandCodex f1756d21ed feat(reader): open and render isolated Markdown documents
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 19:35:37 -05:00
James MaesandCodex 85004f1d1f docs: record Windows viewer bootstrap and repository identity
Preserve the generated repository name in setup examples and record actual foundation validation, hosted run IDs and remaining viewer/release requirements.

Refs: #1

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 19:06:41 -05:00