Haptica
Haptica is the visible identity of the Guardian phone app, and by April 20, 2026, also the company name attached to 1Context. Inside 1Context it names the warmer, user-facing chat client that sits on top of the lab relay and memory work, rather than the older Guardian branding that began as a more technical archive and relay project. Its current state is a real iOS/Android mobile app with signed Release builds, local shell polish, relay-backed chat, attachments, and device-proven behavior, though still tied to lab infrastructure.
Origin
Haptica appeared during the April 11 mobile-app push, when the Guardian app crossed through a branding and navigation overhaul. The visible app changed labels, placeholders, app name, dashboard copy, icon, splash, fonts, colors, and iOS build metadata. The change happened while the app was also moving away from a hand-rolled shell: old drawer files, swipe zones, custom transition behavior, and raw shell components were being replaced by Expo Router drawer groups, centralized design tokens, design primitives, haptics, motion tokens, DrawerContent, and Screen.
The pressure behind the rename was product discipline. Guardian had already gained server-owned turns through Guardian Lab Relay, but the phone app still felt like a relay test harness in places. Haptica marked the attempt to make that client feel like an everyday chat app: named, installable, navigable, and believable on actual phones.
Role in 1Context
Haptica is the main phone-facing client in 1Context. It consumes relay-backed conversations, exposes chat affordances to humans, and tests whether protected memory can feel ordinary enough to use outside the development loop. It is downstream of Guardian Lab Relay, which owns execution and durable turn state, and adjacent to the broader 1Context memory stack: pages, sessions, media, tool traces, capture, and agent proposals.
Its role is not to define the whole 1Context system. The April 24 life-story places Guardian/Haptica beside Puter, Phonecapture, Littleguy, and Fish as one client and capture path among several. Haptica matters because it is where the memory and relay ideas meet a user’s phone: app switching, keyboard geometry, queued messages, attachments, share sheets, and permissions all become part of whether the system is real.
History
On April 11, Haptica’s visible branding landed alongside a larger app-shell migration. The work touched labels, copy, app identity, icon and splash treatment, fonts, colors, and iOS build metadata. Builds went onto Paul’s phone and later both Paul’s and Jackie’s phones. The same day exposed instability in the old navigation approach: drawer behavior, Expo Router routes, Reanimated gestures, iOS back stacks, and white transition flashes all fought each other. The response was a formal shell migration and a move toward reusable design primitives.
April 12 focused on Release behavior and device proof. ios/Haptica/AppDelegate.swift was changed so standalone iOS builds prefer the embedded main.jsbundle instead of reaching for the dev-client bridge.bundleURL. xcodebuild proved the artifact; the simulator launched with Metro off; physical installs followed. Paul’s phone reported Haptica 2.0.0 (64), while JavaScript metadata reported build 68 and source hash 2b56a2d1, showing that native packaging and JavaScript identity could diverge.
The same day refined interaction details. Drawer gestures moved toward full-screen swipe behavior through src/design/gestures.ts, with vertical failure offsets preserved so scrolling could still win. Shell components replaced raw Pressables with AppPressable, icon buttons gained accessibility labels, and hardcoded shadows were replaced with design tokens. Chat geometry also improved: the down-arrow shortcut was moved into a better keyboard-aware position, and queued assistant labels were removed so queued user messages looked like normal chat rather than scheduler internals.
On April 20, Haptica’s mobile polish continued. Jackie’s iPhone received a signed Release build after Expo stalled and xcrun devicectl handled final install and launch. Composer behavior changed so users could keep typing during a streaming model response while the send button remained Stop. A parity plan against Claude.ai and ChatGPT added retry for errored assistant messages, code copy, syntax highlighting attempts, autofocus, Shift+Enter, structured tool cards, drawer row actions, export/share, attachments, and a relay contract bump. Photo attachment work required NSPhotoLibraryUsageDescription in Info.plist and app.json before iOS would show the permission prompt.
Current State
As of April 24, 2026, Haptica is the renamed phone UI for Guardian, with a warmer visual language and a Release iOS build that launches without Metro. It supports practical chat behaviors such as retry, stop, share, code copy, timestamps, rename/delete, queued composer behavior, attachments, and photo permissions. It remains connected to lab infrastructure, but it is no longer only a dev-server demonstration.
The app’s maturity is measured by device evidence rather than screenshots alone. It has been built, installed, and launched on Paul’s and Jackie’s iPhones, while failures such as Apple CoreDevice tunnel errors are treated as installation plumbing rather than proof that Haptica itself is broken.
Relationships
Haptica is closely linked to Guardian, its predecessor and underlying app lineage. It depends on Guardian Lab Relay for server-owned execution and durable turns. It belongs inside 1Context as the phone client, while Puter and Phonecapture represent other capture and memory routes. Its product language also overlaps with Agent UX, because the app is one place where agent behavior has to become legible to humans.
Open Questions
The main unresolved issue is distribution. Haptica can run as signed Release artifacts, but trusted installation across family devices, Apple developer trust, build identity, and routine update flow remain operational work. The relay credential question also affects Haptica directly: a phone chat client cannot depend indefinitely on a human Claude.ai subscription quota bucket behind the relay.