chore: remove tor from startos core

Tor is being moved from a built-in OS feature to a service. This removes
the Arti-based Tor client, onion address management, hidden service
creation, and all related code from the core backend, frontend, and SDK.

- Delete core/src/net/tor/ module (~2060 lines)
- Remove OnionAddress, TorSecretKey, TorController from all consumers
- Remove HostnameInfo::Onion and HostAddress::Onion variants
- Remove onion CRUD RPC endpoints and tor subcommand
- Remove tor key handling from account and backup/restore
- Remove ~12 tor-related Cargo dependencies (arti-client, torut, etc.)
- Remove tor UI components, API methods, mock data, and routes
- Remove OnionHostname and tor patterns/regexes from SDK
- Add v0_4_0_alpha_20 database migration to strip onion data
- Bump version to 0.4.0-alpha.20
This commit is contained in:
Aiden McClelland
2026-02-10 13:28:24 -07:00
parent 1974dfd66f
commit 2ee403e7de
53 changed files with 3147 additions and 9306 deletions

View File

@@ -279,6 +279,33 @@ Pending tasks for AI agents. Remove items when completed.
| `sdk/base/lib/interfaces/Host.ts` | SDK `MultiHost.bindPort()` — no changes needed |
| `core/src/db/model/public.rs` | Public DB model — port forward mapping |
- [ ] Remove Tor from StartOS core - @dr-bonez
**Goal**: Remove all built-in Tor functionality from StartOS. Tor will now be provided by a service
running on StartOS rather than being integrated into the core OS.
**Scope**: Remove the Arti-based Tor client, onion address management in the networking stack, Tor
hidden service creation in the vhost/net controller layers, and any Tor-specific configuration in the
database models. The core should no longer start, manage, or depend on a Tor daemon.
**Key areas to modify**:
| Area | Change |
|------|--------|
| `core/src/net/tor/` | Remove the Tor module entirely (Arti client, hidden service management) |
| `core/src/net/net_controller.rs` | Remove Tor hidden service creation/teardown in `update()` |
| `core/src/net/host/address.rs` | Remove onion address CRUD RPC endpoints (`address.onion.add`, `address.onion.remove`) |
| `core/src/net/host/binding.rs` | Remove onion-related fields from `NetInfo` |
| `core/src/net/service_interface.rs` | Remove onion-related variants from `HostnameInfo` |
| `core/src/db/model/` | Remove Tor/onion fields from public and private DB models |
| `sdk/base/lib/interfaces/Host.ts` | Remove onion-related types and options from the SDK |
| `web/projects/ui/` | Remove onion address UI from interfaces pages |
| `Cargo.toml` / dependencies | Remove Arti and related Tor crate dependencies |
**Migration**: Existing onion address data in the database should be cleaned up during migration.
Services that previously relied on the OS-provided Tor integration will need to use the new Tor
service instead (service-level integration is out of scope for this task).
- [ ] Auto-configure port forwards via UPnP/NAT-PMP/PCP - @dr-bonez
**Blocked by**: "Support preferred external ports besides 443" (must be implemented and tested