The legacy code
What is in production does not fit in a context window and has no tests. The assistant reads a fragment, infers the rest and writes something that compiles — and breaks something else.
Kodzonia is the agentic engineering platform built at Zonialabs. The agent reads, edits, runs and delegates inside the real project — with durable memory, containment by construction, and an audit line for every model call.
The demo impresses. The pilot passes. Then the assistant touches the system that pays the bills — and the conversation ends. It is not bad luck, and it is not the model: it is always one of these four.
What is in production does not fit in a context window and has no tests. The assistant reads a fragment, infers the rest and writes something that compiles — and breaks something else.
The endpoint only the old team understood, the field that means something different per customer, the queue that cannot be reprocessed. None of it is written down anywhere, so the model makes it up.
Without one row per call — model, tokens, cache, duration and error — there is no management. There is a surprise on the invoice and a decision made out of fear.
Every session starts from zero. What was decided yesterday, by whom and why, does not survive — and the team relitigates the same discussion every week.
Kodzonia was built against those four. One by one, in code, with tests.
Kodzonia is developed with Kodzonia. Every number below comes from the product's own audit trail — one row per call, written the moment it happens.
A single gateway orchestrating Anthropic, OpenAI and Kimi — the user picks a model, never an endpoint.
Figures published by Wladmir Bonazza on September 10, 2026, covering 30 days of real use.
Nothing here is a third-party plugin. It is the core of the product: every action goes through an auditable tool with a stable name and a declared impact level.
Across 22 categories: files, shell, Python, git, semantic code search, browser, databases and MCP. There is no hidden path between the model and the machine.
Explorer, Planner, Reviewer, Tester and Implementer out of the box, plus ad-hoc specialists and a Specialist Builder that writes the specialist by reading your repository.
A script orchestrates subagents in phases, with a clarification channel: the child asks instead of inventing. Same script, same path.
A typed row with a stable slug, confidence, provenance and a revertible version, linked by typed edges. Hybrid search: full text plus local embeddings.
N projects open at once, each with its own runtime, vault and cancellation. Closing one tab never cancels another tab's work.
Model, tokens, cache, duration, error and the tree of who called whom — exportable as CSV. An interrupted turn shows up flagged, it never disappears.
Five architectural decisions that a better prompt does not solve.
Claude Code, Cursor and Codex keep context in a flat markdown file — CLAUDE.md, AGENTS.md — versioned next to the code: no type, no provenance, no selective recall. In Kodzonia every memory is a typed database row with a stable slug, a confidence level, a declared origin (asserted by the user or inferred by the agent), revertible history, a trash bin and typed edges — supersedes, relates-to, causes, depends-on, contradicts. Search fuses full text and local embeddings.
Inside workflows, Date and Math.random are banned with a named error, and the boundary between the application and the script is plain JSON. A fresh engine per run, strict mode by default. A script that runs today runs the same tomorrow — because the source of variation simply does not exist.
Every subagent inherits a subset of tools and a sandbox that is never wider than its parent's, with a maximum depth and a destructive brake that carries provenance. It is not an instruction in the prompt: it is the construction. A child cannot escalate privilege even if the model tries.
A per-session canary and a deterministic guardrail inside the engine itself, which aborts the stream before the leak. Every tool result arrives marked as untrusted, with its name protected against forgery. And a corpus of 12 attacks versioned in the repository runs against the real provider: here security is a test that breaks the build, not the model's goodwill.
OpenAI's API accepts at most 128 tools per request. Kodzonia splits the catalog into a core that is always advertised and groups loaded on demand, with discovery by intent and eviction by LRU. The catalog grows indefinitely without hitting the ceiling — precisely the wall that freezes the roadmap of anyone who has not solved it.
The brain stays local, the data and the credentials move to the cloud.
The agent loop and the tools stay on the desktop — zero network latency per tool call, no tool reimplemented on the server. What moves is the model call, through a gateway that injects the credential and audits it, plus the project's persistence.
A modular ASP.NET Core monolith on PostgreSQL, with the same hexagonal architecture as the desktop. Our own identity, two roles, invitations that expire, rotating refresh stored only as a hash. Version 1 ships cost auditing; the hard limit lands in 1.1, built on the data already collected.
See the platform in detailAccounts, projects and invitations.
Provider credentials managed on the server.
The call goes through the server, which injects the credential and audits it.
Provider sign-in driven by the server.
Conversations, pools, journal, schedule and memory over the API.
Configuration, usage and administration in the browser.
The last step: the project stops depending on the local file.
Each one settled a concrete problem and is recorded in the repository. This is how the product gets built — and what can be audited.
Running the agent loop server-side was the alternative. It was rejected: it would put network latency on every tool call and force every tool to be reimplemented on the other side. What migrates is the model call — through a gateway that injects the credential and audits it — and project persistence.
Opening two projects meant sharing authorised folders and the credential vault. The fix was to remove the shared surface: every tab owns its mini-DI, sandbox and vault, and an architecture test forbids ambient state.
Two simultaneous turns were undescribable while state lived in two process-wide scalars: the last to start overwrote the first. The scalars were removed, and the ban on their return is enforced by reflection, not by convention.
Date, Math.random and Promise.race are blocked with a named error, and the boundary between script and host is plain JSON — the script cannot reach reflection. Running the same workflow twice has to take the same path.
Who builds it, who ships it and who takes it to market.
Founder & AI Systems Architect
25+ years of software engineering. Architected and wrote Kodzonia in 4 months, using Kodzonia itself — and publishes the real usage numbers.
LinkedInCo-founder & Platform Engineering
Platform engineering and delivery: front end, back end and the infrastructure that puts the product in the hands of the people who use it.
LinkedInChief Business Officer
Commercial operations, relationships and go-to-market. Structures the business to grow on solid ground.
LinkedInThe product stands up, the numbers come from the log and the team is in place. If you want to go deep — architecture, real usage, platform plan — the conversation is direct, with the people who built it.
Early access: Kodzonia is not in open production yet.