Skip to content

feat: use the shared Colony accent colours and current themes, and adopt the Colony repository layout - #14

Merged
MotherSphere merged 1 commit into
mainfrom
feat/colony-layout-and-themes
Oct 12, 2026
Merged

MotherSphere merged 1 commit into
mainfrom
feat/colony-layout-and-themes

Conversation

@MotherSphere

Copy link
Copy Markdown
Member

Repository layout (LAY-9, REL-2)

The Tauri scaffold moves to the Project Colony layout with git mv, so history follows:

Before After
src-tauri/Cargo.toml, Cargo.lock, build.rs, tauri.conf.json repository root
src-tauri/src/*.rs src/
dist/ (HTML, CSS, JS, fonts, i18n, vendor) src/ui/
src-tauri/icons/ assets/icons/
src-tauri/capabilities/ config/capabilities/
src-tauri/permissions/autogenerated/ removed: tauri-build writes permissions/ on every build, now ignored with /gen/schemas/ and /target/
  • tauri.conf.json: frontendDist is src/ui, the bundle icons are assets/icons/*, and the identifier moves from com.memorystick.app to the owned io.github.project-colony.memorystick. No migration is needed: the web view is private, its folder is set explicitly under Colony/MemoryStick, and the preferences do not use the identifier.
  • build.rs reads the capabilities from config/capabilities/**/* and watches that folder, since tauri-build only watches its default one. The licence walk still runs cargo metadata on the root manifest, offline.
  • release-please-config.json switches to release-type: rust, which bumps Cargo.toml and Cargo.lock itself, so the extra-files block is gone. Open release PR chore(main): release 0.2.0 #13 still touches src-tauri/: release-please regenerates it after this merges, and its diff must bump the root Cargo.toml and Cargo.lock before it is merged.
  • CI runs at the root (no working-directory), the Dependabot cargo directory is /, and the release build no longer needs --manifest-path.
  • README (build command, executable path, layout paragraph, licence paths), SECURITY.md, docs/third-party-notices.md and both check scripts use the new paths. git grep 'src-tauri\|dist/' finds nothing outside CHANGELOG.md and vendored minified code.

Colony themes and accents (THM-2)

  • colony-themes.css, themes.json and colony-accents.css are vendored from Project-Colony-Resources 7247b814fd9afbb17e3c4f44315ec9333c3a31b0, whose generated/ is identical to the commit colony-ui 0.1.6 was published from. themes.json picks up the Stellar Blade notes rewording and Dracula's new family icon, which the bundled JetBrains Mono Nerd Font has.
  • index.html loads colony-accents.css before colony-themes.css. Both set --colony-accent-blue on the root with the same specificity, so each theme keeps its own accent until the user picks one.
  • theme.js gains accentColor(), which reads an accent's colour from the :root rule of colony-accents.css. The override and the Preferences swatches both use it, so they come from one shared file. It reads the rule rather than the computed style because every theme sets its own --colony-accent-blue, so the blue accent would otherwise resolve to the theme's.
  • CI compares all three files with upstream at that commit. check-colony-themes.py treats variables from colony-accents.css as defined in every theme, and fails if an accent listed in themes.json is missing there.

Checks

  • cargo check --locked --all-targets and cargo fmt --check pass. The capability resolved from config/capabilities/ (checked in the generated gen/schemas/capabilities.json).
  • cargo test: the preferences key-parity, Colony/MemoryStick path and third-party licence tests pass.
  • python3 .github/scripts/check-colony-themes.py and check-document-filter.py pass. The vendored files are byte-identical to upstream.
  • Nothing here opens the window. Before the next release, someone has to run the binary by hand to check that a document opens with its images, and that Preferences, the themes and the accent swatches still work.

The only dashes in the diff are in the generated header of colony-accents.css, which has to stay byte-identical to upstream.

…opt the Colony repository layout

Move the Tauri scaffold to the organisation layout: the crate manifests,
build.rs and tauri.conf.json at the root, the Rust code in src/, the
interface in src/ui/, the icons in assets/icons/ and the capabilities in
config/capabilities/. tauri-build regenerates permissions/ and gen/schemas/
on every build, so they are ignored instead of committed. release-please
switches to release-type rust, which bumps Cargo.toml and Cargo.lock itself,
and the Tauri identifier becomes io.github.project-colony.memorystick.

Vendor the Colony themes, themes.json and colony-accents.css from
Project-Colony-Resources 7247b81, whose generated/ matches colony-ui 0.1.6.
The accent override and the Preferences swatches now both read their colour
from colony-accents.css, loaded before the themes so each theme keeps its own
accent until the user picks one. CI compares all three files with upstream,
and the themes check also requires every listed accent to exist there.
@MotherSphere
MotherSphere merged commit 91ca2b2 into main Oct 12, 2026
9 checks passed
@MotherSphere
MotherSphere deleted the feat/colony-layout-and-themes branch October 12, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant