Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/release-notes/v0.1.1-beta.11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Shibumi 0.1.1-beta.11

## Summary

Beta.11 integrates the Step 2, Step 3, Step 4A, and Step 4B work on the exact
clean candidate `e94e9ac`. It activates the native Audio and Bluetooth owners,
keeps the 24-plugin/one-Quickshell-process contract, and records physical local
Audio and Bluetooth acceptance.

## Included

- Compact production-boundary completion from Step 2
- Bluetooth audio-route seam from Step 3
- Native PipeWire Audio and BlueZ/Bluetooth ownership
- Primitive Audio panel seam with typed action results and stable IDs
- Live output/input/stream volume and mute controls
- Coalesced mouse-wheel volume updates with acknowledgement and stale-update protection
- Jabra Evolve2 55 native Bluetooth pairing, audio routing, disconnect/reconnect,
and remove/fresh-pair/reconnect acceptance
- Consistent and right-aligned Audio panel percentage typography
- 24 managed plugins with one Quickshell process and exact live payload identity

## Validation

- Complete local contract regression: passed
- Audio/media plugin regression: passed
- Bluetooth plugin regression: passed
- Local physical Audio acceptance: passed
- Local physical Bluetooth acceptance: passed
- Local live shell: one Quickshell process, `ping: ok`

## Deferred gates

Beta.11 is a public beta candidate. Physical second-display,
mixed-scale/hotplug, and enterprise-Wi-Fi acceptance remain separate stable
release gates. Machine2 validation is intentionally out of scope for this
candidate.
16 changes: 16 additions & 0 deletions .github/workflows/package-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ jobs:
set -euo pipefail
scripts/build-release-archive --check-reproducible

- name: Rehearse the built AUR package in Arch
run: |
set -euo pipefail
docker run --rm \
-v "$GITHUB_WORKSPACE:/src:ro" \
archlinux:base-devel \
bash -ceu '
pacman -Syu --noconfirm --needed git python
useradd --create-home builder
mkdir /work
cp -a /src/. /work/
chown -R builder:builder /work
cd /work
su builder -c ./scripts/rehearse-aur-package
'

github-release:
if: startsWith(github.ref, 'refs/tags/v')
needs: package-contract
Expand Down
56 changes: 48 additions & 8 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,45 @@ Only behavior proven to be host-neutral should move from QS Rise V1 to Shibumi.
be adapted to the Shibumi ownership model rather than copied together with QS Rise paths,
hooks, polling, or lifecycle scripts.

### Why A Full-Bar Plugin
### Compact Enforceable Backend Boundary

The machine-readable boundary contract is
[`contracts/backend-boundary-v1.json`](contracts/backend-boundary-v1.json). It is
the only repository boundary source for production dependency classification;
it is not a status system and does not replace the suite contract or release
readiness record. `scripts/check-production-boundary` loads that manifest and
fails closed on malformed or incomplete declarations.

Every mutable capability declares one owner, its current backend boundary, its
output cardinality, and its worker policy. Production dependencies are classified
as exactly one of `hostIntegration`, `nativeApi`, `omarchyBackend`,
`omarchyAction`, or `hostOwnedProvider`. A transitional `omarchyBackend` must
name a known backend, an explicit `removalStep`, and a reason. The manifest's
transition ledger locks every declared transition capability and dependency to
that classification, so a transition cannot be silently reclassified without a
boundary-contract change. Process-wide Shibumi owners must also expose a valid
service manifest. New categories, owners, backend identities, host providers,
or undeclared occurrences fail the lint rather than becoming implicit
compatibility debt.

The only host-owned provider exceptions are Omarchy Notifications, OSD, and
Idle. Their provider identities, owners, allowed forms, process-wide cardinality,
and host-owned worker policy are declared explicitly in the boundary manifest.
No other `firstPartyServiceFor`, private provider QML, hidden component, helper
state poller, or output-duplicated capability owner is permitted. OSD remains an
explicit host summon/IPC action; it is not a Shibumi provider.

The production lint runs in source and package gates. It checks exact reviewed
occurrences, private component paths, provider and first-party service calls,
Omarchy commands, helper-backed state markers, package escapes, symlinks, UTF-8
source, transition-ledger consistency, and process-wide owner manifests. The
lint verifies declared output cardinality and worker policy; it does not claim
to prove runtime process cardinality or live worker behavior. Compatibility debt
may be removed by a later migration step, but it may not be broadened silently.
This boundary slice does not activate Audio, Network, Bluetooth, or any other
backend cutover.

## Why A Full-Bar Plugin

