Skip to content

feat: add daemon-owned Familiar companion - #35

Merged
BunsDev merged 74 commits into
mainfrom
feat/familiar-companion
Jul 31, 2026
Merged

feat: add daemon-owned Familiar companion#35
BunsDev merged 74 commits into
mainfrom
feat/familiar-companion

Conversation

@BunsDev

@BunsDev BunsDev commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

  • load and validate the paired daemon's authoritative Familiar roster rather than hard-coding archetypes
  • persist profile-scoped selection and pin exact identity snapshots across on-device and Companion sessions, resume, fork, browsing, and Spotlight
  • harden Companion pairing/traffic authority plus local session persistence, recovery, deletion, indexing, cancellation, and resource bounds
  • keep Familiar identity cosmetic: it never changes models, tools, permissions, or sandbox access

Validation

  • fresh holistic branch review: no Critical or Important findings
  • ./scripts/build-xcframework.sh
  • Rust: 275 passed, 1 ignored; check, clippy -D warnings, and fmt clean
  • Swift: 445 simulator tests passed; strict SwiftLint clean
  • generic iOS Simulator build passed
  • regenerated UniFFI bindings match the committed output

Closes #12

BunsDev and others added 30 commits July 29, 2026 20:52
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Centralize checked session-storage paths, validate SQLite sidecars and persistence leaves, and preflight destructive recovery before index mutation.

Path validation remains std path-based and therefore cannot provide descriptor-relative TOCTOU guarantees.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
BunsDev and others added 27 commits July 30, 2026 17:55
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply Familiar byte limits after whitespace normalization so bounded retained values preserve the established trim contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Pin no-Familiar retries to their verified daemon endpoint and coalesce overlapping checks for the same persisted pairing without returning stale authority.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reject oversized model records before filesystem mutation, let direct deletion bypass corrupt target metadata, and preflight target artifacts before recovery can mutate unrelated state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the app-owned observer graph stable across SwiftUI body reevaluations instead of constructing throwaway root state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Defer staged transcript durability to one sync, release parsed source entries before staging, and retain only generated UUIDs for index publication.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reject deletion during chat operations or for the installed session, route the iPad browser through shared chat ownership, and keep offline Familiar opt-out available.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the obsolete fixed-archetype wording with the daemon-owned, profile-scoped, session-pinned behavior shipped for issue #12.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Persist the completed review follow-ups, close the upstream SQLite atomicity task, and align issue #12 tracking with the daemon-owned roster.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 31, 2026 14:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@BunsDev
BunsDev merged commit f6c83dc into main Jul 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Daemon-owned Familiar companion

2 participants