Repository navigation
Dieter 0.5.404
The open-source foundation release. It is a clean break: reinstall the daemon
and apps; nothing migrates from 0.4.
Upgrading
0.4 and 0.5 cannot talk to each other, so update everything in one go:
-
Gateway. Deploy the 0.5.404 gateway bundle. Its signature now comes from
.github/workflows/release.yml, so a deployment controller that pins signer
workflows must trust that identity first. The new gateway rejects 0.4 apps
and daemons. -
Daemons.
- macOS: run
brew upgrade dieter, thendieter setupto register the
service and privacy helper under the new identifiers. - Linux: run
dieter machine updateon the host, or reinstall with
install.sh.
- macOS: run
-
Apps.
- macOS:
brew install --cask dbpprt/tap/dieter-app, or download
Dieter-macOS-arm64.zip. - iOS: the TestFlight build.
- Android: install
Dieter-Android.apk. It is a new app
(com.getdieter.android), so remove the old one.
Sign in again on every app.
- macOS:
Breaking
-
Identifiers. Every app and helper moves to
com.getdieter.*:com.getdieter.mac,com.getdieter.iosandcom.getdieter.android;com.getdieter.daemon,com.getdieter.captureandcom.getdieter.privacy.
Android and macOS installs are new apps. Sign in again on every device, and
re-register the macOS privacy helper (dieter setup). -
Apple team. Signed binaries, the privacy helper and the installer trust
only teamFNGU8JFNPL. -
iOS sign-in uses the
dieter-ios://callback. The gateway must allow it
(the deployment renders it). -
Daemon API.
dieter.v1is one service per domain (CardService,
ConversationService,ScreenService, …) instead of oneDieterService.- RPC paths change, so clients, daemons and gateways below 0.5 cannot talk to
0.5. - The gateway's minimum client and daemon version is
0.5.0-dev.0.
- RPC paths change, so clients, daemons and gateways below 0.5 cannot talk to
-
Release signing. Checksums and the gateway deployment bundle are signed
only by.github/workflows/release.yml@refs/heads/main. -
Removed. The private OMP/Pi model routes (Tailscale GLM, Box Qwen) are
gone from the default catalog.
Changed
- Repository layout.
apps/kotlinis one Gradle build: core, Compose UI and the Android app.apps/appleholdsDieterKit, the Mac app and the iOS app.native/macosis a SwiftPM package for the daemon helpers.- Vendored code moved to
third_party/, the website tosite/, and the
gateway deployment files todeploy/.
- Daemon. The startup wiring moved out of the CLI into
internal/daemon,
with one configuration loader and per-domain API handlers.- Unknown server errors are reported as
Internal, so clients retry them
instead of dropping the command.
- Unknown server errors are reported as
- Schemas. All
.protofiles live inapi/proto.just generateruns buf
for Go and Swift and fails CI on drift; Kotlin generates from the same files. - Builds.
- Fastlane builds, signs and distributes using its built-in actions.
- The Mac app now has an Xcode project, built with
build_mac_app. - Plain
go,gradlewandswiftcommands work without Fastlane.
- CI.
- Pull requests run only the affected checks, behind one required
ci-ok
check. - Failures show as annotations, every job writes a summary, and every test
runner reports JUnit. - Dev releases are cut nightly, not on every push.
- Pull requests run only the affected checks, behind one required
Fixed
- Installer. It verified the old Apple team, so it rejected current
releases. - Privacy helper. It authorized clients signed by the old team only.
- Local daemon on a random port.
dieter serve --addr 127.0.0.1:0now
records the port it actually bound, so the CLI can reach it. - Fixture gateways. They no longer reinstall the harness runtime for every
test fixture.