Skip to content

DevBerth v0.1.2

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:28
772b5ab

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 test for 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-app refreshed /Applications/DevBerth.app and the stable MCP helper from the same Release build.

Release provenance

This is a source-project release. It does not include a signed or notarized app binary.