J3vb
52659e4a39
Merge pull request #1200 from J3vb/feat/narrow-tauri-capabilities
...
feat(client): narrow Tauri HTTP capability scope
2026-07-20 16:25:26 +02:00
J3vb
59ec405595
docs: record final Tauri capability posture and residual risk
...
Update the security doc's capability section with the deny list, the fact
that `http:allow-fetch` is the only URL-scoped HTTP identifier, and why
the https wildcard cannot be removed without moving the link-preview
fetch into Rust. Note under Known Limitations that narrowing the plugin
scope alone does not bound exfiltration while CSP `connect-src` allows
`https:` to any host. Add a capability row to the client architecture
doc and mark the design note implemented.
2026-07-20 14:51:23 +02:00
J3vb and Claude Fable 5
825a1d0eb2
docs: document the GIF proxy endpoints, gif.api_key, and degradation contract
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 13:29:57 +02:00
J3vb
e65a7d6a70
fix: harden server update signing
2026-04-02 23:35:11 +02:00
jevb
dc35f8ea4b
fix: client security hardening (19 fixes across Rust + TypeScript)
...
Addresses findings from comprehensive security review of the Tauri client:
Critical:
- Scope fs:allow-write-file from ** to $APPDATA/**,$APPLOG/**
- Validate server_url scheme (https://) in update_commands.rs
High:
- Change CRED_PERSIST_LOCAL_MACHINE to CRED_PERSIST_ENTERPRISE (per-user)
- Remove password from IPC response (#[serde(skip)] on CredentialData)
- Auto-login uses stored token instead of password
- Gate open_devtools behind #[cfg(feature = "devtools")] at registration
- Validate remote_host for CRLF/null in livekit_proxy
- Guard icons.ts innerHTML with runtime check
- Add file upload MIME type allowlist
- Clear pendingTotpPartialToken after use
Medium:
- Add sandbox attribute to YouTube iframes
- Remove image/svg+xml from SAFE_MIME_TYPES
- Strip trailing punctuation from linkified URLs
- Validate host format in api.ts setConfig
- Cap error messages at 200 chars (anti-phishing)
- Rate limit search requests (500ms interval)
- Validate Tenor GIF URLs against trusted origins
- Sanitize notification titles (control chars + length cap)
- Validate ptt_set_key vk_code range (1-254)
- Add host validation to store_cert_fingerprint
Docs:
- Add "Client Security Hardening" section to docs/security.md
2026-03-31 19:11:36 +02:00
jevb
deda095db1
test: add WS coverage tests + refactor handlers, update docs
...
Add hub, livekit, export, and coverage boost tests for Server/ws.
Refactor handlers_chat.go and serve.go for testability.
Sync docs: fix backup endpoint path, add DELETE /auth/account,
add audit logging + account deletion to security.md.
2026-03-31 18:07:23 +02:00
jevb
ec5775910f
docs: add public documentation for contributors and users
...
Created 12 public docs derived from internal vault:
- Setup guides: quick-start, server-configuration, livekit-setup, deployment
- Networking: port-forwarding, tailscale
- References: api, protocol, schema, client-architecture
- Community: contributing, security
Updated .gitignore to only exclude docs/brain/ (internal vault),
allowing docs/ to be tracked. Updated README with expanded quick
start, voice/video setup, networking ports, and doc links.
2026-03-30 22:31:06 +02:00