Skip to content

Testing record

Seven-forum installation follow-up — October 22, 2026

Section titled “Seven-forum installation follow-up — October 22, 2026”

Discourse versions were read from all seven administrator dashboards on October 22. Component revisions and updater status below come from their latest recorded update checks. These are read-only observations; no product testing was run.

Forum Discourse version Update branch Installed revision Updater status
Repeal OBBBA Forum 2026.10.0-latest+114 Default (main) 412448f Up-to-date; 0 behind
The Bridge 2026.10.0-latest+138 Default (main) 412448f Up-to-date; 0 behind
DiscussionBridge Forum 2026.10.0-latest+613 Default (main) 3a7eb19 Up-to-date; 0 behind
DiscussionBridge sandbox 2026.10.0-latest+142 main 412448f Up-to-date; 0 behind
Citizen Activist Network 2026.10.0-latest+142 Default (main) 412448f Up-to-date; 0 behind
RVing Community 2026.9.0-latest+565 main 412448f Up-to-date; 0 behind
R744 Community 2026.7.2+14 main 412448f Up-to-date; 0 behind

Earlier follow-ups below retain their original observations. These installation records do not resolve E01, the recorded CI failures, or the testing-execution failure; see Known Issues.

Current testing disposition and RC5 sequence — October 22, 2026

Section titled “Current testing disposition and RC5 sequence — October 22, 2026”

The previous testing effort failed to produce a complete overall assessment. That testing-execution failure remains unresolved. Finding reproducible issues and verifying corrections did not make the overall execution successful. This is a testing-process failure, not evidence of additional product bugs. See Brand Navigation Known Issues for the unresolved process issue, implemented changes, scoped verification, and remaining limitations.

The two layout corrections and E03 checkbox-focus correction were verified in Chrome. Tested English/Arabic, light/dark, Foundation/Horizon compact keyboard sequences showed no issue in the observed desktop-Chrome mobile-view contexts. E01 immediate native-field/picker display staleness remains unresolved; saved values persisted in the corrected save/reload sequence, but its display cause remains unknown. Other incomplete checks remain missing coverage, not demonstrated product defects.

The October 22 evidence below comes from the existing GitHub workflows, including a mechanical lint correction. No local product suite was run for that cycle. The results identify the actual component and Core revisions; they do not resolve the earlier execution failure or its remaining coverage gaps.

Tested component commit: 676cc4a. The release documentation is a documentation-only descendant of that candidate; it does not receive a new product-suite claim.

  • Configuration bundles: 45 tests passed, zero failed or skipped, including the lint-coverage guard.
  • Discourse Theme: shared lint and all four backend jobs passed. Each frontend lane ran 49 tests: 42 passed and 7 failed. All four system lanes passed 53 examples each with zero failures. The theme workflow failed overall because of the frontend jobs. Three duplicate lint jobs and the compatibility-branch-only job were conditionally skipped; they are not executed passes.
Target Exact Core revision
2026.7.3 ESR 8a4ea10470790eba93f5dec65f3cacb0ffae1191
2026.8.1 monthly 1dce604a018931ff85572ce9815f7637e843f08c
2026.9.0 monthly 343b20f97ef5f6bd70826ee0e993ba348b210fd5
Development latest 224e31bc757037f482682ee130fd948947947871

The component’s reusable Discourse workflow reference is 05b8c4ee75d2408ffd23a2fbfb948dd82037fc57. Available logged identities include discourse/.github@v1 at bee9ee78c8e6fd574a8496f415e08c6eb412d3df and the latest frontend’s discourse/discourse_test:slim-browsers image digest sha256:23c91b5755b9a76bfe3be39e3daeac7730c27947347923ed06cb7ccfc35deb5a. The configuration job recorded Node 22.23.3, npm 10.9.9, pnpm 10.28.0, Git 2.55.0, runner 2.338.0 and Ubuntu 24.04. These are recorded identities, not a claim that every transitive dependency is immutable.

All four frontend lanes reported the same seven failed administrator-bundle assertions: imported additional colors, Appearance submitted-snapshot reconciliation, independent core-header save/reset, imported core-header picker reconciliation, bundle snapshot/draft preservation, additional-color save/reset, and older-copy setting selection. See Known Issues for the exact names and observed values. These are failed checks; their cause has not been established and they are not seven independently demonstrated product bugs. The CI result is not all green, and publication does not close them or E01.

The initial candidate 6c9befbf82f4d17d68f69f1287562aebda344e96 (configuration, theme) passed 44 configuration behavior cases and all backend/system lanes, but failed lint and the same seven frontend assertions per target. The follow-up only sorted/formatted existing sources, made an equivalent Ruby style correction, and documented a line-scoped observer lint exception for the existing legacy ThemeSettings API. It added no test and disabled no runtime assertion.

Main update and testing closure — October 21, 2026

Section titled “Main update and testing closure — October 21, 2026”

This update includes the accumulated Appearance state-handling changes, checkbox-focus correction, compact-menu content guard, mobile linked-label containment, existing regression sources, and support-policy documentation. It is not an RC5 tag or release acceptance.

Focused Chrome checks verified the two layout corrections and E03 focus correction. Tested English/Arabic, light/dark, Foundation/Horizon compact keyboard sequences showed no issue in the actual desktop-Chrome mobile-view contexts. E01 immediate native-field/picker display staleness remains unresolved; saved values persisted in the corrected save/reload sequence, but its cause is unknown. Other incomplete checks are missing coverage, not demonstrated bugs. See Known Issues for the disposition and exact limits.

This main update used [skip ci] and did not run a new suite. The refreshed CI pins had not yet been executed on October 21; their later October 22 results are recorded above. Historical passing results retain their exact candidate and scope.

The RC5 working candidate at commit 238d5ad completed GitHub CI on October 20, 2026. These results identify that tested commit, not a later main revision or a subsequent RC5 release identity.

RC5 release notes summarize the corrections, scoped verification, support policy and remaining limits. This section retains the earlier candidate’s evidence; October 22 outcomes are recorded above.

Discourse version Release type Exact Core revision System-test result
2026.10.0-latest Development snapshot from Discourse’s latest branch 121f4209defec81d9d167646fb7743683f7f6883 49 examples, zero failures
2026.7.0-latest Earlier development snapshot from the 2026.7 cycle 988c31e00fb73713c81b93cd47f68af0fb4c6273 49 examples, zero failures
2026.7.2+14 Site-derived revision on the 2026.7 ESR line 2e46cff73b07ecddbcc5603eb3fbf41d563577f6 49 examples, zero failures
2026.8.0 Regular monthly release badad7b0456a628e578bc48b9f8c1259422b5d58 49 examples, zero failures

These are isolated GitHub CI targets, not the current installed versions of the live example forums. The repeal and r744 job names identify the compatibility revisions originally selected for those sites. R744’s operating policy is to remain on the oldest still-supported ESR, with updates within that line; the fixed CI revision is not a recommendation to remain on that particular patch. Discourse’s official release data identifies ESR lines and support periods. The 2026.7.0-latest snapshot is not a published ESR patch.

