Commit graph

21 commits

Author SHA1 Message Date
Breadway
5a4453c767 CI: single-trunk model — dev triggers on main, beta becomes RC-tag-triggered
Replaces the dev/beta branch split with one trunk (main): dev-track
builds still publish on every push, but the beta track now publishes
from a vX.Y.Z-rc.N prerelease tag instead of a separately-maintained
beta branch. Removes the branch nobody reliably kept in sync.
2026-07-31 11:05:29 +08:00
Breadway
4c43baa9fa Merge feature/screenshot-mode: add --screenshot CLI mode for automated capture
All checks were successful
dev release / build (push) Successful in 1m14s
2026-07-29 16:39:16 +08:00
Breadway
b125facc67 breadclip: add --screenshot CLI mode for automated capture
Same pattern as breadbar/breadbox: render the clipboard-history panel,
capture it via bread-screenshots, then exit. One view ("history"), full
known-size canvas capture since the panel isn't its own layer surface.

active_window()/focused_monitor() (used to anchor the panel next to the
real focused window) both resolve to None inside bread-capture's isolated
environment (HYPRLAND_INSTANCE_SIGNATURE is deliberately unset there), so
the panel falls back to its already-existing centered layout — exactly
the deterministic behavior a screenshot needs, with no screenshot-mode-
specific positioning logic required.

Also fixes the same singleton footgun as breadbox: toggle_or_kill()
kills whatever's holding breadclip's single-instance lock, which is
typically the real running instance. A screenshot run now skips it
entirely instead of fighting over (and killing) the operator's real
clipboard panel.
2026-07-29 11:37:01 +08:00
Breadway
b95e4c9466 docs: add CONTRIBUTING.md
All checks were successful
dev release / build (push) Successful in 1m41s
Documents the dev/beta/main branch and release-track workflow shared
across the bread ecosystem. See bread-ecosystem's docs/release-channels.md
for the full policy this implements.
2026-07-22 19:42:03 +08:00
Breadway
2e99954642 ci: make beta a branch-triggered freeze track, not a one-off tag
All checks were successful
dev release / build (push) Successful in 1m55s
beta release / build (push) Successful in 1m51s
Beta is now a real stabilization branch: publishes on every push to
`beta` (mirroring dev's model, auto-versioned X.Y.Z-beta.<ts>+<sha>,
base version from the latest published tag) instead of a manual
beta-v* tag. Fixes made during the freeze land via fix/<issue> branches
merged into `beta` directly. The gen-index.sh clone for beta pulls
bread-ecosystem's default branch (main) rather than pinning to dev,
since beta is the more stable track and main now carries the
TRACK-aware script.
2026-07-22 18:37:48 +08:00
Breadway
eab00c0712 ci: base dev version on the latest published tag, not Cargo.toml
All checks were successful
dev release / build (push) Successful in 1m58s
Cargo.toml can drift stale relative to the actual last release (observed
on breadbox/breadpad/breadcrumbs/breadpaper), which made the auto-bumped
dev version sort as OLDER than what's already installed — bakery's semver
check correctly refused those "updates". Deriving the base version from
git ls-remote --tags instead is self-healing regardless of Cargo.toml
drift, with a Cargo.toml fallback only for a repo with no tags yet.
2026-07-22 13:53:07 +08:00
Breadway
58aa415ef0 random commit message, read it yourself
All checks were successful
dev release / build (push) Successful in 1m6s
2026-07-22 11:37:38 +08:00
Breadway
a35cd6f363 ci: use a unique temp dir for the bread-ecosystem clone in dev/beta CI
Some checks failed
dev release / build (push) Failing after 1s
The fixed /tmp/bread-ecosystem-ci path races when multiple repos' dev/beta
workflows run close together on the same self-hosted runner — one job's
rm -rf/clone can stomp another's in-progress checkout, causing the
regenerate-index step to fail intermittently. Switch to mktemp -d.
2026-07-22 10:24:49 +08:00
Breadway
06ab15c2c0 ci: retrigger dev-track build now that BAKERY_MINISIGN_SEC_KEY_PATH is set
Some checks failed
dev release / build (push) Failing after 1s
2026-07-22 10:10:20 +08:00
Breadway
34a96b78e0 ci: add dev/beta build track workflows
Some checks failed
dev release / build (push) Failing after 1s
Adds dev-release.yml (publishes on every push to dev) and beta-release.yml
(publishes on a beta-v* tag), mirroring the pattern landing in
bread-ecosystem/bread. Also creates the dev branch for this repo, which
didn't exist before — see bread-ecosystem/docs/release-channels.md for the
three-track policy.
2026-07-22 09:56:49 +08:00
Breadway
5a60a76901 ci: remove GitHub push-mirror workflow 2026-07-21 19:19:33 +08:00
Breadway
83b1fd7c23 Fix unswapped bread-utils path dep and stale bread-theme URL; bump to v0.2.1
Some checks failed
Mirror to GitHub / mirror (push) Successful in 2s
release / build (push) Failing after 1s
2026-07-19 04:02:53 +08:00
Breadway
4c21cc3f71 Switch to tag-pinned bread-ecosystem deps; bump version to v0.2.0 2026-07-19 03:52:27 +08:00
Breadway
7634af0b4f Switch to tag-pinned bread-ecosystem deps; bump version to v0.2.0
Some checks failed
Mirror to GitHub / mirror (push) Successful in 2s
release / build (push) Failing after 1s
2026-07-19 03:42:05 +08:00
Breadway
e16c1b461c Migrate to bread-utils: Hyprland IPC, single-instance lock, popup scaffold, XDG paths
Mirrors tonight's breadbox migration (same shared crate, same duplicated
patterns):

