Skip to content

ci: the daemon on Ubuntu and macOS - #94

Merged
httpsphl merged 4 commits into
mainfrom
ci/unix-runners
Oct 1, 2026
Merged

httpsphl merged 4 commits into
mainfrom
ci/unix-runners

Conversation

@httpsphl

@httpsphl httpsphl commented Oct 1, 2026

Copy link
Copy Markdown
Owner

First slice of Linux/macOS support (spec 18, item 8): the daemon builds and passes its tests on Ubuntu and macOS, checked on every PR.

Changes

  • CI: the Ubuntu job, which covered only botloft-core and botloft-store, becomes Rust (Ubuntu) and Rust (macOS): clippy with -D warnings and the tests of the default members (core, store, daemon). The app crates join when the app runs there.
  • Build: build.rs named embed_resource, a build dependency on Windows hosts only, so the daemon did not compile on Linux or macOS.
  • Off Windows:
    • With no scheduled task outside Windows, finding one answers "not installed" instead of failing. Saving the settings failed before this.
    • The owner name falls back to LOGNAME and then the home folder name.
    • file: URLs keep the leading slash of POSIX paths, so bots can open pages from their folders.
  • Tests:
    • The config test had one backslash too many in a TOML literal, hidden on Windows.
    • The binary test no longer assumes .exe sorts last.
    • The courier archive test holds the bot's start, so it no longer races a fast start.

Checks

  • Linux (Docker, rust:latest): cargo clippy --all-targets -D warnings and cargo test, all green.
  • Windows: fmt, clippy, and the affected test targets.
  • macOS: the new CI job only.

Branch protection

The required check Rust core + store (Ubuntu) no longer exists. Once this PR is green, it is replaced by Rust (Ubuntu) and Rust (macOS).

No real Claude Code involved.

embed-resource is a build dependency on Windows hosts only, so build.rs
must not name it elsewhere.
- With no scheduled task off Windows, finding one answers 'not installed'
  instead of failing, so saving the settings works.
- The owner name falls back to LOGNAME and the home folder name.
- file: URLs keep the leading slash of POSIX paths, so bots can open
  pages from their folders.
- The config test's TOML literal had one backslash too many; Windows
  paths hid it by merging the separators.
- The installed binary has no .exe off Windows, so the expected names are
  sorted like the listing.
- Archiving a queued message holds the bot's start, so a fast start can
  no longer take the message first.
First slice of Linux/macOS support (spec 18, item 8). The Ubuntu job
covered only core and store; it now runs clippy and the tests of the
default members, with macOS alongside. The app crates join when the app
runs there.
@httpsphl
httpsphl merged commit 39e50e2 into main Oct 1, 2026
4 checks passed
@httpsphl httpsphl mentioned this pull request Oct 1, 2026
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