Commit graph

52 commits

Author SHA1 Message Date
Breadway
0f3136ca8d CI: watch main branch alongside master/dev
All checks were successful
Mirror to GitHub / mirror (push) Successful in 2s
2026-06-19 08:38:37 +08:00
Breadway
954b7f381e Add ready-to-use example modules
Some checks failed
Mirror to GitHub / mirror (push) Successful in 2s
Build and publish package / package (push) Failing after 2m6s
examples/modules/ ships complete, drop-in bread modules for common desktop
automations (low-battery warning, pause-media-on-headphone-unplug,
dock-monitors) plus a README on installing them. Complements Examples.md,
which teaches the porting patterns.
2026-06-16 17:06:44 +08:00
Breadway
152915198b Disable debug package so the main package publishes correctly
Some checks failed
Mirror to GitHub / mirror (push) Successful in 2s
Build and publish package / package (push) Failing after 2m39s
makepkg's debug split produced a -debug pkg; the upload's head -1 could
grab it instead of the main package. !debug yields a single package.
2026-06-13 23:00:46 +08:00
Breadway
623560cea6 Use REGISTRY_TOKEN (scoped write:package) for registry publish
Some checks failed
Mirror to GitHub / mirror (push) Successful in 3s
Build and publish package / package (push) Failing after 2m42s
2026-06-13 22:55:39 +08:00
Breadway
64e756f6eb Disable LTO in PKGBUILD to fix vendored Lua static link
Some checks failed
Mirror to GitHub / mirror (push) Successful in 15s
Build and publish package / package (push) Failing after 3m19s
makepkg's default -flto=auto made mlua's vendored liblua5.4.a contain GCC
LTO bitcode that the Rust (lld) link couldn't read, leaving all lua_*
symbols undefined. options=(!lto) produces a clean static link.
Verified building in a clean archlinux container.
2026-06-13 16:52:54 +08:00
Breadway
d454e832d9 Clone from public URL, not GITHUB_SERVER_URL (resolves to localhost in runner)
Some checks failed
Mirror to GitHub / mirror (push) Successful in 19s
Build and publish package / package (push) Failing after 3m12s
The Forgejo runner injects GITHUB_SERVER_URL as http://localhost:3002, which
is unreachable from inside the job container. Use the public URL instead.
2026-06-13 16:14:13 +08:00
Breadway
73f01e97b4 Rename mirror secret to MIRROR_TOKEN (GITHUB_ prefix is reserved)
Forgejo/gitea rejects user secret names starting with GITHUB_.
2026-06-13 16:10:49 +08:00
Breadway
c70c9a7278 Fix Forgejo workflows for the actual server capabilities
- package.yml: correct Arch registry upload (octet-stream + binary body),
  drop --privileged, manual shell clone (archlinux image has no Node),
  built-in Actions token, --nocheck
- mirror.yml: clone --mirror + explicit refs push with --prune

Requires only the GITHUB_MIRROR_TOKEN secret for the mirror job.
2026-06-13 16:01:58 +08:00
Breadway
4446b5e98b Add Forgejo Actions workflows for mirroring and package publishing
- .forgejo/workflows/mirror.yml: mirrors every push/tag to GitHub
- .forgejo/workflows/package.yml: builds PKGBUILD on tag and publishes
  the bread package to the Forgejo Arch registry (distrib=breadway)

Requires two Forgejo secrets:
  GITHUB_MIRROR_TOKEN — GitHub PAT with repo push scope
  FORGEJO_TOKEN       — Forgejo token with package:write scope
