Skip to content

Provenance

Canonical GitHub source · Pulled from docs/PROVENANCE.md at ref main during this site build. Use Edit this page below to suggest a correction at the source.

Record date: 2026-09-06

This is the durable evidence record for how Brand Navigation was specified and implemented, which upstream projects were consulted, and where source code was or was not adapted. Update it whenever a source classification changes. It is a technical provenance record, not legal advice or a substitute for release review.

Phil Henry directed the product requirements, naming, licensing posture, administrator experience, supported contexts, testing sites, and acceptance decisions. OpenAI Codex generated and modified implementation and documentation under that direction. Phil performed iterative administrator and device testing on real Discourse installations, supplied product feedback, and accepted or rejected behavior throughout development.

In this record, independently authored means that Brand Navigation was generated from its product specifications as a new implementation. It does not mean that every line was typed by a human, that no upstream project was studied, or that ordinary framework patterns cannot resemble other Discourse code. Brand Navigation is not a fork, mechanical merger, translation, or stylesheet overlay of another component.

This record classifies the other named projects as inspiration sources or, when discussing coexistence and migration, neighboring components. It does not place Brand Navigation in a formal succession lineage with those projects.

The durable specification and acceptance basis is distributed across SCOPE.md, ARCHITECTURE.md, TESTING.md, the settings schema, Git history, and the repository successor checkpoint. Development transcripts provide additional working history but are not treated as the only evidence required to reconstruct the product position.

Recorded upstream sources and classifications

Section titled “Recorded upstream sources and classifications”

The revisions below make the evidence reproducible. A newer upstream revision does not silently change this record.

Discourse Meta identifies Brand Header, Header Submenus, and Custom Header Links (icons) as official components maintained by the Discourse team. Each official Meta page links to the same discourse/* repository recorded below; those repositories are therefore the current canonical sources for this review. Their repository-specific licenses differ: Brand Header and Header Submenus provide MIT licenses, while Custom Header Links (icons) provides GNU GPL version 2 text. Official maintenance status does not replace or normalize those license files. Pavilion Dropdown Header is the community-maintained source in this inventory.

Upstream project Recorded revision License evidence How the source was used
Discourse Brand Header 8fd8500 MIT LICENSE.txt Product inspiration only. No copied or adapted implementation is currently identified.
Discourse Header Submenus 9659f84 MIT LICENSE Product inspiration and administrator-workflow study only. No copied or adapted implementation is currently identified.
Pavilion Dropdown Header 707425d GPL version 2 LICENSE.txt Presentation and administrator-experience inspiration only. No copied or adapted implementation is currently identified.
Custom Header Links (icons) dee14e3 GPL version 2 LICENSE Product inspiration and a historical development-stage adapted pattern, replaced before the first tagged release. No copied or adapted implementation is currently identified.

Permanent historical adapted-pattern reference: initialize-for-header-icon-links.gjs at dee14e3, lines 1–27.

  • Commit 857aba8e4fb45eacd0abc69332cec5ff22c80d2b created Brand Navigation from the product specification. Its initial initializer rendered the component through Discourse’s plugin API and did not contain the later core-header icon registration.
  • Commit 3cd8910161f794764af299e551f4b6c5bebe9790 introduced the core-header icon feature and the recorded adapted registration pattern.
  • The v0.9.0 remediation replaced that pattern with an independently authored lexical component factory before the first tagged release. The release review must confirm the replacement and this ledger against the exact candidate.

Brand Navigation declares GPL-2.0-or-later. The two MIT-licensed inspiration sources did not supply copied code, so their MIT notices are not incorporated as notices for copied code. They remain credited because they materially informed the product.

The Custom Header Links (icons) repository contains the GPL version 2 license text, and GitHub classifies it as GPL-2.0. No explicit upstream statement granting the “or later” option was located in the inspected README, component metadata, package metadata, initializer, or license file. That ambiguity is preserved as development history, but the adapted expression was removed from the current release tree. CodeWorksLabs licenses the current independently authored implementation as GPL-2.0-or-later.

Because Custom Header Links (icons) is an official Discourse component, any clarification of its historical licensing should come from the Discourse maintainers or another confirmed rights holder. An individual historical contributor should not be assumed to have authority to clarify the license for the complete upstream repository.

No Brand Navigation version was tagged or published as a GitHub Release before the v0.9.0 release process. The repository was already public, however, so earlier commits were distributed with the declarations present at that time. Changing the current declaration does not withdraw permissions recipients may already hold for those published commits. No external human recipient, adoption, or reliance is known: the repository currently has no forks, stars, or subscribers. GitHub traffic does record automated/client clone activity consistent with CI and the known Discourse installations, but it does not identify people. This history requires an accurate record, not special support or continued release of those commits. Do not erase the historical fact that the earlier pattern was consulted.

Before each release:

  1. Freeze the exact candidate commit and tree.
  2. Compare the complete candidate against every source in this ledger and any additional source identified during review.
  3. Record newly copied or adapted expression, including the exact upstream revision, file, lines, license, and required notice.
  4. Confirm that inspiration-only classifications remain supported by evidence.
  5. Confirm the repository license, package identifier, README, component metadata, attribution, and source notices agree.
  6. Preserve the review findings and correction-closure evidence with the release record.

Statements such as “no other copied code is identified” describe the recorded evidence at a point in time. They are not absolute guarantees about all possible similarity and must be reevaluated when the candidate changes.