·
9 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
[0.7.3] - 2026-08-31
This is the security fix-forward for 0.7.0. The protected 0.7.1 and 0.7.2
tag workflows both stopped before creating a GitHub Release: 0.7.1 failed its
release-note contract, while 0.7.2 exposed and removed a non-hermetic proxy
unit test that depended on public httpbin.org. Publication remains gated on
protected-branch CI and the tag-triggered immutable-release workflow. The web
changes also require the included Supabase migration before deployment; source
publication does not imply that migration or the web application is active in
production.
Breaking security changes
phantom execandphantom startaccept only Phantom's exact built-in API
routes. Repository-defined or altered proxy destinations now fail closed
until a future trusted-terminal approval format can bind custom routes to a
machine-local decision..phantom.tomlkeeps its committed project ID as the portable cloud/team
identity, while local vault, shadow, and scheduler state are namespaced from
the canonical checkout directory. A clone or move therefore keeps its remote
identity but starts with isolated local state and cannot select another
checkout's vault through repository config.- Protected connection strings such as
DATABASE_URLare no longer injected
into an agent child process. These now fail closed pending a protocol-aware
database broker. - Runtime mock-rotation and alternate Stripe endpoint environment variables no
longer activate in shipped binaries. Hermetic mock behavior is compiled only
into unit tests.
Security
- Pins Phantom Cloud authentication to
https://phm.dev/api/v1; runtime API
origin overrides are rejected before cloud network access. - Replaces secret-derived response labels with the constant
[REDACTED:vault-secret], including short and Unicode values. - Disables upstream redirects, buffers and validates complete bounded request
bodies before contacting an upstream, and bounds buffered upstream responses
before redaction. - Rejects unsafe file-vault project IDs before creating any vault path.
- Makes audit statistics verify the HMAC chain and treats unsigned records
appended after a signed chain as tampering. - Makes GitHub login identity immutable to ordinary user updates, resolves team
invites through a normalized unique identity, and moves device-code issuance
plus per-client/global rate limiting into one database transaction. - Removes device codes from OAuth URLs and analytics page-view capture, strictly
validates team X25519 public keys, and adds browser isolation headers. - Updates Rust and video dependency graphs to resolve actionable advisories.
Breaking changes and migration
- Treat
0.7.0and the unpublished0.7.1and0.7.2tags as superseded, and
upgrade to0.7.3before using cloud, team,
proxy, connection-string, provider-rotation, or agent execution workflows. - Local vault namespaces now use a domain-separated SHA-256 digest of the
canonical checkout path. The former 64-bit path namespace is deliberately
not opened automatically because collision compatibility would preserve a
cross-vault selection risk. Before upgrading an offline-only0.7.0
checkout, create an encrypted backup withphantom export --output FILEfrom
a trusted terminal; after upgrading, restore it withphantom import FILE.
Cloud/team users can instead repopulate through a normal encrypted pull.
Never copy plaintext secret values into a repository.
What's Changed
- release: make v0.7.3 proxy tests hermetic by @masonwyatt23 in #85
- release: bind artifacts to immutable tags by @masonwyatt23 in #86
Full Changelog: v0.7.2...v0.7.3