The R744-derived 2026.7.2+14 revision is not the exact official v2026.7.2 tag, which resolves to 3ab62a8397926ed934b667a5db06284c45b4c774. Its result applies to the exact Core commit in the table.

Discourse Theme CI passed backend, frontend and system-test jobs on all four targets, plus the shared lint job. Each system run completed the same 49 examples: 29 Brand Navigation checks and 20 Discourse core checks, not 196 different scenarios. They cover navigation and submenu rendering, mobile modes and header alignment, English/Arabic layouts, colors and sizes, editor saves, Appearance import reconciliation, staging-preview imports, application embed exclusion and core forum interactions while the component is active.

The added regression completed no-op Inherit all, a native color save, a different Appearance color save on the same panel, and reload. It checked all eleven persisted colors, native fields and Custom states before and after reload, plus both changed color pickers. The initial 90abb5a attempt failed at a detached checkbox interaction before finishing that sequence; 238d5ad changed only the test interaction, and the complete example passed on all four targets. These results replace neither OS color-dialog nor human accessibility checks.

Configuration bundles CI passed all 45 tests, including the full JavaScript lint-coverage guard. Overall, 18 jobs passed and none failed. Three duplicate lint jobs were covered by the passing shared lint job; the compatibility-branch-only job did not apply to this main push. Those four skips are not counted as passes or unfinished RC5 work.

The source corrections received focused read-only review at 57649be; the tested 9708b01 follow-up only reordered a class member and formatted two files. The later 90abb5a and 238d5ad commits changed only the regression test. The passing full save-and-reload example verifies that specific correction. The green shipped suites do not by themselves establish every other corrected interaction, a complete installation/upgrade/recovery sequence or complete manual accessibility acceptance. Twelve human screen-reader procedures remain deferred. Historical results below retain their own candidates and limits; they are not fresh verification of this RC5 candidate.

Policy adopted October 20, 2026: follow Discourse’s support schedule, test supported ESR and monthly lines at their latest released patches, and retain a separate development latest lane. The oldest still-supported ESR is required; both ESR lines remain targets during a support overlap. See the release policy for publication safeguards.

What is complete: the results above cover the 2026.7.2+14 ESR-line revision, released 2026.8.0 and two development snapshots. They are valid evidence for those exact revisions, not results for newer patches. The published RC4 tag remains unchanged.

What is implemented and executed: the existing four-lane workflow was retargeted and committed on main in dcb01b2 to the supported releases and development lane below. The policy and workflow selection are in place. The October 22 existing CI ran these targets at 676cc4a, with failed frontend checks as recorded above. No additional lane, runner or test case was added. The earlier main update used [skip ci]; October 22 execution is separate.

October 22 CI target Exact released Core commit / selection Status
2026.7.3 ESR 8a4ea10470790eba93f5dec65f3cacb0ffae1191 Executed; frontend failed
2026.8.1 monthly 1dce604a018931ff85572ce9815f7637e843f08c Executed; frontend failed
2026.9.0 monthly 343b20f97ef5f6bd70826ee0e993ba348b210fd5 Executed; frontend failed
Development 224e31bc757037f482682ee130fd948947947871 Executed; frontend failed

These versions were checked against the official release schedule and released Git tags on October 20. The 2026.1 ESR ended support September 22 and is not a current target. The supported 2026.8 monthly line ends support October 27; refresh the list before execution rather than retaining an expired target.

Policy in place; schedule catch-up incomplete: ESR tracking is adopted for subsequent releases and prereleases. The policy is established; current testing coverage is behind the schedule. Committed pins alone do not prove compliance. The October 22 existing GitHub CI exercised the current targets, but failed frontend checks prevent a clean compatibility claim. Future cycles follow the then-current support schedule, including overlapping supported ESRs and retirement of expired lines. Other coverage limits remain separate.

Seven-forum update follow-up — 2026-10-22

Section titled “Seven-forum update follow-up — 2026-10-22”

All seven installations reported matching local and remote Brand Navigation revision 412448f, matching main when checked, with zero commits behind.

Forum Discourse version Discourse component ID Update branch Installed revision Updater status
Repeal OBBBA Forum Not recorded 19 Default (main) 412448f Up-to-date; 0 behind
The Bridge Not recorded 6 Default (main) 412448f Up-to-date; 0 behind
DiscussionBridge Forum 2026.10.0-latest+142 3 Default (main) 412448f Up-to-date; 0 behind
DiscussionBridge sandbox Not recorded 3 main 412448f Up-to-date; 0 behind
Citizen Activist Network Not recorded 1 Default (main) 412448f Up-to-date; 0 behind
RVing Community Not recorded 16 main 412448f Up-to-date; 0 behind
R744 Community 2026.7.2+14 1 main 412448f Up-to-date; 0 behind

“Default (main)” means no explicit branch is stored. The native updater then says “Theme is up-to-date”; explicit main adds “with main”. DiscussionBridge Forum retained its default-branch setting before and after this update, which completed after the earlier HTTP 500 failures.

The table records existing source selections. Normal installations leave Git Branch blank for automatic compatibility selection; see the update guidance.

These are read-only installation/status observations, with no new product testing. They do not resolve the existing CI failures, E01, or testing-execution failure recorded in Known Issues. Discourse versions marked “Not recorded” were not collected during those update checks.

Seven-forum update follow-up — 2026-10-17

Section titled “Seven-forum update follow-up — 2026-10-17”

All seven forums were confirmed to follow main on October 17, 2026. Earlier compatibility-branch checks below describe previous installations.

The component ID identifies Brand Navigation in each forum’s Discourse admin; it is not a version number.

Forum Discourse component ID Update branch
Repeal OBBBA Forum 19 main
The Bridge 6 main
DiscussionBridge Forum 3 main
DiscussionBridge sandbox 3 main
Citizen Activist Network 1 main
RVing Community 16 main
R744 Community 1 main

The live source settings and native updater status were checked on all seven. The sandbox’s active component was changed from its RC1 release-branch pin to main. RVing and R744 were changed from automatic compatibility selection to explicit main, without upgrading Discourse or touching detached rollback copies. The remaining forums already followed the default branch, main.

The update follow-up covered administrator controls, saved-setting preservation, unsaved Move down / Move up checks, and submenu keyboard interaction. Repeal’s focused results are recorded separately below. RVing and R744 were checked again after their switches to main; the earlier compatibility-branch checks were not reused as proof of their new installations.

Both sites reported Theme is up-to-date with main. Checks used Chrome, signed-in administrators, a 1680 × 901 desktop viewport and each site’s active theme, without switching themes.

Forum Discourse version Core commit Attached themes
RVing Community 2026.9.0-latest 9cccc5837dc83a7af376dd40d4cb709cd25b0228 Default, Foundation, Horizon
R744 Community 2026.7.2 2e46cff73b07ecddbcc5603eb3fbf41d563577f6 Foundation, Horizon

