On-device intelligence
A small, principled set of on-device helpers. The user chose what to follow; our job is to help them experience their own choices better, never to choose for them.
Lanai uses on-device intelligence to deepen your relationship with content you chose, never to choose for you. That’s the one-sentence constitution every AI feature has to pass before it gets built. The constitution is older than any of the features it governs, and it will outlive most of them.
What you’ll feel, not what you’ll see
Most apps wave the word AI around like a flag. We mostly don’t. The few places it shows up are useful, quiet, and yours to turn off. The intelligence layer is the room the lights are in — you notice the light, not the wiring.
A small visible indicator appears whenever an AI feature has been involved in something on screen. You always know. You can always opt back into the non-AI behaviour. The default state of every AI feature is off — a user who never turns one on still has a fully functional Lanai.
The six corollaries
The constitution implies six rules that every AI feature has to honour. They’re the same rules we use to decide whether to build a feature at all.
- Always opt-in. Default is no AI involvement. You ask for it.
- Always reversible. Every AI presentation has a one-tap escape — view in chronological order is always available.
- Always transparent. When AI is in the loop, there’s a visible indicator. No silent shaping.
- Always on-device. Apple’s on-device APIs only. No cloud AI processing. No Private Cloud Compute, by choice.
- Always optional. When the on-device APIs aren’t available — older device, region, OS-level opt-out — features gracefully degrade. Nothing is gated; nothing is required.
- Always in voice. AI-generated text appears in Lanai’s tone, never in chatbot tone. AI is plumbing, not personality. Windy is the only character in Lanai.
What it does
The v1.0 features are small on purpose. Each had to clear the constitution before it shipped.
- Alt-text suggestions in Compose. Attach an image, tap Suggest a description. On-device Vision runs; a suggestion appears. You accept, edit, or reject it. Never auto-fills. Never appears unless invoked.
- Smart image cropping in Export. When the post-as-image render needs to crop, two passes run on-device — focus analysis (faces, attention saliency) and content classification (text-heavy gets fit; photo gets fill; hybrids get the right thing). The crop lands where you’d land it yourself.
What cleanup looks like.
Four small repairs Lanai makes at the render layer — never on the post record, never on the network. The left column is what arrives. The right column is what you see.
-
Straight quotes & hyphens Tier 3 "It's the smallest thing," she said -- and the first thing I notice.
“It’s the smallest thing,” she said — and the first thing I notice.
Curly quotes, real apostrophes, an em dash where the keyboard typed two hyphens.
-
Mojibake recovery Tier 1 Café con leche, mañana. I’m running early.
Café con leche, mañana. I’m running early.
When UTF-8 got read as Latin-1 somewhere upstream, the page restores the original character without rewriting the post.
-
Sentence-boundary truncation Display A long thought that runs past the preview boundary and ends mid-sentence with no good place for the timeline to cut it off, leaving the reader hanging on a fragment that was…
A long thought that runs past the preview boundary and ends mid-sentence with no good place for the timeline to cut it off. More →
When a post overflows its row, Lanai cuts at the nearest sentence boundary instead of mid-word. Tap to read the rest in its full form.
-
Whitespace & ellipses Tier 2 One thing led to another... and then, well... you know how it goes.
One thing led to another… and then, well… you know how it goes.
Three dots become one ellipsis. Runaway spaces collapse to one. Nothing said gets unsaid — the post just stops fidgeting.
Long-press any post to see the original, character for character. Lanai refines display. It doesn’t “improve.”
What it doesn’t do — and never will
- No algorithmic feed ranking. Following is chronological. Period.
- No “For You” recommendations.
- No engagement optimisation. No “best time to post.” No streaks. Ever.
- No content selection. If a feature involves selecting which of N posts to display, it’s wrong by construction.
- No cloud AI processing of user content. Stricter than Apple’s own apps; that’s the choice.
- No silent involvement. AI never affects what you see without an indicator.
- No AI personality. No “I generated this for you.” No chatbot framing.
- No training on user data — ours, anyone’s.
- No AI-driven moderation. Quiet content overlays add a tap-to-view friction; they never silently filter.
The architectural part
The reason the constitution holds isn’t trust. It’s enforcement. All on-device AI work lives in one package called LanaiIntelligence, and only that package is allowed to import the on-device frameworks. Every feature that uses AI goes through a small interface in that package — never directly. If a future feature were to violate the constitution, it would have to do so visibly, in a place the constitution is the file next to it.
Said another way: the wiring is in one room. The light switch is on the wall outside.