2026-06-13 11:42:06 +08:00
Breadway
3ccb041778 chore: update Cargo.lock for v0.6.1
Some checks failed
release / build (push) Failing after 10s
2026-06-11 14:27:53 +08:00
Breadway
32982b96de chore: bump version to 0.6.1 2026-06-11 14:21:13 +08:00
Breadway
9bbadc5221 fix: update system_deps to accurate Arch package names
Required: systemd-libs (libudev.so.1), openssl, zlib (bread CLI via git2)
Optional: bluez (Bluetooth, graceful degradation), hyprland (IPC features)
Removes empty system_deps placeholder.
2026-06-11 13:37:30 +08:00
Breadway
db4d82f219 fix: use relative symlink for latest to work inside Docker containers 2026-06-07 09:00:23 +08:00
Breadway
3025c485d1 fix: add contents: write permission for GitHub Release creation
Some checks failed
release / build (push) Failing after 19s
2026-06-07 00:00:45 +08:00
Breadway
a9b1992598 fix: create GitHub Release before uploading artifacts 2026-06-06 23:52:34 +08:00
Breadway
109b11c77f fix: skip integration tests in CI (require live daemon) 2026-06-06 23:43:08 +08:00
Breadway
0f430e873d fix: add missing build deps for hestia (Ubuntu) runner 2026-06-06 23:19:48 +08:00
Breadway
76e503b837 Add bakery.toml and release workflow
Wires bread into the bakery ecosystem: prebuilt binaries are published to
dl.breadway.dev and GitHub Releases on every v* tag via the self-hosted
hestia runner. bakery install bread downloads, verifies, and wires the
systemd unit automatically.
2026-06-06 22:31:01 +08:00
Breadway
e57f085e37 Fix CI tar path 2026-05-17 08:40:13 +08:00
Breadway
114c9e2bcc Revert to v0.6 2026-05-17 08:33:00 +08:00
Breadway
cc456b78fe refactor: remove remote module install, extract bread-sync, make CI real
Security:
- Remove `bread modules install github:…`. Remote fetch pulled unreviewed
  third-party Lua and ran it with full bread.exec() privileges in an
  unsandboxed runtime. Module install is now local-only; parse_source
  rejects github:/git: with an explicit message.

bread-sync extracted from the workspace (parked for its own project):
- Removed from workspace members (now excluded); see bread-sync/EXTRACTION.md
- Removed the entire `bread sync` CLI surface and now-unused deps
  (bread-sync, reqwest, tar, flate2; tempfile demoted to dev-dependency)
- Removed the sync.status IPC method from breadd plus its integration tests
- Moved the generic `expand_path` helper into bread-shared (with unit tests)

CI now actually runs and gates quality:
- Trigger on master/dev (was `main` — CI had never run, not once)
- Added `cargo fmt --check` and `clippy -D warnings`; fixed 4 clippy warnings
- Dropped the macOS matrix entry (breadd is Linux-only: udev/rtnetlink);
  added the libudev-dev system dependency the Linux build needs

Hardening / honesty:
- New ipc test: daemon survives repeated reloads and the event pipeline
  resumes (the prior suite only had a single happy-path reload check)
- Docs scrubbed of sync across README/Documentation/Overview/DAEMON
- "production-ready" and "compositor-agnostic" claims reworded to match
  reality rather than aspiration

Note: bread-sync/src/export.rs held pre-existing local WIP authored outside
this change set and is intentionally excluded from this commit.
2026-05-17 00:22:21 +08:00
Breadway
3be8eec065 docs: document sync export/import and updated snapshot layout 2026-05-16 22:17:26 +08:00
Breadway
fc27916a5d Commiting for bread sync 2026-05-16 19:44:19 +08:00
Breadway
9a471f3158 Final Release of Version 1.0 2026-05-13 22:01:42 +08:00
Breadway
d44ece3649 feat: enhance device normalization and classification
- Introduced a new mechanism in EventNormalizer to suppress duplicate events from child nodes of the same physical device.
- Removed the device classification logic from the normalizer and replaced it with a rule-based system using Lua scripts.
- Added support for user-defined device rules in Lua, allowing for flexible device naming based on various conditions.
- Updated the state engine to handle device rules and resolve device names before dispatching events.
- Modified the installation script to set up default configuration files for the daemon and Lua modules.
- Improved the handling of systemd user services to dynamically set the ExecStart path based on the installation directory.
2026-05-12 21:27:07 +08:00
Breadway
acbf8e1b1b revert 2026-05-12 00:35:09 +08:00
Breadway
70464b2439 Merge pull request #4 from Breadway/master
Merge pull request #3 from Breadway/dev
2026-05-12 00:27:16 +08:00
Breadway
a9306aaba8 Merge pull request #3 from Breadway/dev
Dev
2026-05-12 00:25:43 +08:00
copilot-swe-agent[bot]
d158fe2186 docs: align daemon naming with package rename
Agent-Logs-Url: https://github.com/Breadway/bread/sessions/1d380004-8d78-4a1f-9fbb-0c8a487b2e14

