- Version:
0.0.1(platform/shared/src/version.ts:1single source) - Supported:
0.0.1(Production Release v0.0.1 — deepwork.slim/deepwork/production-release-v0.0.1.mdPhase 4)
| Version | Supported |
|---|---|
0.0.1 |
✅ (current — package.json:3 / tauri.conf.json:4 / Cargo.toml:3 unified via ASTRA_VERSION) |
< 0.0.1 |
❌ (pre-release — upgrade to 0.0.1) |
Do not open a public issue for a security report.
- Email the maintainers privately (or open a private security advisory on GitHub) with: affected commit (
git rev-parse HEAD), repro steps, impact, and whetherBackendsInfo(runtime/daemon/src/views.ts:12security.store3-state) surfaces it. - We will acknowledge within 3 business days and share a fix timeline.
- Please allow us to ship a fix before public disclosure; we will credit you unless you prefer anonymity.
Scrub secrets from repros — SecretGuard (runtime/daemon/src/local-api.ts:1) never logs keys, and health security.store reports only REAL/MOCK/UNAVAILABLE, never key material.
- Loopback-only daemon —
runtime/daemon/src/local-api.ts:1+runtime/daemon/src/boot.ts:65bind127.0.0.1:0(H3+crossws analog,DataPlaneGate16 → 503backpressure-droppedatviews.ts:78droppedDataRequests); no remoteASTRA_DAEMON_HOSTwithout auth (deferred per ADR-0015-auth-parity.md — local-first vault vs AIRI OIDC). - RuntimePaths jail —
platform/shared/src/runtime-paths.ts:1isInside/assertInside/jailJoinviapath.join/resolve+startsWith(win32toLowerCaseatruntime-paths.ts:48),homedirinjection +ASTRA_MODELS_DIR/ASTRA_DB_PATHenv overrides;tools/src/entitydir.ts:78+tools/src/commands/doctor.ts:212delegate to it (noHOME/.astrastring concat). - Production fail-closed —
runtime/daemon/src/runtime.ts:253isProduction(profile)→RangeError t('profile.production.mockRefused')forInMemoryMemoryStore/StubMemory/Mock*without explicit injection;boot.ts:81warnst('profile.production.mockWarning')viafanoutSinkwhenprofile !== production && mock backend(healthprofilesleg atviews.ts:68). - Secret store —
platform/security/src/selectSecretStore→NativeBackedSecretStore(DPAPI/Keychain/libsecret) vsUnavailableSecretStorefail-closed;MemoryConsentStoredurablehasDurableConsentcritical-tier gate atplatform/desktop/src/consent.ts:1; mock stores gatedASTRA_PROFILE=test|simulation(assert*MockAllowedatplatform/browser/src/adapter.ts:38etc.). - Plane-correct transport —
runtime/daemon/src/protocol.ts:70DAEMON_ROUTEScontrol 10 vs data 5,local-api.ts:87DataPlaneGate16,protocol.ts:70DAEMON_ROUTE_LISTsingle source for health/doctor counts. - Typed failures —
SpineError/DaemonError/GateError/ObservationErrorwitht()i18n (runtime/shared/src/i18n.ts:555profile.production.*), never message matching.
- Signing/notarization/updater —
apps/desktop/src-tauri/tauri.conf.json:29bundle.targets:"all"per-OS (msi/dmg/deb),createUpdaterArtifactsdeferred perdocs/research/godot-engine-decision.md:1supply-chain gate (D7); CIcargo buildvia .github/workflows/ci.yml gates link errors but does not sign. - Unix secret store — win32 DPAPI real, unix
Unavailablehonest-degraded (security.store:UNAVAILABLEatruntime.ts:137); tracked in ADR-0015. - Telemetry — file+console fanout (
runtime/core/src/logger.ts:39daily~/.astra/logs/daemon-YYYY-MM-DD.logviagetLogsDir()), no OTEL/sentry export (health countersdroppedDataRequests/planeViolationsatviews.ts:78only). - Fonts — ChillRoundM/Xiaolai acknowledged but NOT vendored (
apps/desktop/src/styles.css:7+apps/web/src/styles.css:6OFL note,docs/licenses.mddeferred) — no@font-faceFOIT.
None yet for 0.0.1 — future entries will cite file:line and link to the fixing commit.
If you found a potential bypass of any of the above (jail traversal, loopback escape, mock-in-production, scrub leak), treat it as a security report per §2.