Create the app icon and finalize versioning

App identity for both editions: the three-lane glyph
(rectangle.split.3x1.fill) over a gentle gradient - teal for base
Lanework, dark graphite for Lanework Pro - rendered as 1024 masters and
packaged down the full macOS ladder into each target's own iconset,
replacing the borrowed pathfinder icon.

The About window arrives via IndieAbout (0.2.x): icon, copyright,
version/build/date read from the Info.plist that update_build_info.sh
already stamps on every build (CFBundleVersion 160 = git commit count,
BuildDate, BuildHash - verified in the built product), the version line
opening the bundled CHANGELOG.md, and the new ISC LICENSE.md one
document link away. Both files are authored to the Apple
inline-Markdown subset (no # headings, single-line paragraphs) and
bundle into both editions.

CHANGELOG.md replaces its placeholder with the real 2.0 first-release
notes - one sentence per user-facing feature.

The About box is also an edition seam: base's EditionAbout carries the
one-line Pro signpost 12-editions.md allots ("Lanework Pro adds
git-backed board history and sync."), and the Pro target compiles its
own signpost-less twin instead of that file - the no-#if file-level
doctrine applied to a string. README gains the identity bullet.

1649 green on both schemes; verify-editions.sh 26/26.

Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
2026-07-29 12:43:26 -04:00
parent 1c263b9f2e
commit 28ef9eef7e
27 changed files with 119 additions and 1 deletions
+8
View File
@@ -1,4 +1,5 @@
import AppKit
import IndieAbout
import SwiftUI
/// The scene graph (02-architecture.md § Windows, § Launch and window lifecycle).
@@ -147,6 +148,13 @@ struct KanbanApp: App {
/// whole of the contract, and the system supplies the rest.
@CommandsBuilder
private var menuCommands: some Commands {
// The About window (11-command-nexus.md files About under the app menu's standard
// furniture): icon, version/build/date from the Info.plist that `update_build_info.sh`
// stamped at build time never a hardcoded string with the version line opening the
// bundled changelog. `EditionAbout` is the edition seam: base's carries the one-line Pro
// signpost (12-editions.md Quiet signposts), Pro's twin does not.
IndieAboutCommand(configuration: EditionAbout.configuration)
// The File group, in 11-command-nexus.md's own row order: New Card, New Lane, New Board,
// Open, Open Recent , Board Info, Duplicate, Save as Template, Reveal in Finder, Add
// Attachment, then the trash trio and Empty Trash. The board-scoped ones validate against