feat(ios): add native Git knowledge and device-only secrets

This commit is contained in:
冰朔 2026-08-03 22:27:09 +08:00
commit b30f814320
51 changed files with 3019 additions and 97 deletions

View file

@ -1,6 +1,10 @@
# Architecture
Tolaria is a personal knowledge and life management desktop app. It reads a vault of markdown files with YAML frontmatter and presents them in a four-panel UI inspired by Bear Notes.
HoloLake Era is the human and Agent entry to HoloLake worlds, channels, identity,
knowledge, and receipt-backed native execution. Its knowledge workspace retains
the mature Markdown graph and editor inherited from Tolaria, but the product is
not a renamed desktop vault and the mobile client does not emulate desktop
filesystem or credential behavior.
## Design Principles
@ -56,6 +60,22 @@ No field names, folder paths, or vault-specific values should be hardcoded in th
Notes are not just documents — they are nodes in a structured graph of people, projects, events, responsibilities, and ideas. Every design decision should ask: "Does this make the knowledge graph easier for a human *and* an AI to navigate?" Conventions that are legible to both are better than conventions that are legible only to one.
### Mobile knowledge and credential boundary
On iOS, HoloLake opens app-owned foundation and personal knowledge directories
inside the sandbox rather than calling the desktop folder picker. A synchronized
personal lake is identified by `.hololake-sync-policy.json`: ordinary Markdown
can be written through the authenticated server into the registered code-channel
repository, while `本地密钥/**`, internal metadata, and Git internals are excluded.
The knowledge Agent uses the same bounded read/write tools as the desktop model
target. A normal page create or edit is acknowledged only after an optimistic,
atomic bare-repository update returns the exact new commit. Local state is rolled
back when that receipt is absent. iOS account sessions and user model keys are
stored in non-synchronizing, this-device-only Keychain entries; raw values never
enter Markdown, Git, renderer state, telemetry, or server receipts. See
[ADR 0173](adr/0173-mobile-git-knowledge-and-device-secret-boundary.md).
### Three representations, one authority
Vault data exists in three forms simultaneously: