What is in it
Five sources are indexed: chat, issues, code reviews, project documents and call transcripts. Commits, branches and files are not indexed on their own; they come back as links hanging off a result that already matched.
Issues, code reviews, documents, chat and call transcripts are indexed as they are written, and answered in one pass under your own permissions. Ask the base in the app, or connect it to your agent over MCP. Git hosting, pipelines and boards are here too, and they are what fills it.
code4.space is developed, reviewed, built and deployed on code4.space.

One index over five sources, answered under the permissions you already have. Nothing here is a separate product to buy or a wiki to keep alive.
Five sources are indexed: chat, issues, code reviews, project documents and call transcripts. Commits, branches and files are not indexed on their own; they come back as links hanging off a result that already matched.
A question runs a keyword pass and a vector pass at once, the two rankings are merged, and the result is expanded along the links between an issue, the review that closed it and the commits that named it. Take the embedding service away and the vector pass drops out, while the keyword pass keeps answering.
Search inside the app, or connect the base over MCP: streamable HTTP, sign-in through Keycloak, and every call runs as you rather than as a service account. The same endpoint carries tools for issues, reviews, branches, pipelines and deploys, so a coding agent reads the base and works in your tracker without a second account.

11 custom field types, parent and subtask trees, checklists, watchers, saved filters and bulk edits, with an estimate and a running timer on the issue itself. Boards add columns with WIP limits, sprints, swimlanes and a backlog panel, and cards move by mouse or by keyboard.
Merge requests with per-line threads, comments on a selected range of the diff, suggested edits that land as a commit, reviewer approvals, and a marker showing how much of the diff you have already read.
Steps declare their inputs and outputs, so a run is a graph rather than a list, and a step can run hermetically with a digest-pinned image and an outbound allowlist. You write the pipeline in Java, Go or TypeScript against a typed SDK, and when a step fails you can open a shell in the workspace it left behind. If you would rather not write code, the same SDK compiles a .ci/pipeline.yaml into the same model.
Documents live in a folder tree with version history, comments and access rules per node, while direct messages, group chats and threads run over one WebSocket. Calls add screen sharing, recording, a transcript and a written summary, a guest joins by link without an account, and a recorded video message carries its own transcript.
Git over HTTPS is served by the platform itself: clone, push, branches, tags, file browsing, blame and branch comparison. Protection rules live beside the repository instead of in a separate admin tool.
CI publishes npm packages, Maven artifacts and OCI images to registries on the same platform, and a deploy step ships an image to a Kubernetes environment. Environments carry config, secrets and manifests, flag it when the cluster stops matching the manifest, can hold a release behind an approval, and roll back to an earlier one.
The assistant answers inside the app, streams its output, accepts file attachments and shows every tool call it makes before anything changes. Agent runs are separate and off until an organization turns them on, with a token budget and a time limit per run.
Push a repository, open issues, write documents, talk in chat, hold a call. None of it is a knowledge base chore: there is no article editor here and no wiki to keep current.
Each of the five sources is split into fragments and indexed as it is written. A call joins the base only if the organization left transcript indexing on and nobody in the room opted out, and it leaves again when the retention window ends.
One pass covers chat, issues, reviews, documents and transcripts, over exactly what you are allowed to open. The answer names the source it came from, so a decision can be traced back to the thread where it was made.
The base is an MCP endpoint. An agent signs in as you, reads it, and, when you let it, opens issues, comments on a review or starts a pipeline. Nothing it can reach is anything you could not reach yourself.

The same build runs hosted and on your own cluster. What changes is who holds the database and the bucket.
code4.space, run by us. Access is granted per organization while the alpha is closed.
One server process, deployed as a Kubernetes workload. A manifest and a local compose file are in the repository.
PostgreSQL, an S3 compatible bucket for files and CI artifacts, Keycloak for sign-in, a Kubernetes cluster if you want the runner and deploys, and a LiveKit media server with Redis if you want calls.
No, and there is nowhere to write it. The product has no article editor and no wiki section: the index is built from what your team writes anyway, which is chat, issues, code reviews, project documents and call transcripts. The one thing you decide is whether call transcripts join it at all, and any participant can keep a call out.
One database and one permission model. A question about a decision searches issues, review threads, documents, chat and call transcripts in a single pass, because they are not in four products. Pipelines are typed code in a language you already write rather than YAML.
A document or a folder can be closed to everyone except the people you name, and the creator stays on that list. Search runs the same permission check the screens do, and it is built the other way round from most: the filter is assembled before the query and an empty set of permissions returns nothing, so a private document does not surface as a hint to someone who cannot open it.
Five things: it answers questions in a chat panel, it runs agents inside limits you set, it drafts an outline of a code review once an admin turns that on, it writes a summary and a transcript for a call, and it powers search across the organization. It does not autocomplete in an editor, and it does not merge anything on its own.
Only what the AI features touch. The assistant, agent runs and call summaries send their input to Anthropic, speech goes to Deepgram for transcription, and the search index is built with an OpenAI embedding model; everything else stays in your database and your bucket. Leave the embedding service unconfigured and search keeps working on the keyword pass alone, and switching the AI features off leaves the rest of the platform working.
Repositories move by pushing them: the remote is an ordinary git server over HTTPS, so git push --mirror is the whole job. Issues and documents have no importer yet, and until one exists the REST API and the MCP endpoint are the way in. They are the same interfaces the app itself uses, so nothing is held back from them.
Yes. It is one Spring Boot service backed by PostgreSQL, an S3 compatible bucket and Keycloak, deployed as a Kubernetes workload. The CI runner, the deploy agent and the call service are separate processes you place where you want them. Sign-in goes through Keycloak, so the identity provider you already run plugs in there. What ships today is a Kubernetes manifest and docker compose files, not a Helm chart.
Five known gaps. No importers from other trackers. Documents autosave with a lock rather than letting two people type at once. Call transcription runs in one language, set in configuration rather than picked per call, and there is no way to upload a recording that did not happen here. An agent run stops when it reaches its token or time budget. And it is a web app: layouts collapse for a narrow window, but there is no iOS or Android build.
Testing is closed. We are taking in teams of specialists a few at a time, and access is granted per organization rather than per person.