DevBerth v0.1.2
What changed
#14 — fix: make verified service stops actionable
What changed
- Routes inferred Homebrew, user launchd-parented, and supervisor-owned listeners through exact fingerprint-and-listener revalidated process control instead of blocking on unverified service-manager metadata.
- Falls back from an unverified Docker Compose scope to the exact Docker Engine container ID, never the shared Docker Desktop host process.
- Accepts case-only path spelling differences on case-insensitive macOS volumes while continuing to reject real symlink components in Compose mutation contexts.
- Escalates DevBerth-managed process groups from graceful stop to a second ownership validation and force stop when the configured timeout expires.
- Makes project Stop All attempt every active service and report exact per-service failures instead of aborting at the first failure.
Why
Observed Cloud project services were marked active but could not be stopped because parent PID 1 and Homebrew-path heuristics were treated as controller authority, while a case-only GitHub/github path difference incorrectly invalidated an otherwise exact Compose context.
Impact
Users can stop each strong, same-user service independently and can stop whole projects without one failed target blocking the rest. Protected system/root processes, weak or changed fingerprints, stale listener ownership, and real symlinked Compose contexts remain blocked.
Validation
- Focused
xcodebuild testfor the implementation branch's ownership, Docker, and managed-process-group suites passed after aligning their existing expectations. - The complete final stack passed all 187 tests with zero failures or skips.
Scripts/build-and-install-apprefreshed/Applications/DevBerth.appand the stable MCP helper from the same Release build.
Release provenance
- Merge commit:
772b5ab31f58325fdc9349078c1b17168a67926f - Pull request: #14
- Compare v0.1.1...v0.1.2
This is a source-project release. It does not include a signed or notarized app binary.