Confirmed on both sites:

  • All eleven Appearance color pickers and all four desktop/mobile header-size fields were present. The size fields retained their default value, 0.
  • All sixteen settings present immediately before the switch retained their exact values, including navigation and colors. The current settings editor listed twenty-six settings after the new controls were added.
  • The object editor displayed the same-area (Surface) ordering hint and Move up / Move down titles and accessible labels. Move up was disabled for the first item. Move down changed the draft order; Move up restored the complete original tree. Save Changes was not pressed.
  • Fresh forum pages rendered the configured navigation. RVing’s Community submenu and R744’s Resources submenu opened. Tab focused a visible child: Latest discussions on RVing and About on R744. Escape closed each submenu and returned focus to its own control.
  • Focused submenu text was dark (#222222) on the light highlight (#F7CDC2). The configured Discourse Meta new-tab links had rel="noopener noreferrer"; same-tab links retained _self. No visible error alerts were found on the checked pages.

These are live desktop smoke checks, not a new release qualification or a full theme/device matrix. Mobile, anonymous sessions, pointer hover, theme switching, live color/size changes and setting-save persistence were not replayed. No live navigation or color values were changed during these checks.

Live follow-up: Repeal OBBBA Forum — 2026-10-17

Section titled “Live follow-up: Repeal OBBBA Forum — 2026-10-17”

Brand Navigation component 19 on Repeal OBBBA Forum was updated through Discourse’s native updater from d6904df88d9975a3046381173e6764d8ec0ed165 to e791167cf0f0aac16884de6f730694fbdeebfc4e. The updater reported up-to-date, and a fresh page load displayed the revised Surface wording.

Environment: Chrome, signed-in administrator, 1680 × 901 desktop viewport, the site’s active theme without theme switching. The page reported Discourse 2026.10.0-latest, Core bf55a44c2872738f7ae2664d6fec3d6d8779190f.

Confirmed after the update:

  • The editor displays “Items in the same area (Surface) appear in the order listed.” Both arrows have Move up / Move down titles and accessible labels. Move up is disabled for the first item.
  • Move down moved the selected item below its neighbor; Move up restored the original order. This was an unsaved draft check: Save Changes was not pressed, and the saved navigation was not reordered.
  • All eleven Appearance color pickers were present. The visible setting-field values and navigation-tree order matched the pre-update observations.
  • Social opened its submenu. Keyboard focus on Bluesky produced visible white text and icon fill (#FFFFFF) on the navy background (#002147). Escape closed the submenu and returned focus to its control. White submenu-hover text was already configured before this update; no colors were changed.

This is a focused live desktop check, not a new release qualification or a full theme/device matrix. Pointer hover, mobile, other themes and live setting-save persistence were not replayed in this session. Automated reorder/save coverage passed separately in PRs #31 and #32; it is not presented as a live-site save.

Updated 2026-10-17. The alignment, icon-color and friendly-editor features were included in v1.0.0-rc.2 before its first publication. The runtime-tested candidate is the frozen admin-label-test-r2 delta over main commit 1ddfef2872855289763b10fc39800ec1ba7f455a: 58 members, with no candidate commit/tree claimed. Its canonical ZIP is 269,937 bytes, SHA-256 58123c4c03f1ce8e8cf98cceaa1f9c92225c8b8cb1040f3abb17b82cb7da8f34. The subsequent documentation preparation changed no runtime source. These results apply to the identified installed bytes; a changed ZIP hash is not a new native-install result. Applicability to a later archive depends on whether its Core-consumed fields match the tested installation.

Isolated actual checks used Discourse Core 3086c087a2bceb3d607c6389f77204fec054b018:

  • Normal Foundation/Horizon coverage passed 12 cases/24 layout variants, and the earlier shipped component suite passed 22 examples. Explicit unchanged-effective-source analysis supports their applicability through the focused corrections; these were not replayed as a fresh full replacement suite.
  • Fresh Foundation/Horizon 320px RTL minimized-topic checks and two new shipped English/Arabic regressions passed: four examples, zero failures. Owned/native hit targets, measured header offsets, menu/Escape/focus return and actual native topic-link restoration were reached and verified.
  • Three prior positive feature cases (Foundation dark colors and both stock minimized-header keyboard cases) carry across the unchanged relevant source. A fresh, exactly selected five-case run passed Foundation light, Horizon light/dark, native friendly-editor persistence and Appearance persistence. This qualifies the eight adopted scenarios through bounded evidence, not a fresh single eight-case run. Browser feature captures used Chrome 151.0.
  • The four palette cases exercise blank, normal-only, hover-only and combined icon-color settings across both alignments and icon-only/icon-label links. Actual hover and pointer-away keyboard focus were checked independently. Inheritance follows the declared theme variables; native icons, link text and brand-bar colors remain unaffected. Native light/dark selection was exercised on both stock themes. This closes the earlier overlapping-hover and untested palette limitations for these exact cases, not every third-party theme.
  • The actual native editor adds Menu item/Submenu item rows, saves, stays open, reloads and edits persisted values without changing stored schema identities. Appearance saves/reloads both colors, clears them with Inherit all, then imports/reloads them. Native color-input events were used; the OS picker dialog was not exercised.
  • Native ZIP import returned component ID 35. All 20 fields matched exact Core-consumed names, targets, types and canonical digests, without field errors or unexpected attachments. The prior replacement’s 20 fields and the original 19-field component were preserved, with census/default/joins guards; the separate historical installation was also retained.
  • Installed component 35 passed all 40 unique named frontend tests: 21 unit, six icon/readiness and 13 administrator/bundle cases; zero failures, skips or todos. This includes real native-editor API regressions, strict tracked-data saves and older five-color component-copy behavior. The profile used Puma 8.0.2 with one request thread and Chrome 155.0; the runner reported plugins disabled. It does not qualify default server startup or all-plugin behavior.

Historical failures remain recorded, not relabeled as passes. The first eight-case feature attempt passed three and failed five: it exposed the friendly-label product defect alongside a compilation timeout, color-oracle mismatch and detached test control. The bounded product/test corrections and fresh selected outcomes supplied the missing observations. A subsequent retry selected zero cases because its filter used the wrong RSpec option; the strict count guard failed that run. The first installed frontend run passed 37/40; three native-helper cases failed before assertions because the initializer lacked its application owner. A one-line test-only context correction, with runtime bytes unchanged, preceded the final 40/40 result. No assertion, count or timeout was relaxed to obtain these outcomes.

Independent source, artifact and actual-results review closed the friendly-label, mixed/minimized-header and test-harness findings within their stated boundaries. The CodeWorksLabs Discourse package informed the review; this is not official Discourse approval, stable-version certification or a claim of unexecuted manual acceptance. Historical native Git upgrade/rollback/return evidence carries only across the explicitly unchanged storage/update boundary, not as a fresh full lifecycle replay on this archive or a future tag.

Fresh remote CI for the final feature commit had not been recorded at this historical point. Older main/PR25 green runs below belong to their identified source, not this delta. Local configuration checks passed 37 cases; types, CSS and template checks passed. A generic Windows ESLint invocation remained an unqualified environment diagnostic, not lint green. A separate same-effective-source baseline comparison reported 12 inherited messages, zero introduced and 24 resolved; it does not replace exact-head CI lint evidence.

Prefer short labels and fewer narrow-screen destinations. Long text can be heavily truncated and logos compact; full accessible labels and usable tested targets do not imply unlimited capacity or universal readability. The completed stock RTL/compact/minimized cases are bounded positive evidence, not the full RTL acceptance matrix. Genuine browser zoom, the full RTL matrix, an allowed-host classic external embed and complete human screen-reader acceptance remain the established stable-v1 boundaries below. Physical-device/Safari, OS picker, all-plugin compatibility and general accessibility certification are not claimed.

The Bridge’s Versions & Status migration was not included. Test PostgreSQL and Redis were cleanly stopped at 08:42:57 UTC on 2026-10-17 before container stop; databases, backups and failed/positive evidence were preserved.

Historical RC2 engineering verification — 2026-10-16

Section titled “Historical RC2 engineering verification — 2026-10-16”

The earlier executable candidate for v1.0.0-rc.2 was commit e7a16be653be8ccc045b73833d44ab38330689f1, tree 7eee3e5416a9ed2c15bc36b15b54d1bb65c84960. Its canonical 57-file ZIP is 263,117 bytes, SHA-256 f2ad43cb6a98106a4efeac8eeeeed2082bf48616a2f9885b54841dece794532a. The subsequent RC2 integration update changes only documentation. It does not change runtime code, tests, settings, dependencies, workflows, or installation/update behavior. The evidence below belongs to the identified executable candidate, not an untested new runtime or a future tag.

Configuration CI 38973081900 passed all 33 configuration/CLI tests. Discourse CI 38973082167 tested merge commit 659f2d7ba77fc44b9b1d68fc38afe816785de8ad, whose tree matches the candidate exactly:

Lane Exact Discourse Core commit Frontend System
Development 821e9e2f9f94483a3be8d1e077cde0fd94970479 30 passed 36 passed
Repeal 2026.7 988c31e00fb73713c81b93cd47f68af0fb4c6273 30 passed 36 passed
R744 2026.7 2e46cff73b07ecddbcc5603eb3fbf41d563577f6 30 passed 36 passed
2026.8.0 badad7b0456a628e578bc48b9f8c1259422b5d58 30 passed 36 passed

Each system lane includes 16 component examples and 20 shared Core examples. The lint gate passed; the jobs named backend tests performed English-locale validation, not backend RSpec. These are exact tested targets, not claims for every newer patch, production 2026.9, or every browser.

Additional isolated local checks used Core 3086c087a2bceb3d607c6389f77204fec054b018:

  • The two shipped 320px/390px mobile regressions, three mode/keyboard interaction examples, and 16 mobile presentation/audience examples passed: 21 total. Captured geometry and pointer/keyboard operations verified visible usable targets, menu/logo containment, native controls, and no document overflow.
  • Native import of the exact ZIP returned component ID 34. All 19 candidate fields matched canonical source, and all 19 fields of the pre-existing component were preserved. Installation had no field errors or unexpected attachments.
  • The installed component passed all 30 named frontend tests, including both tracked-row save modes and invalid nested-data rejection. The profile used Puma 8.0.2 with one request thread, Chrome 155.0 and the existing frontend build; the runner reported plugins disabled. It does not establish default Pitchfork startup performance or all-plugin frontend coverage.
  • Earlier native lifecycle evidence covered configured RC1-to-candidate source updates, rollback, return, settings retention, disable/re-enable, attachment and removal. Its unchanged storage/update protocol carries forward with explicit impact analysis; it is not represented as a fresh complete Git lifecycle replay at e7a16be or at a future RC2 tag.

Independent reviewers closed the CLI diagnostic, native-editor save and mobile layout findings. The CodeWorksLabs Discourse review package was applied to the source, execution and artifact evidence. The final bounded engineering review identified no open required findings; it is not official Discourse approval, stable-version certification or a claim that unexecuted manual checks passed. Local test databases, backups and all failed/successful evidence were retained; owned test services were stopped after verification.

Historical RC2 limits and release boundaries

Section titled “Historical RC2 limits and release boundaries”

These statements describe the earlier candidate’s evidence at that gate. The current feature verification and acceptance limits above supersede them.

At 320px, long header text can be heavily truncated, especially beside an icon, and the logo is compact. Full title/accessible labels and operable targets are retained; full visible text, unlimited header capacity and universal readability are not claimed. Prefer short labels and fewer narrow-screen destinations.

Genuine browser zoom and native light/dark palette/focused-color transitions remain unverified. Complete RTL, a real allowed-host classic external embed and complete human screen-reader acceptance remain the stable v1.0.0 gates below. Physical-device/Safari and general accessibility certification are not claimed.

The unexecuted manual cases remained incomplete at this historical point. The Bridge’s Versions & Status link was still supplied by Custom Header Links; its live migration was not part of this verification.

RC2 CLI diagnostic correction — 2026-10-15

Section titled “RC2 CLI diagnostic correction — 2026-10-15”

Review finding BN-RC2-CLI-01 was corrected before RC2. The CLI now escapes C0, DEL and C1 controls at its final diagnostic sink. Trusted usage and validator line separators are inserted only after each line is escaped. The browser validator and header implementation are unchanged.

Local Node 22.22.2 configuration/CLI tests passed 33/33. Seven new tests capture real CLI subprocess output for malformed JSON containing ESC/BEL, other controls and newlines, filesystem errors, inert unknown fields, ordinary parse failures, valid input, and multiline usage. Fixtures use newly created temporary directories and are cleaned up by the harness. The initial regression expected a full long payload in V8’s truncated error excerpt; shortening the payload made the assertion exercise both ESC and BEL without relying on omitted bytes. This was a test-fixture correction, not a candidate bypass.

The pnpm launcher could not verify its requested version because registry fetches failed. No signature policy was weakened and no dependency changed; formatting used the already-installed Prettier directly through Node. This local result does not establish replacement-candidate CI or installed lifecycle acceptance. Correction closure and the Discourse matrix had not been completed at this historical point.

Section titled “RC2 core-header text-link candidate — 2026-10-15”

This candidate adds header_presentation for direct core-header links. Existing items default to icon_only; explicit label_only and icon_and_label preserve the label without requiring an available icon. At this historical point, the Bridge’s Versions & Status link was supplied by its separate Custom Header Links component; the live migration was not part of this candidate’s evidence.

Implementation commit 6c7383dd5597d65c7f1e0f9ffdf123d075fab898, tree 4682d861dec9029622459a5a3e633730d63aba94, passed Discourse CI run 38812437699 in draft PR 25. The CI merge commit 0fa60378a91d11bd2dc5f6a645cf0e348cbf3975 has the same tree.

Lane Discourse core Frontend System
Current 60cbc8e4e4e52253d3fa2175b7f2431a38cb9487 27 passed 34 passed
Repeal 2026.7 988c31e00fb73713c81b93cd47f68af0fb4c6273 27 passed 34 passed
R744 2026.7 2e46cff73b07ecddbcc5603eb3fbf41d563577f6 27 passed 34 passed
2026.8 release badad7b0456a628e578bc48b9f8c1259422b5d58 27 passed 34 passed

The full Linux lint gate and backend lanes passed. Configuration run 38812437412 passed 26 tests, including text-link round trips, legacy icon defaults, unsafe URLs, invalid presentation, groups, and children. Local configuration tests, template/style/type checks, Ruby syntax, and formatting also passed. Windows ESLint reproduces local Babel path/theme-global failures on unchanged HEAD; the clean CI lint gate passes.

QUnit verifies rendering before sprite readiness, escaped label text, safe new-window attributes, optional-icon recovery, and visibility boundaries. System tests verify desktop/mobile sizing, retained core controls, keyboard focus, and embed exclusion. Desktop/mobile CI screenshots were inspected. The initial run at 93f7c24 failed an RSpec context-name check and a Selenium-only keyboard-test call; the corrected run above passes both. This is implementation/test evidence. Release review, manual acceptance and the live demo cutover had not been completed at this historical point.

Site Discourse build Core commit Verified Brand Navigation coverage
Repeal OBBBA Forum 2026.7.0-latest+319 988c31e00f Authenticated desktop render, linked parents and submenus, visible descriptions, core-header icons, administrator settings, and component coexistence
DiscussionBridge sandbox 2026.9.0-latest+338 587b564093 Authenticated normal-page render, administrator component/settings surface, and canonical-install reconciliation at Brand Navigation c878693612
DiscussionBridge Forum 2026.9.0-latest+358 f914fcb43e Configured navigation, four accessible social header links, safe _blank rel, normal authenticated render, full-app embed exclusion, and native d-compat/2026.8 to main transition
The Bridge 2026.9.0-latest+188 7dfd824b1 Configured publishing navigation, four accessible social header links, safe _blank rel, normal authenticated render, full-app embed exclusion, and native main update
Citizen Activist Network 2026.9.0-latest+358 f914fcb43e Configured Community/Issues navigation, submenu keyboard smoke, clean console, normal authenticated render, full-app embed exclusion, and native d-compat/2026.8 to main transition
RVing Community 2026.8.0-latest.1+18 3f4a87b135 Configured Community/RVing Network navigation, three-theme attachment, clean console, normal authenticated render, full-app embed exclusion, and native d-compat/2026.8 update
R744 Community 2026.7.2+14 2e46cff73b Authenticated normal-page render, submenu/Escape focus behavior, safe _blank rel, administrator settings and object editor, full-app embed exclusion, and native d-compat/2026.7 update

The original builds were read directly from each site’s administrator dashboard on 2026-09-05. The sandbox identity was refreshed from its running server on 2026-09-07. They are evidence of known compatibility, not minimum-version declarations. Features not named in a row should be evaluated through the acceptance matrix below before claiming coverage on that environment.

Sandbox canonical-install reconciliation — 2026-09-07

Section titled “Sandbox canonical-install reconciliation — 2026-09-07”

The sandbox contained three Brand Navigation imports. Read-only inventory established that component 1 was unattached, component 2 was attached only to Horizon with an older configuration, and component 3 held the accepted sandbox configuration on the default Foundation theme. Component 3 was made canonical: its source branch was changed to main, it updated without an import error to Brand Navigation commit c878693612fd6f4b755e7e1a57f73f61c127a711, and it was attached to both Foundation and Horizon. Its eleven stored setting values retained their exact pre-update hashes and lengths.

Components 1 and 2 were detached, disabled, and left in place as rollback copies; they were not deleted. Post-change inventory showed only component 3 enabled and attached, with automatic updates enabled and no remote-theme error. The public forum returned HTTP 200. This is server-side installation and availability evidence; it does not replace the earlier browser-rendering record or claim a fresh anonymous, mobile, accessibility, or embed visual pass.

Sandbox release-tag rollback exercise — 2026-09-07

Section titled “Sandbox release-tag rollback exercise — 2026-09-07”

Canonical component 3 was disabled through Discourse’s component-level Enabled? control, then changed from repository-default main to immutable tag v0.9.0. Read-only inventory confirmed exact release commit d2527bfb3acdcf4204a33d35e0b13504f6d7c36e, no import error, and preserved Foundation and Horizon attachments. The v0.9.0 legacy internal setting was enabled, and navigation was visually confirmed to render correctly.

The exercise exposed a product flaw: Discourse’s component-level Enabled? control and the component’s legacy internal Enabled setting could contradict one another and did not synchronize. The v1.0.0-rc.1 correction removes the internal setting and relies only on Discourse’s native control.

Component 3 was then disabled through the native control and returned to a blank Branch field. Discourse resolved repository-default main at exact commit 56ee6f874efb85dfd6976928954f0dcd74aab3c8, with zero commits behind and no import error. Both parent-theme attachments and every recorded setting hash were preserved. The component was re-enabled through the native control and the public forum returned HTTP 200. Final human visual confirmation of the returned main rendering was not separately recorded before the RC test began.

For the single-switch RC test, component 3 was disabled and changed to release/v1.0.0-rc.1 at exact commit 86c9083b8f83dc21d95fc772d5fc7b08e475bc14. The import reported no error, zero commits behind, preserved settings and both parent-theme attachments, and no longer defined enabled as a component setting. The earlier value remains as an inert stored row, which allows an intentional v0.9.0 rollback to recover it. Component 3 was enabled through Discourse’s native control and the public forum returned HTTP 200. Visual confirmation established that the RC rendered correctly in the sandbox and that Discourse reported the component up to date with release/v1.0.0-rc.1. Server inspection separately confirmed that the administrator schema no longer defines an internal enabled setting.

Single-switch CI correction — 2026-09-07

Section titled “Single-switch CI correction — 2026-09-07”

Pull request 19’s first CI run after removal of the internal enabled setting passed configuration, lint, backend, and frontend coverage but failed the explicit rendered-presence example in all four system-test lanes. The normal Brand Navigation system suite still rendered successfully. Inspection showed that the shared core-feature fixture no longer persisted the uploaded component after its obsolete theme-setting assignment was removed.

Commit f6ca29b9b911936df1cbb4306411574b5bd50e34 corrected both system fixtures to persist Discourse’s native Theme.enabled state. Configuration workflow run 34176240352 passed, and Discourse Theme workflow run 34176242873 then passed lint, backend, frontend, and system coverage on current Discourse, 2026.8, and both 2026.7 targets. This verifies that the automated fixture now exercises the same single activation source as the product.

Sandbox embed and RTL browser evidence — 2026-09-07

Section titled “Sandbox embed and RTL browser evidence — 2026-09-07”

The sandbox remained on Discourse 2026.9.0-latest at exact core commit 587b564093f20285dd15a02aea3eeb54886870e8. Canonical component 3 was on main at Brand Navigation commit 56de8bd30f4d4e1deb5ce766dab4fa62f216d1ec, tree 176d51fa7b5eed30833258b73befe99f3173d2b7, with no import error and with both Foundation and Horizon attached. The later repository changes through merged main commit dc0e935ab54eead212e41681320470b52fc6a775 are documentation-only; an exact runtime-path diff from 56de8bd is empty.

A temporary allowed host at localhost:8765, a dedicated temporary topic with one reply, and an exact TopicEmbed mapping supplied a real classic-comments fixture. Chromium 152.0.7977.76 loaded the external page at a 1280 by 1200 viewport. The rendered classic embed contained the reply count, author, reply content, timestamp route, and Continue Discussion route. Its response and render contained no Brand Navigation bar, mobile trigger, header icon, runtime asset, or component class. The screenshot was visually inspected during the test.

With Discourse’s native full-app embed setting temporarily enabled, the same topic was loaded with embed_mode=true and an allowed external referrer at 1440 by 1000 and 390 by 844 viewports. Both loads contained zero Brand Navigation bars, navigation landmarks, submenu summaries, and mobile triggers. Core Discourse still exposed the topic-progress landmark, post content, reply button, logged-out like prompts, copy-link actions, and Sign in to reply composer call to action. This confirms exclusion and availability; quote selection, completed sign-in, and authenticated composer submission were not executed in this pass.

For RTL evidence, the sandbox default locale was temporarily set to Arabic. The browser reported lang=ar and computed direction=rtl. Foundation and Horizon were each exercised on desktop and in the component’s mobile menu at 390 by 844. The logical right section mirrored to the physical left, ordinary items remained grouped at the physical right, and every tested submenu stayed within the viewport. Keyboard Enter opened Resources, Tab reached its first child, and Escape closed it. Desktop focus returned to the submenu summary; mobile Escape closed the containing menu and returned focus to the Brand Navigation header control. RTL full-app desktop and mobile embeds also contained no Brand Navigation surface. Browser screenshots and computed geometry were inspected during the pass.

The test restored default_locale=en, embed_full_app=false, and embed_any_origin=false, removed the temporary allowed-host and topic-embed records, and soft-deleted the dedicated topic. Post-cleanup verification found zero embeddable hosts, no active temporary mapping, and no active temporary topic.

This is reproducible browser/runtime evidence, not a claim of completed human assistive-technology acceptance. A preparatory Chromium accessibility-tree pass also exposed the named Brand Navigation landmark, distinct linked-parent and submenu-caret controls, focusable child links, visible-description association, named social icon links, mobile control name/state, and embed exclusion. The human screen-reader gate below remains open.

Partial iPhone VoiceOver evidence — 2026-09-07

Section titled “Partial iPhone VoiceOver evidence — 2026-09-07”

An anonymous portrait-mode pass on the public Repeal OBBBA Forum used Safari with iPhone VoiceOver. The exact iPhone model, iOS build, and VoiceOver version were not recorded, so this is bounded evidence rather than a completed screen-reader acceptance pass.

VoiceOver announced the mobile trigger as Brand Navigation, button and activation exposed the menu items. A submenu control announced its open action and collapsed state. After activation, VoiceOver exposed each tested child’s name and link role and read the visible description associated through aria-describedby. VoiceOver did not speak the outer mobile trigger’s collapsed/expanded state during the observed sequence. Its two-finger scrub did not close the open submenu, and direct-toggle closure was not completed before the session ended. These observations remain open for a controlled follow-up.

The same portrait session exposed a separate responsive-capacity limitation. With five Brand Navigation social destinations configured for mobile alongside Discourse’s Log In, Search, and Navigation controls, the Brand Navigation menu trigger was largely obscured by Log In. A Chromium-compatible 390 by 844 reproduction measured the fixed header panel at approximately 375px inside an approximately 369px content row; the trigger’s outlet consequently collapsed to zero width. Operators should currently reserve mobile header capacity by marking additional social destinations Desktop only. Automatic overflow or priority handling is not implemented and requires separate product treatment. Changing one of the observed mobile social destinations to Desktop only on the Repeal installation stopped the overflow and restored the complete Brand Navigation menu trigger on the tested iPhone portrait viewport.

DiscussionBridge Forum native compatibility transition — 2026-09-07

Section titled “DiscussionBridge Forum native compatibility transition — 2026-09-07”

The DiscussionBridge Forum was running Discourse 2026.8.0-latest.1+414 at core commit 36698aae084678151dffa875d49c8d59216d2733. Its single Brand Navigation installation, component 3, followed the repository’s default branch and was attached to both Foundation and Horizon.

Discourse’s native update check selected d-compat/2026.8, reporting candidate commit a628dcd74c9465903c7eacd59f63e50f6c9d37b6. The normal remote-theme update advanced the component from b0b5354481c30e1db1daf4db682368a6f9c9994d to that candidate. Post-update inspection reported the same local and remote commit, zero commits behind, matching local and remote compatibility refs, and no import error. All 15 stored setting values retained their exact pre-update hashes and lengths, both theme attachments remained present, and the public forum returned HTTP 200.

This establishes a successful native compatibility-branch update with settings preservation on the recorded 2026.8 build. It is server-side installation and availability evidence; it does not claim a fresh browser visual, anonymous, mobile, accessibility, or embed pass.

The forum was then upgraded through Discourse’s administrator UI. During the upgrade, the public site served its branded maintenance page with a temporary unavailability explanation and automatic two-minute refresh. The forum returned successfully on Discourse 2026.9.0-latest+358 at core commit f914fcb43e349d1b3bd6e6dc6106ca78a1e2cc74.

Post-upgrade inspection confirmed that Discourse automatically moved Brand Navigation from d-compat/2026.8 to the repository default branch at main commit 56de8bd30f4d4e1deb5ce766dab4fa62f216d1ec. Local and remote commits matched, zero commits were behind, both compatibility refs were empty, and no import error was present. The component remained enabled and attached to both Foundation and Horizon. All 15 setting hashes and lengths still matched the pre-update snapshot, the public forum returned HTTP 200, and the administrator UI was confirmed to report Theme is up-to-date, last checked: just now. This proves the native compatibility-to-default-branch transition and configuration preservation across the recorded Discourse core upgrade; a fresh post-upgrade browser interaction matrix remains separate.

The Bridge was running Discourse 2026.9.0-latest+188 at core commit 7dfd824b151fc5b206812e72f3aca6078a71b75f. Its single Brand Navigation installation, component 6, followed the repository’s default branch and was attached to both Foundation and Horizon.

Discourse’s native update check selected the repository default branch with no compatibility ref and reported commit 56de8bd30f4d4e1deb5ce766dab4fa62f216d1ec. The normal remote-theme update advanced the component from b0b5354481c30e1db1daf4db682368a6f9c9994d to that commit. Post-update inspection reported matching local and remote commits, zero commits behind, no compatibility ref, and no import error. All 15 stored setting values retained their exact pre-update hashes and lengths, both theme attachments remained present, and the public site returned HTTP 200. The refreshed administrator UI reported the theme up to date; this Discourse build omitted the implicit default-branch name from that message.

This establishes a successful native default-branch update with settings preservation on the recorded 2026.9 build. It is server-side installation and availability evidence plus administrator status confirmation; it does not claim a fresh visual, anonymous, mobile, accessibility, or embed pass.

Citizen Activist Network native compatibility transition — 2026-09-07

Section titled “Citizen Activist Network native compatibility transition — 2026-09-07”

Citizen Activist Network was running Discourse 2026.8.0-latest.1+414 at core commit 36698aae084678151dffa875d49c8d59216d2733. Its single Brand Navigation installation, component 1, followed the repository’s default branch and was enabled on Foundation and Horizon.

Discourse’s native update check selected d-compat/2026.8 at commit a628dcd74c9465903c7eacd59f63e50f6c9d37b6. The normal remote-theme update advanced the component from 04dbb3d994362f3f900d3f10a916ae4ac7245713 to that compatibility commit. Post-update inspection reported matching local and remote commits, zero commits behind, matching local and remote compatibility refs, and no import error. All three stored setting values retained their exact pre-update hashes and lengths, both theme attachments remained present, and the public forum returned HTTP 200. The refreshed administrator UI was confirmed to report Theme is up-to-date with d-compat/2026.8.

This establishes a successful native compatibility-branch update with settings preservation on the recorded 2026.8 build. It is server-side installation and availability evidence plus administrator status confirmation; it does not claim a fresh visual, anonymous, mobile, accessibility, or embed pass.

The forum’s PostgreSQL and Discourse containers were then upgraded. The forum returned on Discourse 2026.9.0-latest+358 at core commit f914fcb43e349d1b3bd6e6dc6106ca78a1e2cc74. Post-upgrade inspection confirmed that Discourse automatically moved Brand Navigation from d-compat/2026.8 to repository-default main commit 56de8bd30f4d4e1deb5ce766dab4fa62f216d1ec. Local and remote commits matched, zero commits were behind, both compatibility refs were empty, and no import error was present. The component remained enabled on Foundation and Horizon, and all three setting hashes and lengths still matched the pre-update snapshot. The public forum returned HTTP 200, and the refreshed administrator UI was confirmed to report the theme up to date.

This proves the native compatibility-to-default-branch transition and configuration preservation across the recorded PostgreSQL and Discourse core upgrade. A fresh post-upgrade browser interaction matrix remains separate.

RVing Community native compatibility update — 2026-09-07

Section titled “RVing Community native compatibility update — 2026-09-07”

RVing Community was running Discourse 2026.8.0-latest.1+18 at core commit 3f4a87b13554cb3ea366cb3a29ed56fd4b2c3d03. Its single Brand Navigation installation, component 16, followed the repository’s default branch and was enabled on Default, Foundation, and Horizon.

Discourse’s native update check selected d-compat/2026.8 at commit a628dcd74c9465903c7eacd59f63e50f6c9d37b6. The normal remote-theme update advanced the component from 04dbb3d994362f3f900d3f10a916ae4ac7245713 to that compatibility commit. Post-update inspection reported matching local and remote commits, zero commits behind, matching local and remote compatibility refs, and no import error. All four stored setting values retained their exact pre-update hashes and lengths, all three theme attachments remained present, and the public forum returned HTTP 200. The refreshed administrator UI was confirmed to report Theme is up-to-date with d-compat/2026.8.

This establishes a successful native compatibility-branch update with settings preservation on the recorded 2026.8 build. It is server-side installation and availability evidence plus administrator status confirmation; it does not claim a fresh visual, anonymous, mobile, accessibility, or embed pass. Two failed email jobs observed during administration are attributable to the site’s intentionally unconfigured outbound mail provider and are unrelated to Brand Navigation.

R744 Community native compatibility update — 2026-09-07

Section titled “R744 Community native compatibility update — 2026-09-07”

R744 Community was running Discourse ESR 2026.7.2+14 at core commit 2e46cff73b07ecddbcc5603eb3fbf41d563577f6. Read-only inventory found two Brand Navigation records. Component 1 was the live installation, enabled on Foundation and Horizon and following the repository default branch. Component 2 was an unattached copy pinned to the historical R744 compatibility-test branch; its Brand Navigation enabled setting was false, although the unattached Discourse theme record’s enabled flag remained true.

Discourse’s native update check for live component 1 selected d-compat/2026.7 at commit a628dcd74c9465903c7eacd59f63e50f6c9d37b6. The normal remote-theme update advanced it from 04dbb3d994362f3f900d3f10a916ae4ac7245713 to that compatibility commit. Post-update inspection reported matching local and remote commits, zero commits behind, matching local and remote compatibility refs, and no import error. Its stored enabled setting retained its exact pre-update hash and length, both live theme attachments remained present, and the public forum returned HTTP 200. The refreshed administrator UI was confirmed to report Theme is up-to-date with d-compat/2026.7. Historical component 2 was not changed.

This establishes the oldest recorded supported-line native update with settings preservation. It is server-side installation and availability evidence plus administrator status confirmation; it does not claim a fresh visual, anonymous, mobile, accessibility, or embed pass.

R744’s recorded 2026.7 ESR build served as Brand Navigation’s oldest live supported-line compatibility target. Its evidence applies to the recorded revision and support period, not to later patches or future support status.

PR 9 implementation commit 24071e75f189cb4512cf8ce37d8b1576aa0f652d passed configuration run 34144739257 (24/24) and Discourse Theme run 34144739800. The expanded theme matrix passed current Discourse plus exact Repeal and R744 2026.7 cores and exact Discourse v2026.8.0 core commit badad7b0456a628e578bc48b9f8c1259422b5d58. Each core passed backend, frontend (23/23), and system (30/30) lanes; current linting also passed. This is automated compatibility evidence, not a claim of manual 2026.8 browser acceptance.

The initial implementation candidate was verified on the candidate branch in pull request https://github.com/CodeWorksLabs/brand-navigation/pull/1, which has since merged. At implementation commit 13005b7, official Discourse Theme workflow run 34010799758 passed linting, English-locale validation, frontend QUnit, backend, and Ruby system tests. Configuration workflow run 34010799448 passed all 18 Node bundle tests. This is historical implementation evidence, not the immutable v0.9.0 candidate. The accepted release candidate is commit 9f2a6e0c0c18b075e796ff0e7a15e1e8917b6d8b, tree 8eca2b3bb2137ea2a24c4cc4574f518e9227e2a9; configuration run 34080419543 and Discourse Theme run 34080419924 passed before manual acceptance and merge.

The same branch was installed as sandbox component id 2 and verified for the desktop, 390px mobile menu/bar/hidden, keyboard submenu, safe external-link, structured import, site-header icon, full-app embed-exclusion, and structured editor save-stay cases. Classic embedded comments remain unverified because the sandbox has no embed hosts configured. Anonymous browser, light/dark, RTL, screen-reader, current export-download delivery, and older-version checks also remain open manual cases; automated visibility/export logic is green.

After pull request 1 merged as e22dce2, sandbox component id 2 was switched to main and reported up to date. A focused post-merge smoke test reconfirmed authenticated normal rendering, safe submenu behavior and Escape focus return, successful structured re-import with reload persistence, and complete Brand Navigation exclusion from ?embed_mode=true while core main content remained. No production or consumer site was changed during this check.

Merged pull request 3 (top-level link behavior, implementation commit e53a7d0, merge commit 317c4be) adds an explicit link_mode to each top-level navigation item. GitHub Actions run 34019282463 passed the official Discourse lint, frontend QUnit, backend, and Ruby system jobs; configuration run 34019282181 passed all 19 Node tests.

Sandbox component id 2 was switched from main to the candidate branch for live verification. The administrator editor displayed Top-level behavior, accepted group for Resources, kept /about in the editor, and stayed on the editor after saving. On the normal forum page Resources rendered as one submenu-only button and opened its About and Discourse Meta children. A group selection on Community, which had no actionable children, was rejected with the expected validation message and was not saved. Resources was then restored to link; the normal page again rendered /about as the parent link with a separate submenu caret. The final sandbox setting is therefore Link, matching its pre-test behavior.

After this round trip, ?embed_mode=true returned zero Brand Navigation surfaces, one #main-outlet, no broken-theme warning, and no captured console errors. The first save immediately after changing the component source loaded the new schema alongside the previous single-page-app validator and failed closed; reloading synchronized the assets and all subsequent saves passed.

After pull request 3 merged, sandbox component id 2 was returned to main and reported up to date. The final post-merge smoke reconfirmed the linked Resources parent at /about, its separate submenu caret, submenu open and Escape focus return, and the Meta child link’s _blank target with noopener noreferrer. The normal page had one Brand Navigation surface, one #main-outlet, no broken-theme warning, and no captured console errors. Full-app ?embed_mode=true again excluded Brand Navigation while retaining #main-outlet, with no warning or captured console error. The browser was restored to the normal sandbox forum page.

After that smoke test, the new behavior was selected for the live sandbox sample. Resources is currently saved as group: browser inspection confirmed a submenu button is present and no Resources parent link is rendered. Its saved /about value and both child destinations remain available in configuration.

  • The original R744 test on unsupported 2026.2.0-latest exposed older module APIs and is not a compatibility claim. On 2026-09-05 the site was backed up, pinned to release/2026.7, rebuilt successfully as 2026.7.2+14 (2e46cff73b), and verified with Brand Navigation. Live component id 1 is enabled on Foundation and Horizon and now follows d-compat/2026.7. The duplicate component id 2 remains preserved and unattached on the historical R744 compatibility-test branch; its legacy Brand Navigation enabled setting is false while its unattached Discourse theme-record flag is true. Draft pull request 2 is no longer needed to support this site and was closed without merge.
  • Refresh installation records when these sites change Discourse release lines or Brand Navigation compatibility refs.
  • JavaScript, template, style, formatting, and type linting.
  • Discourse shared core-feature system specification with Brand Navigation enabled through Discourse’s native component state, plus an explicit rendered-presence assertion.
  • Normal-page rendering of brand, direct links, and native submenu.
  • Mobile compact-menu behavior.
  • Negative render assertion for embed_mode=true.
  • Unit coverage for audience visibility and _blank link safety.
  • Unit coverage for backward-compatible desktop/mobile item visibility.
  • Unit coverage for left/right navigation section grouping.
  • Unit coverage for excluding site-header items from the brand bar.
  • Unit coverage for optional visible submenu descriptions.
  • Unit coverage for delayed primary-sprite readiness, shared notification and teardown, production-sprite icon membership, replacement icon IDs, icon/label presentation, unavailable bar/submenu fallback, and omission of unavailable direct site-header icons.
  • Rendered component coverage for a retained site-header item that starts mobile-hidden, becomes eligible before sprite readiness, subscribes once, and appears after the delayed primary symbol arrives.
  • Rendered system coverage for visible label fallback when a bar icon is unavailable. The prebuilt system harness cannot dynamically register a new api.headerIcons entry after the component initializer has run.
  • Scoped administrator save behavior that remains in the navigation editor.
  • Fail-closed bundle schema, URL, size, nested-field, and conditional validation.
  • Bounded local bundle validation without forum credentials or network access.
  • Schema-scoped object-editor identity and five-setting component-panel signature, including locally uploaded components and incomplete-signature rejection.
  • Complete bundle preflight, immutable persistence snapshots, strict color types, inert diagnostics, whole-file symmetry, and Discourse’s per-object setting byte limit, including a rendered assertion that an oversized object sends no persistence request and changes no setting.
  • Component-action deferred-completion coverage for submitted appearance and bundle snapshots, in-flight state, model reconciliation, dirty state, success state, current/exported settings, and unrelated color-draft preservation.
  • Deferred file-selection coverage proving that only the latest selected file or pasted bundle may replace pending import state.
  • Mobile-menu geometry coverage proving that an open linked-parent submenu occupies layout space before its following navigation item.
  • Browser-backed import coverage for persisted appearance reload, synchronized picker state, and a clean post-import save state.

Test the current stable and tests-passed Discourse branches where practical.

Context Required result
Desktop, anonymous Allowed links render; only one submenu opens; Escape from it returns focus to its submenu control
Desktop, authenticated Authenticated entries render; anonymous-only entries do not
Mobile menu Header button opens navigation; Tab reaches the first link or submenu control; Escape dismisses the menu and returns focus to the header button
Mobile bar Responsive bar wraps navigation and exposes unclipped submenus
Mobile hidden No brand-navigation surface renders
Site-header item Direct icon appears once with its tooltip, audience, target, and safe rel
Device-specific item Renders only for its selected device class, unchanged across phone rotation
Descriptive submenu Description appears below its label; empty entries remain compact
Administrator object save Settings persist and the structured editor remains open
Administrator bundle import Use a separate component copy or staging site for a live installation; complete preflight occurs before one update request
Light/dark schemes Correct logo fallback and readable scheme colors
RTL locale Logical positioning and submenu alignment remain usable
embed_mode=true full app No bar or mobile trigger mounts
Classic embedded comments No global brand/navigation content appears
Embedded interaction Core topic, sign-in, reply, like, quote, and composer behavior is unchanged
Normal sign-in Full-application sign-in remains core Discourse behavior

Also test long labels, empty configuration, missing optional icons, external links, browser zoom, reduced viewport width, keyboard-only use, and screen reader navigation landmarks.

The v0.9.0 preview does not claim completed human verification for these three cases. The browser/runtime evidence above materially advances the first two but does not substitute for final human confirmation:

  1. A classic Discourse comments embed on an allowed external host, proving that Brand Navigation does not mount while embedded discussion content and core interaction controls remain available.
  2. A complete RTL-locale desktop/mobile pass covering layout, submenu alignment, focus, keyboard behavior, responsive modes, themes, and embed exclusion.
  3. Complete the human screen-reader testing begun in the partial iPhone VoiceOver pass above, covering the navigation landmark, accessible names, expanded/collapsed state, linked-parent and caret actions, dismissal and focus return, visible descriptions, icon links, responsive controls, and embed exclusion.

The required evidence includes the Discourse build and core commit, Brand Navigation commit/ref, theme, browser, viewport/device, account state, assistive technology and version when applicable, exact steps, and pass/fail result. Automated accessibility tests do not substitute for these human checks.


Source on GitHub