A serverless control plane that keeps conversations canonical while isolated, pluggable agent workers do the work.
MVP in progress. The canonical session core, Telegram path, local WebUI, deterministic worker, and feature-disabled provider adapters are implemented. The first launch frontend is WebUI with Yandex ID login. MVP now requires both one ready-made harness on an attached worker and Sessionless-managed cloud execution without a user-maintained host. The managed path needs a real bounded agent loop, compaction, useful constrained MCP and web search. These capabilities and their product E2E remain unactivated; delivered adapters and fixtures are groundwork. Telegram messaging/Cloudflare rollout stays post-MVP.
Explore the documentation · Run the local stand · Run Dockerless on macOS · See the MVP plan
The implemented WebUI running against the repository's deterministic local fixture. No cloud account, provider credential, or private user data is used.
Sessionless gives every frontend the same conversation and execution truth:
- an append-only, strictly ordered
SessionEventstream; - tenant-scoped sessions, bindings, objects, quotas, and worker authority;
- durable, replay-safe scheduling and delivery across at-least-once queues;
- isolated harness adapters that cannot redefine the domain model;
- a local stand that proves the Telegram-to-worker-to-Telegram path end to end.
flowchart TD
Frontends["Telegram or WebUI"]
Control["Sessionless control plane"]
State["Canonical sessions and objects"]
Worker["Isolated worker and harness"]
Provider["Authorized AI provider"]
Frontends -->|"canonical user event"| Control
Control -->|"atomic event and run"| State
State -->|"fenced dispatch"| Worker
Worker -->|"attested invocation"| Provider
Provider -->|"bounded result"| Worker
Worker -->|"canonical assistant event"| State
State -->|"authorized projection"| Frontends
The control plane owns identity, ordering, authorization, quotas, and durable state. Workers receive only invocation-scoped capabilities. Frontend adapters project canonical events without becoming an alternate source of truth.
The Compose stand uses pinned YDB Local, Silo (a MinIO fork), ElasticMQ, a Telegram fixture, and the production Go boundaries. It does not need cloud, Telegram, or AI-provider credentials.
make tools
make dev-up
make e2e-local
make dev-downmake dev-down preserves local data. Read the
local stand runbook before using the separate,
explicitly confirmed reset command.
| Track | Status | Evidence and next boundary |
|---|---|---|
| Canonical core and Telegram | Implemented | Ordered sessions/events, YDB state, durable ingress/delivery, deterministic two-tenant E2E; tracked by MVP epic #6. |
| WebUI | Implemented locally | Authenticated Go BFF, canonical API, and Svelte UI include the selected Yandex ID login; registered-client cloud callback and tenant-isolation product E2E remain in WebUI epic #29. |
| Provider and serverless harness | Required for MVP; feature-disabled | #176 owns the bounded loop, derived compaction, useful constrained MCP and bounded web search; #180 design acceptance precedes real linked implementation children. #175/#90/#92 join implementation, platform and rollout proof without a user host. A single tool-free API smoke is insufficient. |
| Attached workers | Required MVP route; implemented foundation, rollout disabled | #76/#77/#79/#166 are closed. Private owner onboarding creates one exact resource without database surgery. #129/#133 own measured transport and the selected Codex activation under #72. One supported ready-made harness suffices; replacing the candidate needs reviewed scope/evidence. Neither enrollment nor test receipts are product activation. |
| Personal-agent research | Bounded required findings; broader product work post-MVP | Relevant loop/compaction/tools/search research feeds the managed MVP. General memory, subagents, browser/shell, analytics and federation do not become hidden launch gates. The delivery plan keeps both execution paths required. |
“Implemented” means code plus repository checks exist. It does not imply a production SLA. “Experimental” paths remain disabled unless their documented release gates and explicit configuration are satisfied.
- User or evaluator: start with the local product flow.
- Operator: use the local stand, then the
cloud-development runbook.
make cloud-web-smoke-testchecks selected-login smoke fixtures without credentials;make cloud-web-smokeruns non-destructive cloud checks only under approved rollout authority. - Contributor: read CONTRIBUTING.md,
development.md, and the
Go testing practices. The opt-in
make attached-worker-crash-integrationverifies test-owned exact-binary idle restart;make attached-worker-active-crash-integrationchecks active restart fencing in a clock-controlled test process. Neither needs Docker or provider credentials.make attached-worker-security-gaterepeats the two-owner transport and recovery checks under the race detector;make attached-worker-security-ydb-gaterequires an already migrated YDB;make attached-worker-joined-provider-ydb-gateruns its focused, test-only credential-and-receipt daemon scenario.make serverless-egress-conformanceverifies the real prepared authority-to-egress seam with test-only credential/proxy ports; it needs neither Docker nor cloud/provider credentials and does not enable a backend. - Architect or security reviewer: start with the domain/runtime contracts and security documentation.
- Frontend, provider, or worker integrator: use the integration map.
The complete goal-oriented index is in docs/README.md; the component inventory and command map live in docs/components.md.
Changes are reviewed against deterministic local gates and mirrored exact-SHA GitHub CI. See CONTRIBUTING.md for the development workflow. The security and trust-boundary index routes reviewers to the applicable threat models and contracts.
Sessionless is distributed under the MIT License.
