Skip to content

Trulana v1.2.1 — macOS Desktop MVP

Latest

Choose a tag to compare

@machine-squelch machine-squelch released this 25 Apr 14:05
· 32 commits to main since this release
Immutable release. Only release title and notes can be modified.

Trulana v1.2.1 — macOS Desktop MVP

v1.2.1 corrects release metadata so the app bundle version, visible UI version, and GitHub release tag all match.

Trulana is a local-first private context system that lets apps and AI agents query useful context without owning your data. Context stays local. Only redacted answers leave the device.

This release ships the same desktop shell UI, hardened agent approval flow, enforced access scopes, and signed + notarized macOS build that v1.2.0 introduced — with all version strings consistent end-to-end.


What's New in v1.2.1

Release-integrity hotfix

  • CFBundleShortVersionString is now 1.2.1 (v1.2.0 was incorrectly 1.0.0)
  • CFBundleVersion is 4
  • The visible UI sidebar label is v1.2.1
  • The MCP server _serverVersion is 1.2.1
  • The git source tree on main now reflects the production hardening that was already in the v1.2.0 binary

No behavior changes vs v1.2.0.


Carried over from v1.2.0

Desktop shell UI

A proper macOS desktop interface for managing local context, approvals, and agent access instead of a CLI-first workflow.

First-contact agent approval

New agents are not auto-approved. First contact creates a pending request that requires explicit user approval before access is granted.

Scope narrowing before approval

Users can approve only the scopes they want. Requested scopes can be narrowed before activation. Stored granted scopes become authoritative and cannot be silently expanded later.

Enforced scope checks

  • context.read is required for context queries
  • monetize.write is required for monetize / lease offer routes

Tokens without the required scope are rejected.

Empty-vault no-echo protection

If no vault match exists, Trulana no longer echoes the caller's raw query back. This closes an information-disclosure path and ensures raw context is not reflected unnecessarily.

Signed + notarized macOS release

  • Developer ID signed (Adam Gurley · 7S7QY5ND9Q)
  • Apple notarized
  • Stapled
  • Gatekeeper accepted (source=Notarized Developer ID)
  • Universal binary (x86_64 + arm64)
  • Hardened runtime enabled

License

Business Source License 1.1 (BUSL).

Source available. Commercial production use by a commercial entity requires a separate commercial license from AdamsLocal LLC. This is not MIT and is not OSI open-source.


Known Limits

  • macOS only public binary
  • Signing + notarization are currently manual, not yet automated in CI
  • Repository / source access may remain private during commercial rollout
  • No HIPAA, SOC 2, FedRAMP, or other regulatory certifications are claimed
  • Audit logs are encrypted, but not cryptographically tamper-evident
  • MCP per-agent rate limiting is not yet enforced
  • NER uses keyword dictionaries (on-device LLM redaction is a future phase)

Upgrade Notes

v1.0.0

Signed and notarized, but predates the hardened approval and scope-enforcement model. Do not use as the primary public release.

v1.1.0

Desktop UI milestone, but not shipped as a signed public artifact.

v1.2.0

Correct security model and signed + notarized, but the bundle and UI reported themselves as 1.0.0 due to a stale Flutter version-config cache at build time. Functionally equivalent to v1.2.1 but version-mislabeled.

v1.2.1

The current correct public baseline. Recommended.


Recommended For

  • Privacy-first AI workflows
  • Local agent systems
  • Personal AI infrastructure
  • Teams that want context retrieval without cloud custody of sensitive data

Verification

codesign -dvvv trulana.app
  Identifier=com.adamslocal.trulana
  Format=app bundle with Mach-O universal (x86_64 arm64)
  flags=0x10000(runtime)
  Authority=Developer ID Application: Adam Gurley (7S7QY5ND9Q)
  Authority=Developer ID Certification Authority
  Authority=Apple Root CA
  TeamIdentifier=7S7QY5ND9Q
  Notarization Ticket=stapled

spctl --assess --type execute --verbose=4 trulana.app
  accepted   source=Notarized Developer ID

xcrun stapler validate trulana.app
  The validate action worked!

After download, extract with macOS Finder (double-click) or ditto -x -k rather than unzip, since unzip strips the resource-fork extended attribute that holds the stapled notarization ticket.


Contact

Private testing, licensing, and security inquiries:

adam@trulana.com