The workspace members, the path dependencies, the include_str! and test
fixture paths, the recorder's indexed source keys, and the Nix source
filter and path literals follow the new layout. Cargo.lock is unchanged.
cargo deny list names a workspace crate by its path+file:// source, which is a path on the machine that
ran it (C:/Users/... before, /Users/... now). depgen strips it, and the file is regenerated for all three
platforms' crates.
It is reached only through font-loader, which komorebi-bar looks up system fonts with; it was
already in the lock before the recorder and schemars-nixgen merged.
nix/nixgen has the package and the clippy and nextest checks (in the default check sets), from a
"nixgen" platform of nix/workspace-src.nix that is the tool alone; it is a stub in every other
platform's source, so an edit of it rebuilds none of theirs.
It is a development tool: a bare cargo build leaves it out, publish is off, and no release
ships it. Its manifest uses the workspace dependencies it shares and keeps its own version.
nix/recorder holds the native packages and checks of macOS and Linux (the recorder and the
sources it indexes are the "recorder" platform of nix/workspace-src.nix), the Windows
build has it as one of its members, and the dev shell gets ffmpeg, resvg and GStreamer. The
flake inputs komorebi-mac and komorebi-windows are gone: the sources are in the tree.
The recorder is a member of the repository it indexes: each flavor is built from the
directory of its own daemon (komorebi-macos, komorebi-windows, komorebi-linux) and the shared
crates that log. The statements of the container, workspace and monitor moved into
komorebi-core, so the targets of the real log sample in the fixture are komorebi_core's.
KOMOREBI_SRC and KOMOREBI_COMMIT replace the three KOMOREBI_*_SRC variables, for a build
that is not in a checkout.
N1 is answered: macos-nextest runs in nix on a Mac (383 tests on the Mac Mini), the Windows
unit tests run in the Windows guest through nix run .#windows-nextest (964 tests, 964
passed, one run) with the check windows-nextest-build cross-compiling the 48 test
executables, and the neutral crates' tests run in linux-nextest (1532 tests). The remaining
open point is only whether the first CI also gets a hosted windows-latest cargo test job.
The R6 follow-up (the sponsor-only [FEAT] texts) and 2.2a are marked done.
Verified: documentation only; the numbers are from the agents' reports (win-nextest, and the
Mac Mini run of macos-nextest).
What: CUTOVER-PLAN.md records further owner decisions. R2: macOS is part of 0.2.0-dev; the owner tests it and releases 0.2.0 when ready; the macOS hand-check gates only the release, and the pre-release-later idea is dropped. R3: Starlight is the site for all docs, gh-pages is deprecated: new section 4.9 gives the retirement steps and what happens to mkdocs.yml (exclude_docs stays only while MkDocs builds anything) and the Windows docs source. R4: known failures do not block the dev-line landing. R5: published schema names agreed. R7: the owner handles the old macOS repository, so its banner/mirror/archive steps are removed (the KDE repository steps stay). R11 and every nixpkgs step are removed (no upstream package, the flake is the distribution). New section 4.8: the macOS nightly and its Homebrew formula must come from workflows of the joined repository, starting from docs/dev/old-ci/macos/workflows/*; not in the first CI; one nightly release for the whole repository. N1 (nextest) is marked in progress with the owner's two feasibility questions, not decided. Section 6 now lists what is truly open: the push (owner), the macOS hand-check, the self-hosted Windows runner, N1, and the release-time items.
How verified: sources read, nothing executed; the owner decisions are as relayed by the coordinator.
installation.md: the Nix flake section no longer asks for a GitHub access token
or a private repository; the input is github:LGUG2Z/komorebi and the overlay is
komorebi.overlays.macos (names checked in nix/macos/flake-module.nix; komorebi-full,
komorebi, komorebic and komorebi-bar are the package names it provides). The
nightly Homebrew text stays, now saying nightly builds come from LGUG2Z/komorebi;
the package name and tap are unchanged. Both OWNER markers are removed, the owner
having answered them. docs/macos/README.md had no remaining private-repo text.
Not verified by building; links by repository path only.
Resolves the OWNER marker in the sponsorship section. The owner confirmed that
sponsors get Discord roles, shout-outs, feature requests and, where stated, easter
egg releases, and nothing else; the private macOS repository for sponsors is
gone. Only the marker comment is removed, no wording changes.
Not verified beyond reading the diff.
The Windows crates' unit tests could only run in the (future) hosted Windows
CI. They run in the existing Windows e2e guest: nix run .#windows-nextest
boots the golden image like a scenario (restoring a saved state when
KOMOREBI_E2E_STATE is set), uploads the test executables that the check
windows-nextest-build cross-compiled, runs every test in a process of its own
(nextest.exe is not needed: komorebi's tests share global state, so one
process per test is what nextest does too) and prints a line per executable
and the failures, with OUT/cargo-tests.json for every result.
The driver e2e/platforms/qemu_windows/cargo_tests.py already existed and was
wired to nothing; it now takes the check output (tests.tsv) as well as cargo
messages, creates the saved state itself, prints the panic message of a
failure, and uploads the data files the tests read. Those are found by the
CARGO_MANIFEST_DIR baked into the executables, a path of the Nix build, so
the check also keeps schemas/ and the tests' fixtures and the driver puts them
at that path under C:. Without them 20 tests failed for the missing files.
docs/dev/build-and-test.md and docs/dev/flake-checks.md describe the check,
the app and the neutral crates in linux-nextest.
Verified: nix run .#windows-nextest on the golden image g8 (scale 1.5, state
~/e2e-w0/state-nextest): 964 tests in 37 executables, 964 passed, 0 failed,
202 s with the state restored (first run 163 s more to save the state).
One run only; not soaked. No e2e scenario, the golden image or the existing
e2e-windows behaviour changed.
The tests of the Windows crates cannot run on a Linux builder, and the old
windows-nextest (crane cargoNextest with doCheck = false) ran none. This
check does the part a builder can do: cross-compile every test executable of
the Windows workspace (cargo test --workspace --release --no-run, target
x86_64-pc-windows-msvc through the xwin toolchain) and keep them with a
tests.tsv that lists them (48 executables), so that they are proved to
compile and link, and so that the next revision can run them in the guest.
The stub members of the Windows source (Linux and macOS packages) are
excluded: objc2 does not build for Windows. The check is in the set
windows-test.
Verified: nix build .#checks.x86_64-linux.windows-nextest-build; the output
holds tests/*.exe and tests.tsv. Not run: the executables (see the next
revision).
linux-nextest ran only the tests of the Linux packages (-p komorebi -p
komorebi-linux ...). The tests of komorebi-layouts, komorebi-scrolling,
komorebi-themes and the shared crates/* (backend, collections, config, core,
protocol, settings, transport, komorebic-core) ran in no nix check. They are
platform neutral, so the check now names them too (explicit -p list: with
--workspace the feature unification of komorebi-daemon breaks windows-future
on Linux), and runs with --no-fail-fast so one run lists every failure.
Two of those tests read files that the Linux source did not have: the
schemas of every platform (komorebi-config schemas test) and the macOS CLI
pages (komorebic-core docs_cli), so nix/workspace-src.nix keeps schemas/ and
docs/macos/cli/ in the Linux source.
Verified: nix build .#checks.x86_64-linux.linux-nextest, 1532 tests run, 1532
passed (9.1 s of test time).
The macos-nextest check was built with doCheck = false like the Windows one, so crane printed
'doCheck is not set, nextest tests will not run' and the check ran no test. It now uses
doCheck = true, as linux-nextest does, so the macOS unit tests run in the nix sandbox of a
darwin machine (the owner asked: can nextest run on a Mac with nix-darwin; if so, keep it).
Verified on the Mac Mini (aarch64-darwin, nix, no komorebi daemon started):
nix build .#checks.aarch64-darwin.macos-nextest exits 0 in about 1 minute with the cached
dependencies; nextest reports 'Summary 383 tests run: 383 passed, 1 skipped'. This is the
komorebi-macos library's tests; the cargo test run of the other packages (753 tests in all) was
done outside nix earlier. Not run: the other macOS checks again after this change (it only
touches this one check's arguments).
The owner decided not to rotate the token embedded in the origin URL of ~/komorebi-for-mac
(it is how they develop locally) and asked that it be in nothing that is pushed. The plan
now says that, replaces the 'rotate now' instruction and checklist item 5 accordingly, and
records what was checked: gitleaks with the default rules (which include the GitHub token
formats) found no leak in 7609 commits across every ref of the work clone nor in the files
of any workspace, and the work clone has no remote URL with credentials. The literal value
was not searched (tooling refused to copy a credential into a file); the plan gives the
owner a one-line command that reads the token at run time and prints only a count.
Verified: documentation only; the scans are the ones described above.
bug_report.yml and feature_request.yml get a required platform dropdown (Windows,
Linux (KDE Plasma), macOS) first in the form; the bug report's Windows-only
wording (ghost tiles, systeminfo, whkdrc, komorebic check) is scoped to Windows or
made platform-neutral; the feature request text names all three platforms.
config.yml links the Windows docs site plus the Linux and macOS index pages on
master (repo-relative GitHub links). Existing fields and labels are kept.
Verified: yq parses the three files. Links not fetched (the docs/linux and
docs/macos index files exist in the tree; they resolve on GitHub once pushed).
feature-check.yaml: the comment says feature requests for Windows, Linux and macOS
are open to current $5/month sponsors, individual commercial use licence holders
and approved contributors, and links the README section. It no longer implies
anything about a private repository. The [FEAT]: prefix check and the close and
lock behaviour are unchanged.
Verified: yq parses the file, actionlint reports nothing.
docs/macos/README.md: delete the paragraphs naming LGUG2Z/komorebi-for-mac as the
public release repository and KomoCorp/komorebi-for-mac as a private repository
for certain sponsor tiers with nightly releases (the private repository is retired
and nothing replaces it); add the one policy paragraph to its sponsorship section.
docs/macos/index.md: the same policy paragraph.
docs/macos/installation.md: OWNER markers only, on the Nix flake section that adds
the private repository as an input and on the nightly Homebrew line; text left
as it was because the replacement is the owner's decision.
Not verified beyond reading the diff.
docs/linux/index.md: the Sponsorship for Personal Use copy gains the same policy
paragraph as the README so the three platforms read one wording. Licence
sentences are untouched.
Not verified beyond reading the diff.
docs/index.md: add the same policy paragraph as the README (all three platforms,
the $5/month sponsor tier, licence holders, approved contributors, automatic
closing of other [FEAT] issues). Licence sentences are untouched.
Not verified beyond reading the diff.
README.md: the Sponsorship for Personal Use section now states the one policy
(feature requests for Windows, Linux and macOS come from current GitHub sponsors
at $5/month and above, individual commercial use licence holders and approved
contributors; other [FEAT] issues are closed automatically; bug reports are open
to everyone). The Community paragraph asks reporters to choose the platform.
Statements about the licence are untouched. One OWNER marker asks what sponsors
get now that the private macOS repository is retired.
Not verified beyond reading the rendered diff.