- position.rs's raw socket1 client -> bread_utils::hypr (file removed
  entirely, its logic now lives in the shared crate)
- toggle_or_continue's TOCTOU-prone PID-file dance -> bread_utils::singleton
- the layer-shell window setup, Up/Down visible-row navigation, and
  click-outside-close gesture -> bread_utils::gtk_popup
- breadclip-core's data_dir(): replaced the buggy
  `dirs::data_local_dir().unwrap_or_else(|| PathBuf::from("~/.local/share"))`
  fallback (flagged but never fixed in tonight's earlier audit pass —
  PathBuf never expands `~`) with bread_utils::xdg::data_dir, which
  resolves a real $HOME before ever falling back.

Builds and tests clean across the whole breadclip workspace.
2026-07-17 09:24:38 +08:00
Breadway
8097d1944c breadclip: privacy hardening + event-driven daemon
- history.db and images/*.png are now created with 0600 permissions
  (owner-only) instead of default umask, since clipboard history can
  contain plaintext passwords/tokens.
- breadclipd never persists clipboard content flagged with the
  x-kde-passwordManagerHint MIME type (the convention KeePassXC,
  Bitwarden, etc. use to mark content they own).
- Replaced breadclipd's 500ms busy-poll loop (2-3 wl-paste forks per
  cycle, forever) with wl-paste --watch, so it only reacts on actual
  clipboard changes.
- Documented both behaviors in the README.
2026-07-17 03:17:24 +08:00
Breadway
86ebe5d050 breadclip: bump version to 0.1.1
All checks were successful
Mirror to GitHub / mirror (push) Successful in 1s
release / build (push) Successful in 55s
2026-07-16 18:04:39 +08:00
Breadway
7ee762f5ea breadclip: bump bread-theme to v0.2.10 (fixes pywal-colored window background) 2026-07-16 17:52:11 +08:00
Breadway
add5c6c8f1 CI: migrate release workflow from GitHub Actions to Forgejo Actions
All checks were successful
Mirror to GitHub / mirror (push) Successful in 1s
GitHub Actions self-hosted runners need per-repo registration on a
personal account; Forgejo Actions' runner already serves every repo
with zero setup. Moves release publishing there (dl.breadway.dev stays
the primary bakery target; GitHub release upload is kept as the
fallback via an explicit token, since Forgejo Actions has no ambient
GITHUB_TOKEN) and adds a mirror workflow to keep GitHub in sync
automatically.
2026-07-03 14:10:11 +08:00
Breadway
308b5eb10c CI: add release workflow
Some checks failed
release / build (push) Failing after 2s
2026-07-02 21:03:17 +08:00
Breadway
69bc67e29a Initial commit 2026-07-02 20:59:21 +08:00