Commit Graph
25 Commits
Author SHA1 Message Date
abkslmandNucleic afeeff96b1 Network Connection Logic Enhancement
Nucleic-Session: 93A70648-2057-4092-9372-860E1BA151D8
Co-authored-by: Nucleic <[email protected]>
2026-07-06 13:36:54 -07:00
abkslmandNucleic 1a99d5cae3 Network Connection Logic Enhancement
Nucleic-Session: 93A70648-2057-4092-9372-860E1BA151D8
Co-authored-by: Nucleic <[email protected]>
2026-07-06 13:36:45 -07:00
abkslmandNucleic 475447d103 Network Connection Logic Enhancement
Nucleic-Session: 93A70648-2057-4092-9372-860E1BA151D8
Co-authored-by: Nucleic <[email protected]>
2026-07-06 13:36:37 -07:00
abkslmandNucleic f1385adc72 Network Connection Logic Enhancement
Nucleic-Session: 93A70648-2057-4092-9372-860E1BA151D8
Co-authored-by: Nucleic <[email protected]>
2026-07-06 13:36:28 -07:00
abkslmandNucleic 546ef4eb3f Network Connection Logic Enhancement
Nucleic-Session: 93A70648-2057-4092-9372-860E1BA151D8
Co-authored-by: Nucleic <[email protected]>
2026-07-06 13:36:09 -07:00
abkslmandNucleic 5248bc0ff4 Network Reconnection Delay
Nucleic-Session: 4BE3E40C-E939-444C-8AED-93C0AFE13C07
Co-authored-by: Nucleic <[email protected]>
2026-07-06 12:49:20 -07:00
abkslmandNucleic 0bb4e453b7 Network Reconnection Delay
Nucleic-Session: 4BE3E40C-E939-444C-8AED-93C0AFE13C07
Co-authored-by: Nucleic <[email protected]>
2026-07-06 12:45:21 -07:00
abkslmandNucleic 810d791bf9 Network Reconnection Delay
Nucleic-Session: 4BE3E40C-E939-444C-8AED-93C0AFE13C07
Co-authored-by: Nucleic <[email protected]>
2026-07-06 12:45:16 -07:00
abkslmandNucleic 547d2a0c29 Network Reconnection Delay
Nucleic-Session: 4BE3E40C-E939-444C-8AED-93C0AFE13C07
Co-authored-by: Nucleic <[email protected]>
2026-07-06 12:45:07 -07:00
abkslmandNucleic 6292c7e723 Live Activity Refresh Delay
Nucleic-Session: 8C954A45-A16B-4E91-B9E6-9865809096D7
Co-authored-by: Nucleic <[email protected]>
2026-07-06 01:34:44 -07:00
abkslmandNucleic ab4efa13cd Settings Feature Enhancement
Nucleic-Session: 89BFAB13-D559-43FC-BE28-0B2639BECF0F
Co-authored-by: Nucleic <[email protected]>
2026-07-05 22:15:53 -07:00
abkslmandNucleic 6d6abc5c29 Settings Feature Enhancement
Nucleic-Session: 89BFAB13-D559-43FC-BE28-0B2639BECF0F
Co-authored-by: Nucleic <[email protected]>
2026-07-05 22:15:45 -07:00
abkslmandNucleic 383c8e1021 Settings Feature Enhancement
Nucleic-Session: 89BFAB13-D559-43FC-BE28-0B2639BECF0F
Co-authored-by: Nucleic <[email protected]>
2026-07-05 22:02:55 -07:00
abkslmandNucleic 8d940cf3c8 Settings Feature Enhancement
Nucleic-Session: 89BFAB13-D559-43FC-BE28-0B2639BECF0F
Co-authored-by: Nucleic <[email protected]>
2026-07-05 22:02:49 -07:00
abkslmandNucleic 2cc7eeb2b1 Fetch Historical Transcript Data
Nucleic-Session: 11465D90-A8F3-43AA-A1DC-37EA1EC1B909
Co-authored-by: Nucleic <[email protected]>
2026-07-05 19:27:45 -07:00
abkslmandNucleic 10e4e27a1a Fetch Historical Transcript Data
Nucleic-Session: 11465D90-A8F3-43AA-A1DC-37EA1EC1B909
Co-authored-by: Nucleic <[email protected]>
2026-07-05 19:27:31 -07:00
abkslmandNucleic eff6127773 Fetch Historical Transcript Data
Nucleic-Session: 11465D90-A8F3-43AA-A1DC-37EA1EC1B909
Co-authored-by: Nucleic <[email protected]>
2026-07-05 19:27:21 -07:00
abkslmandNucleic dabf0cf64a Fetch Historical Transcript Data
Nucleic-Session: 11465D90-A8F3-43AA-A1DC-37EA1EC1B909
Co-authored-by: Nucleic <[email protected]>
2026-07-05 19:27:15 -07:00
abkslmandNucleic a3bb7e5d61 Fetch Historical Transcript Data
Nucleic-Session: 11465D90-A8F3-43AA-A1DC-37EA1EC1B909
Co-authored-by: Nucleic <[email protected]>
2026-07-05 19:27:08 -07:00
abkslmandNucleic e5bc88113a nvrsion: Add shortened 8-char device resolution text to Approval.swift, refactor Session Sync Repair files, and update SyncClient.swift and RemoteStore.swift.
Nucleic-Promote: 1
Co-authored-by: Nucleic <[email protected]>
2026-07-05 04:35:47 -07:00
abkslmandNucleic 5168198656 nvrsion: Add: Reconnect Icon Update, fix mesh iPhone discovery for new Macs, fix session order adjustment to pin sidebar sessions for remote projects, fix session status synchronization for remote viewer Macs, fix session order adjustment for iOS app session list, fix session status synchronization for remote sessions, fix iOS app live activity height by removing the “<n> files changed” line, fix Tool Call Card Mesh so AI bash summaries transit the mesh layer to other Macs, replace “Resolved by mac-ui” in transcripts with device ID, fix Chat: Print Wait Message, fix Chat: Reconnect Icon Update, fix Chat: Activity Theme Adjustment for “attention needed” live activity theme.
Nucleic-Promote: 1
Co-authored-by: Nucleic <[email protected]>
2026-07-05 04:24:25 -07:00
abkslmandNucleic 368978bea8 nvrsion: Add: Global Icon For Remote Projects to display globe icon next to remote projects in sidebar, matching local projects in appearance, Fix: Chat: Remove Face ID Permission Text, Refactor: Chat: Live Activity Content Density to open app directly into waiting sessions when tapped, Refactor: Chat: Live Activity Content Density to refresh live activity info significantly faster, Refactor: Chat: Live Activity Content Density to refresh live activity info significantly faster, Fix: Chat: Live Activity Content Density to refresh live activity info significantly faster, Fix: Chat: Network Type Transition Optimization to reduce delay during network type switches, Feature Enhancement Planning: All devices in a mesh group should see and be aware of each other; “pair” reframed into “join”; scanning
Nucleic-Promote: 1
Co-authored-by: Nucleic <[email protected]>
2026-07-05 00:28:21 -07:00
abkslmandClaude Fable 5 3e25ef9559 feat(relay): wire the live Nucleic Private Relay into the desktop + iOS apps (mesh P2 complete)
The relay Worker (nucleic-edge at relay.nucleic.blakeslee.xyz) is deployed, so land the
formerly deploy-gated client side of the data path:

- NucleicProtocol/Sync/RelayTransport.swift: RelayAPI (one base URL for REST + WS,
  membership -> connection token trade), RelayWebSocket (ordered sends, ping keepalive,
  ping-confirmed connect), RelayFrameChannel (client leg, WireFraming inside WS binary,
  presence fail-fast when the room has no host), RelayPresence.
- NucleicCore/Sync/RelayAccess.swift: X25519 PoP enrollment (RelayEnrollment), room
  credential in the login Keychain (separate from the push credential), membership minting
  with re-enroll-on-401.
- NucleicCore/Sync/RelayListener.swift: host SyncListener demuxing the room socket into
  per-tag virtual FrameChannels via RelayEnvelope; presence-driven reaping; backoff redial;
  injectable RelayRoomSocket seam for tests.
- Wire: additive HostMsg.relayMembership(WireRelayMembership) pushed after every hello
  (SyncHost.register -> AppStore mint) so devices paired before the relay adopt it and the
  ~90-day token refreshes on each connect; the pairing QR also carries a bootstrap
  membership so first contact can ride the relay. Old clients ignore the unknown tag.
- AppStore: .relay joins the listener composite behind the Connection-methods checkbox
  (failure degrades to a status row), advertises relayRoomID in PeerAddresses, mints the
  QR bootstrap in beginPairing.
- Desktop UI: the Nucleic Private Relay toggle is enabled (was "coming soon"); the
  LAN-only banner offers it alongside Tailnet.
- iOS: relay is the last dial candidate in HostConnection pair + reconnect (10s handshake
  watchdog); PairedHost persists relayRoomID/relayMembershipToken/relayURL; the
  relayMembership push updates the registry in place; Settings shows Relay in Transports.

Tests: RelayTransportTests, RelayListenerTests, SyncHostTests relay push + QR bootstrap.
Full suite green (783 core + 113 protocol + 2 new); iOS simulator build succeeds. Live
smoke test against the deployed Worker passed end-to-end (PoP enroll, both token tiers,
two-socket frame round-trip through the Room DO with correct envelope tags).

Known limits: host revoke-on-unpair not wired (endpoint is admin-only); PeerClient
(Mac<->Mac) doesn't dial the relay yet.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-04 21:05:01 -07:00
abkslm b587702ff5 Merge claude/keen-shamir-122122 into dev (mesh P3 multiplexer)
The iOS [HostID: HostConnection] multiplexer: connect to all paired Macs at once, mirror the active
one, instant host switching, cross-host badge/Live Activity. Compile + demo-verified; the live
multi-connection path needs a two-Mac test (may be rolled back).

Resolves the RemoteStore.swift overlap with dev's Tailnet-node-name/auth-key change by taking the
multiplexer version (which moved the tailnet config into HostConnection); dev's authKey removal is
re-applied there.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

# Conflicts:
#	ios/NucleicRemote/NucleicRemote/Models/RemoteStore.swift
2026-07-04 18:56:54 -07:00
abkslmandClaude Opus 4.8 4f12b18d63 Mesh P3 (multiplexer, WIP): extract HostConnection engine
Begins the simultaneous multiplexer. HostConnection.swift is the per-host connection engine lifted
out of RemoteStore: one instance owns a single Mac's SyncClient, LAN→tailnet candidate chain,
reconnect backoff, tailnet-node lifecycle, and event stream, and keeps that Mac's projection
(connectivity, sessions, dashboard, capabilities, meshPeers). It talks back to its owner through a
Callbacks struct so aggregate concerns — the badge, Live Activity, notifications, and the single open
transcript — can be merged across hosts by the coordinator.

Not yet wired: RemoteStore still runs its own inline single-connection machine. The next step swaps
RemoteStore onto a `[HostID: HostConnection]` map (connect all paired Macs, aggregate their sessions,
route intents by host) — the behavior-critical part, to be verified with two real Macs. Compiles
(iOS Simulator BUILD SUCCEEDED); no behavior change yet (the engine is unused until the rewire).

Also: RemoteStore.friendlyTransportError made non-private so the engine shares it.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-04 17:56:31 -07:00