From ad95ebe272fffc7561de9e554bed0e4a3095d9e9 Mon Sep 17 00:00:00 2001 From: Graeme Foster <80714+GraemeF@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:12:12 +0100 Subject: [PATCH 1/4] chore: cut 0.7.0 Four badge features and a fix have landed since v0.6.0. One of them changes what a badge's key names, so a config written for 0.6.0 draws no badges and says nothing about it. The release notes carry that as the only warning anyone gets. The README's pointer to docs/configuration.md said badges are drawn from bead metadata, which is narrower than the truth now. The README at the squash is this version's crates.io page for ever, so it is fixed here rather than after. --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 6 +++--- RELEASE-NOTES/0.7.0.md | 27 +++++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 RELEASE-NOTES/0.7.0.md diff --git a/Cargo.lock b/Cargo.lock index b1a4114..f3049e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -120,7 +120,7 @@ checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" [[package]] name = "beady-eye" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "base64 0.23.1", diff --git a/Cargo.toml b/Cargo.toml index 817b1d4..bfd2cee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "beady-eye" -version = "0.6.0" +version = "0.7.0" edition = "2021" rust-version = "1.88" description = "A tree of work in flight: bead graphs annotated with the live agents working them" diff --git a/README.md b/README.md index 3d86c0f..778ce32 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ $ nix run github:CodeForBreakfast/beady-eye From your own flake, pin a release tag and take the package or the overlay: ```nix -inputs.beady-eye.url = "github:CodeForBreakfast/beady-eye/v0.6.0"; +inputs.beady-eye.url = "github:CodeForBreakfast/beady-eye/v0.7.0"; beady-eye.packages.${system}.default # the package nixpkgs.overlays = [ beady-eye.overlays.default ]; # pkgs.beady-eye @@ -113,8 +113,8 @@ yourself. An `.envrc` and direnv need nothing said. Anything else, say it with `environment_command`. [docs/configuration.md](docs/configuration.md) has the rest: badges drawn from -bead metadata, credentials, extra roots, intervals, the light theme, and the -socket you can poke to say a tracker changed so the eye stops polling it. +what a bead carries, credentials, extra roots, intervals, the light theme, and +the socket you can poke to say a tracker changed so the eye stops polling it. ## Being seen diff --git a/RELEASE-NOTES/0.7.0.md b/RELEASE-NOTES/0.7.0.md new file mode 100644 index 0000000..888a1a0 --- /dev/null +++ b/RELEASE-NOTES/0.7.0.md @@ -0,0 +1,27 @@ +bdi 0.7.0 + +Minor release, **0.6.0 → 0.7.0**. + +## Highlights + +**A badge can say something shorter where the long form will not fit.** Write a `short` beside `render`, over the same captures, and a narrow row draws that whole rather than cutting the long form down to a head that names nothing. A `short` the value leaves half-filled is not drawn half-substituted, and the row says so instead. + +**A badge's `key` reads any value the bead carries, and every key you have already written needs an edit.** It names a field of the bead, joined by a dot where that field holds an object: `external_ref` reads the external reference one of beads' sync adapters wrote, and `metadata.jira` reads the `jira` key of the bead's metadata. A key written for 0.6.0 names a field that is not there, so it finds nothing and draws nothing, silently. Write `metadata.` in front of each one. `[join]`'s `pane_key` is untouched and stays bare. + +**A badge can take any colour `bdi`'s palette holds, or one you name outright.** Name one of the palette's slots and the badge moves with the theme as that slot does. Write a colour yourself and it is drawn in exactly that, whatever the theme. `status` still follows the bead it sits on. + +**A badge the row had to cut is no longer underlined**, so the row no longer invites a click on a badge with no hyperlink behind it. + +## Installing + +```console +$ brew install codeforbreakfast/tap/bdi +``` + +`cargo install beady-eye` from crates.io if you would rather compile it. Or pin `github:CodeForBreakfast/beady-eye/v0.7.0` as a flake input and take the package or the overlay. Or take a binary from this page: one per platform, `.sha256` beside each, the Linux ones static. Apple has not been asked to sign the macOS ones, so a copy a browser downloaded needs `xattr -d com.apple.quarantine bdi` first. + +The crate is `beady-eye`. The command is `bdi`. + +## Maintenance + +- Renovate raises the dependency updates now, and a round of them has landed. From 7810aa3f5847cef386a8896a227a069c68011dbb Mon Sep 17 00:00:00 2001 From: Graeme Foster <80714+GraemeF@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:36:23 +0100 Subject: [PATCH 2/4] chore: say plainly that a metadata key is the reader's own The sentence defining the new key rule gave external_ref and a metadata key the same treatment, which reads as though bdi recognises the second name. It recognises no service at all. The two halves now say where each name comes from: bd writes the field names, and the reader writes everything under metadata. --- RELEASE-NOTES/0.7.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES/0.7.0.md b/RELEASE-NOTES/0.7.0.md index 888a1a0..27468b1 100644 --- a/RELEASE-NOTES/0.7.0.md +++ b/RELEASE-NOTES/0.7.0.md @@ -6,7 +6,7 @@ Minor release, **0.6.0 → 0.7.0**. **A badge can say something shorter where the long form will not fit.** Write a `short` beside `render`, over the same captures, and a narrow row draws that whole rather than cutting the long form down to a head that names nothing. A `short` the value leaves half-filled is not drawn half-substituted, and the row says so instead. -**A badge's `key` reads any value the bead carries, and every key you have already written needs an edit.** It names a field of the bead, joined by a dot where that field holds an object: `external_ref` reads the external reference one of beads' sync adapters wrote, and `metadata.jira` reads the `jira` key of the bead's metadata. A key written for 0.6.0 names a field that is not there, so it finds nothing and draws nothing, silently. Write `metadata.` in front of each one. `[join]`'s `pane_key` is untouched and stays bare. +**A badge's `key` reads any value the bead carries, and every key you have already written needs an edit.** It names a field of the bead, joined by a dot where that field holds an object. `bdi` knows the field names because `bd` writes them, so `external_ref` reads the external reference one of beads' sync adapters wrote. It knows nothing about what you keep in metadata, so `metadata.` in front of a key you chose yourself reads whatever you put under it. A key written for 0.6.0 names a field that is not there, so it finds nothing and draws nothing, silently. Write `metadata.` in front of each one. `[join]`'s `pane_key` is untouched and stays bare. **A badge can take any colour `bdi`'s palette holds, or one you name outright.** Name one of the palette's slots and the badge moves with the theme as that slot does. Write a colour yourself and it is drawn in exactly that, whatever the theme. `status` still follows the bead it sits on. From dae769fd2753e3f0f84420e6938f6d715e19a540 Mon Sep 17 00:00:00 2001 From: Graeme Foster <80714+GraemeF@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:01:51 +0100 Subject: [PATCH 3/4] chore: announce the badge work and give the upgrade its own section The highlights explained each change instead of naming it. A reader of the notes has not seen the config surface, so the detail taught them nothing and buried the one edit they owe. Four bullets say what a badge can do now. Reading any field of a bead is one of them rather than a warning, because that is what the change is. Upgrading is its own section and one sentence. --- RELEASE-NOTES/0.7.0.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/RELEASE-NOTES/0.7.0.md b/RELEASE-NOTES/0.7.0.md index 27468b1..5c221b0 100644 --- a/RELEASE-NOTES/0.7.0.md +++ b/RELEASE-NOTES/0.7.0.md @@ -4,13 +4,14 @@ Minor release, **0.6.0 → 0.7.0**. ## Highlights -**A badge can say something shorter where the long form will not fit.** Write a `short` beside `render`, over the same captures, and a narrow row draws that whole rather than cutting the long form down to a head that names nothing. A `short` the value leaves half-filled is not drawn half-substituted, and the row says so instead. +- A badge can show any field of a bead, not just its metadata. +- You can give a badge a short form, for when there is no room for the full one. +- You can give a badge a colour. +- A badge cut off at the end of a row is no longer underlined. -**A badge's `key` reads any value the bead carries, and every key you have already written needs an edit.** It names a field of the bead, joined by a dot where that field holds an object. `bdi` knows the field names because `bd` writes them, so `external_ref` reads the external reference one of beads' sync adapters wrote. It knows nothing about what you keep in metadata, so `metadata.` in front of a key you chose yourself reads whatever you put under it. A key written for 0.6.0 names a field that is not there, so it finds nothing and draws nothing, silently. Write `metadata.` in front of each one. `[join]`'s `pane_key` is untouched and stays bare. +## Upgrading -**A badge can take any colour `bdi`'s palette holds, or one you name outright.** Name one of the palette's slots and the badge moves with the theme as that slot does. Write a colour yourself and it is drawn in exactly that, whatever the theme. `status` still follows the bead it sits on. - -**A badge the row had to cut is no longer underlined**, so the row no longer invites a click on a badge with no hyperlink behind it. +Put `metadata.` in front of every badge key in your config. ## Installing @@ -24,4 +25,4 @@ The crate is `beady-eye`. The command is `bdi`. ## Maintenance -- Renovate raises the dependency updates now, and a round of them has landed. +Renovate raises the dependency updates now, and a round of them has landed. From 70c90f36016541c15b7b7f5dce0e4123b9f02a44 Mon Sep 17 00:00:00 2001 From: Graeme Foster <80714+GraemeF@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:05:21 +0100 Subject: [PATCH 4/4] chore: stop the notes announcing how a cut badge is drawn A cut badge keeps its underline and stays clickable, so somebody moving from 0.6.0 to 0.7.0 sees no change in how one is drawn. The notes say nothing about it in either direction. Upgrading says what changed before what to do about it, so a reader knows why the edit is owed. --- RELEASE-NOTES/0.7.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/RELEASE-NOTES/0.7.0.md b/RELEASE-NOTES/0.7.0.md index 5c221b0..a61eda7 100644 --- a/RELEASE-NOTES/0.7.0.md +++ b/RELEASE-NOTES/0.7.0.md @@ -7,11 +7,10 @@ Minor release, **0.6.0 → 0.7.0**. - A badge can show any field of a bead, not just its metadata. - You can give a badge a short form, for when there is no room for the full one. - You can give a badge a colour. -- A badge cut off at the end of a row is no longer underlined. ## Upgrading -Put `metadata.` in front of every badge key in your config. +A badge key now names a field of a bead, so put `metadata.` in front of every one in your config. ## Installing