Replacing individual widgets on Omarchy's built-in bar is the lower-risk choice
when a product only changes widget content or visual tokens. Whiterose documents
Expand Down Expand Up @@ -606,13 +644,15 @@ Current Phase 2 foundation:
Shibumi full/compact widget and lazy mixer panel own the visible V1
presentation, while every volume, mute, device, and stream mutation delegates
to that same official instance. It does not create or trigger a second OSD;
- the bridge contains no PipeWire import, process, timer, or file watcher. The
local mixer snapshots exposed lists through one 75 ms settle timer and owns
one `PwNodePeakMonitor` only while open; the official stock panel and its
workers remain closed. Component regressions cover missing-backend behavior,
settings, screen-aware alias routing, action forwarding, unique click
registration, model release, and teardown. Real Wayland panel mapping remains
an acceptance gate.
- during the Step 4A transition, the bridge reads the authoritative
`Pipewire.ready` signal and owns one bounded `PwNodePeakMonitor` only while
the visible mixer is open; it exposes primitive snapshots and typed stable-ID
actions while the official stock panel and its workers remain closed. The
native `AudioBackendAdapter` provides the replacement primitive peak seam and
is lifecycle-gated for activation. Component regressions cover missing-backend
behavior, readiness, settings, screen-aware alias routing, action forwarding,
unique click registration, model release, and teardown. Real Wayland panel
mapping remains an acceptance gate.
- G7 replaces the stock AI presentation with one selected-provider Shibumi
pill and one lazy local panel. The process-wide `hancore.shibumi.ai` service consumes
the primitive schema-v1 records produced by current `omarchy.agents`; it
Expand Down
24 changes: 17 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
# Changelog

## 0.1.1-beta.10: Official Omarchy baseline and forward compatibility
## 0.1.1-beta.11: Native Audio and Bluetooth cutover

Release candidate for 2026-08-21.
Public beta candidate for 2026-08-23.

### Added

- Added permanent regression coverage for Omarchy's `connectDirectly()` Network action
- Added official Omarchy `4.0.0-1`/`v4.0.0` compatibility evidence and forward baseline metadata
- Completed the Step 2 compact production-boundary transition and Step 3 Bluetooth audio-route seam
- Activated native PipeWire Audio and BlueZ/Bluetooth owners without duplicating backend ownership
- Added primitive Audio panel snapshots, stable IDs, typed action results, and live app-stream controls
- Added local physical acceptance for Audio and a Jabra Evolve2 55 Bluetooth output

### Changed

- Preserved `connectKnown()` on stable Omarchy while accepting `connectDirectly()` on the forward host
- Kept `omarchy-dev` as a diagnostic-only development-host fallback without changing the official release baseline
- Kept the 24-plugin contract and one production Quickshell process
- Coalesced mouse-wheel volume bursts and retained the effective audio sink during asynchronous refresh
- Aligned output, microphone, and app percentage typography and right-aligned the output value

### Fixed

- Prevented stale resolver updates from redirecting volume mutations to the default sink
- Preserved last-known output volume/mute state across temporary sink loss and reconnects
- Completed Bluetooth remove, fresh-pair, reconnect, route, and restore validation

### Known limits

- Physical multi-output, mixed-scale, hardware, and full visual-freeze acceptance remain explicit release gates
- Physical second-display, mixed-scale/hotplug, and enterprise-Wi-Fi acceptance remain stable-release gates
- Machine2 validation is intentionally out of scope for this public beta
- AUR publication remains unavailable until the package name can be registered

## 0.1.1-beta.9: Host-owned Notifications compatibility
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ process.</sub></p>
[Documentation](docs/README.md) ·
[Release status](docs/release-readiness.md)

The current `0.1.1-beta.10` candidate is reviewed against Omarchy
The current `0.1.1-beta.11` candidate is reviewed against Omarchy
`4.0.0-1` (source tag `v4.0.0`, revision `f0020448`) and Quickshell
`0.3.0.r20.g28771c7-1`. See the
[Shibumi host compatibility record](docs/architecture/quattro-compatibility.md)
Expand Down Expand Up @@ -58,7 +58,7 @@ for the latest validated host versions.
## Install

> [!IMPORTANT]
> `0.1.1-beta.10` is a package candidate. AUR registration is currently
> `0.1.1-beta.11` is a package candidate. AUR registration is currently
> unavailable, so the package is not published there yet.
> Until its release asset and AUR package are published, use the source path
> below. Shibumi supports Omarchy Quattro only.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.1-beta.10
0.1.1-beta.11
Loading