Co-authored-by: Breadway <108389940+Breadway@users.noreply.github.com>
2026-05-11 16:25:35 +00:00
copilot-swe-agent[bot]
60b2999ebf Merge origin/master into dev and resolve conflicts
Co-authored-by: Breadway <108389940+Breadway@users.noreply.github.com>
2026-05-11 16:23:31 +00:00
Breadway
e39b168398 feat: add bread-sync module for snapshot and restore functionality
- Introduced `bread-sync` module with core functionalities for syncing system state via Git.
- Implemented `MachineProfile` struct for managing machine profiles, including methods for reading and writing profiles.
- Added package management support with snapshot capabilities for `pacman`, `pip`, `npm`, and `cargo`.
- Created comprehensive tests for sync operations, package parsing, and machine profile management.
- Enhanced `udev` adapter to include vendor and product IDs for scanned devices.
- Updated state engine to handle module clearing commands.
- Introduced Lua integration for accessing machine information and file system operations.
- Improved packaging documentation for Arch Linux and systemd service setup.
2026-05-12 00:20:45 +08:00
Breadway
96e42bc370 revert 2026-05-11 22:51:32 +08:00
Breadway
c5102639f4 Refactor UdevAdapter to remove udev monitor fallback and update PKGBUILD for consistent naming 2026-05-11 22:48:49 +08:00
Breadway
a2b7391a71 Update README and add documentation and examples for Bread automation 2026-05-11 21:54:43 +08:00
Breadway
1ef29d1b3e Remove markdown 2026-05-11 20:58:31 +08:00
Breadway
c65e50fe1c Merge branch 'dev' of https://github.com/Breadway/bread into dev 2026-05-11 20:56:34 +08:00
Breadway
5adcfb3854 Begin Implementing V2 features 2026-05-11 20:56:10 +08:00
Breadway
5dd0b0b0e0 Merge pull request #2 from Breadway/dev
Dev
2026-05-11 20:30:59 +08:00
Breadway
dccea5f6de Merge branch 'master' into dev 2026-05-11 20:30:48 +08:00
Breadway
55d103b3cf Enhance installation process, update service paths, and improve device classification 2026-05-11 18:39:39 +08:00
Breadway
edb2ba338a Refactor subscription table logic and enhance Lua logging and debounce functionality 2026-05-11 16:57:22 +08:00
Breadway
05123a5989 Enhance timestamp formatting and add reload watcher functionality 2026-05-11 16:40:49 +08:00
Breadway
1a00daf6a8 unsure 2026-05-11 16:30:05 +08:00
Breadway
ff458c51cc Merge pull request #1 from Breadway/dev
Add lua runtime
2026-05-11 16:29:38 +08:00
Breadway
0e3233009b Add lua runtime 2026-05-11 16:03:05 +08:00
Breadway
6aae092afe Merge branch 'master' of https://github.com/Breadway/bread 2026-05-11 15:50:36 +08:00
Breadway
7f8faa7754 Daemon release-ready 2026-05-11 15:49:03 +08:00
Breadway
0fe25373d7 remove CI workflow and update .gitignore to include .github directory 2026-05-11 15:29:08 +08:00
Breadway
6237f3d7e7 Update clone command to include .git extension 2026-05-11 12:28:49 +08:00
Breadway
d537fc9318 Daemon release-ready 2026-05-11 12:21:23 +08:00