Skip to content

PulseUsage v0.7.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@abyssbugg abyssbugg released this 06 Jul 17:40

PulseUsage v0.7.0-rc.1

Release Candidate for v0.7.0.

Architecture Modernization

  • Decomposed the 4,816-LOC host_api.rs monolith into 13 cohesive, single-responsibility modules (logging, fs, plist, crypto, env, sqlite, ls, http, keychain, ccusage, utils, redaction, shared).
  • Extracted ProbeDeadline and redaction logic into shared utilities.
  • Moved host API test coverage alongside extracted modules.

Capability Enforcement

  • Introduced HostCapability and HostCapabilitySet for least-privilege host API access.
  • Plugins now declare required host APIs through hostCapabilities in schema v2 manifests.
  • The orchestrator injects only requested host APIs; undeclared APIs are unavailable by design.

Plugin Platform

  • Migrated all 18 bundled providers to explicit hostCapabilities declarations.
  • Provider metadata validator now accepts schema v1 and v2 and validates hostCapabilities strings.
  • Fixed latent httpRequest gaps for providers using ctx.util.request.

Compatibility Layer

  • Retained the v1 capability inference map as a platform compatibility contract for third-party plugins.
  • Added runtime warning when a plugin falls back to legacy capability inference.
  • Documented removal policy: not before v0.9.0 and only after measured schema v2 adoption.

Diagnostics Improvements

  • Added capability provenance to provider diagnostics:
    • schemaVersion
    • capabilitySource (explicit or inferred)
    • capabilityCount
  • Diagnostics panel now shows schema version and capability source.
  • Added 14 compatibility regression tests.

Security Improvements

  • Capability-gated plist, sqlite.exec, and other host APIs.
  • Verified dangerouslyIgnoreTls remains localhost-only.
  • Reduced injected host API surface per plugin.

macOS 27 Compatibility

  • Keychain writes include -a account for security add-generic-password compatibility on macOS 27.
  • Keychain reads support optional account argument via Opt<String>.

Validation

  • Rust tests: 163 pass
  • JS tests: 1110 pass
  • Provider validator: 18/18 pass
  • Plugin bundling: 18/18 providers
  • Release guards: pass
  • Live smoke test on macOS 27.0: app launched, menu bar active, providers probed, keychain/local storage/config persistence verified

Artifact

  • PulseUsage_0.7.0_aarch64.dmg
  • SHA256: 43ea106d3e2503699d8615a3447108341ec12121f01f7bca1562705155b30d2f
  • Size: 11,479,025 bytes

Known Limitations

  • Ad-hoc signing: first launch requires Gatekeeper bypass (Right-click > Open).
  • No auto-updater: direct-download distribution only.
  • Perplexity Agentic Research remains intentionally unclassified pending evidence.
  • Open issue #26 (Antigravity LS probe hardening) remains a non-blocking enhancement.