-
-
Cadenta: AI-powered CI analysis with GitLab Duo.
-
Explore Cadenta’s review workflow with clearly labeled synthetic pipeline examples.
-
A captured proposal removes a duplicate test command while preserving compilation and full test discovery.
-
1. Real GitLab CI comparison: 16 to 8 test executions, all 8 unique tests retained. One controlled run pair.
-
GitLab Duo identifies duplicated CI work and detached legacy tests. Read-only replay of a completed investigation.
Inspiration
A pipeline can pass while doing unnecessary work. Duplicate commands survive refactors, old tests stop exercising production code, and CI configuration gradually falls behind the project it supports.
Cadenta grew from a simple question: could an agent investigate that gap and help an engineer decide what to improve, with evidence behind every recommendation?
What it does
Cadenta is a GitLab Duo-powered workspace for investigating code, tests, and CI pipelines.
An engineer describes an objective against a specific repository revision. The agent chooses which files and evidence to inspect, requests follow-up reads, and returns findings, recommendations, and proposed patches. Available evidence includes source files, Git history, pipeline jobs, test reports, and logs.
Recommendations include supporting evidence, uncertainty, verification steps, and a rollback plan. The agent can also conclude that no change is justified or that more evidence is needed.
Investigation proceeds without approval for every file read. Repository changes remain subject to separate review. A test's age or history of passing is never enough to justify deleting it.
How we built it
The reasoning runs through custom flows on GitLab Duo Agent Platform. Cadenta's backend retrieves the evidence requested by the agent through GitLab APIs, records the observations, and supplies the next reasoning round.
We built the application with TypeScript, Node.js, Fastify, React, and PostgreSQL. GitLab OAuth provides sign-in. Background tasks preserve progress, while immutable artifacts retain the evidence and responses behind each decision.
The backend checks permissions, source revisions, file paths, and patch preimages. GitLab CI provides execution evidence for reviewed changes. Docker Compose supplies a reproducible local demo; authored fixtures and replay support development without live model calls.
Challenges we faced
A convincing model response is not necessarily correct. During a real evaluation, the agent claimed a boundary case was missing even though an existing test exercised it through a default argument.
We strengthened the instructions to cross-check actual calls, defaults, and assertions before claiming a coverage gap. The mistake did not recur in the follow-up run, although that does not establish general model accuracy.
Recovery was another challenge. A lost response must not silently create another paid invocation. We implemented persistent invocation records, execution limits, cancellation, and reconciliation.
We also separated patch validation from semantic correctness: matching a file's original bytes does not prove that changing it is safe.
Accomplishments we're proud of
We tested the adaptive workflow on a controlled repository with deliberately seeded problems. The expected findings were kept outside the agent's input.
Real Duo sessions independently identified duplicate CI execution and legacy tests that exercised a copied implementation rather than current production code. The agent selected the relevant files and produced a minimal CI patch.
We applied that patch on an isolated branch and ran real GitLab CI. Both pipelines passed, all eight tests were preserved, and total test executions fell from sixteen to eight. No tests were deleted.
This demonstrates a useful result on one small controlled workload, not a general performance claim. Separately, Cadenta's public CI passes 362 tests, four browser workflows, and container verification.
What we learned
Useful autonomy combines freedom to investigate with evidence that can be checked. Model reasoning helps decide where to look; validation and executed tests establish different kinds of confidence.
We also learned to preserve failed attempts and uncertainty. They help explain why a recommendation should be accepted, revised, or rejected.
What's next
We want to evaluate Cadenta on larger real repositories, more test frameworks, and incomplete Git histories. Repeated baseline/candidate measurements will help distinguish reliable improvements from noise.
Built With
- docker
- fastify
- gitlab-ci/cd
- gitlab-duo-agent-platform
- node.js
- playwright
- postgresql
- react
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.