Skip to content

Commit 6e9a9b8

Browse files
authored
Merge pull request #162 from code0-tech/feat/new-canary-release-changes
New canary release changes
2 parents cf7739a + 9e1a767 commit 6e9a9b8

2 files changed

Lines changed: 242 additions & 6 deletions

File tree

content/general/changelog.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,107 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010

1111
## [Unreleased]
1212

13+
## [[0.0.0-canary-2651542634-50d3520bc2ff01a6c1d022ed69a48417bbd4259d]](https://github.com/code0-tech/codezero/releases/tag/0.0.0-canary-2651542634-50d3520bc2ff01a6c1d022ed69a48417bbd4259d) - 2026-07-04
14+
15+
### Added
16+
17+
- AI subscription endpoint streaming a generated flow back via Velorum from a flow ID, prompt and model: [#1012](https://github.com/code0-tech/sagittarius/issues/1012)
18+
- Query to fetch all available AI models via Velorum gRPC: [#1013](https://github.com/code0-tech/sagittarius/issues/1013)
19+
- Typed response for AI Subscription Flow: [#1049](https://github.com/code0-tech/sagittarius/issues/1049)
20+
- New module structure — flow types, functions and data types are now retrieved and linked per module: [#934](https://github.com/code0-tech/sagittarius/issues/934)
21+
- Mutatable module configurations linked to NamespaceProjectRuntimeAssignment, exposed via GraphQL: [#983](https://github.com/code0-tech/sagittarius/issues/983)
22+
- Module update endpoint support in Aquila: [#311](https://github.com/code0-tech/aquila/issues/311)
23+
- Module properties included in Draco runtime: [#212](https://github.com/code0-tech/draco/issues/212)
24+
- Module properties included in Taurus: [#186](https://github.com/code0-tech/taurus/issues/186)
25+
- Module structure implemented in code0-flow: [#147](https://github.com/code0-tech/code0-flow/issues/147)
26+
- Module structure implemented in code0-definition with updated folder layout and reader: [#333](https://github.com/code0-tech/code0-definition/issues/333)
27+
- Display of all available modules on runtime column and within settings: [#195](https://github.com/code0-tech/sculptor/issues/195)
28+
- Module configuration page within project page: [#197](https://github.com/code0-tech/sculptor/issues/197)
29+
- Module grouping in next node dialog: [#202](https://github.com/code0-tech/sculptor/issues/202)
30+
- Auth support for the REST adapter: [#246](https://github.com/code0-tech/draco/issues/246)
31+
- External host and URL env variables as endpoint definition: [#243](https://github.com/code0-tech/draco/issues/243)
32+
- GraphQL subscription to run a test execution, streaming until a result is received, with no persistence: [#932](https://github.com/code0-tech/sagittarius/issues/932)
33+
- Test run implementation — select runtime, pass flow body, return results via GraphQL subscription: [#422](https://github.com/code0-tech/sagittarius/issues/422)
34+
- Persistence of test runs in database including query and delete mutation: [#423](https://github.com/code0-tech/sagittarius/issues/423)
35+
- Receiving, storing and querying execution results: [#933](https://github.com/code0-tech/sagittarius/issues/933)
36+
- Node or function identifier added to execution results: [#1023](https://github.com/code0-tech/sagittarius/issues/1023), [#220](https://github.com/code0-tech/taurus/issues/220)
37+
- Taurus handles test executions and parses back an execution result: [#185](https://github.com/code0-tech/taurus/issues/185)
38+
- Taurus handles SubFlows with settings, default values and hidden flags: [#184](https://github.com/code0-tech/taurus/issues/184)
39+
- removed_at field on FlowTypeSetting for safe soft-deletion: [#812](https://github.com/code0-tech/sagittarius/issues/812)
40+
- Option to parse FunctionDefinitions over gRPC: [#881](https://github.com/code0-tech/sagittarius/issues/881)
41+
- ActionStatus added to RuntimeStatus: [#266](https://github.com/code0-tech/tucana/issues/266)
42+
- FlowTypeIdentifier added to AdapterConfiguration: [#261](https://github.com/code0-tech/tucana/issues/261)
43+
- cast field for NodeParameters: [#273](https://github.com/code0-tech/tucana/issues/273)
44+
- design field on RuntimeFunction and Function: [#270](https://github.com/code0-tech/tucana/issues/270)
45+
- NodeFunctionIdWrapper as a possible NodeValue for parameters: [#271](https://github.com/code0-tech/tucana/issues/271)
46+
- definition_source set by DataTypeService: [#144](https://github.com/code0-tech/code0-flow/issues/144)
47+
- Action prefix for definition source in Aquila: [#355](https://github.com/code0-tech/aquila/issues/355)
48+
- Overwrite of definition source from Actions to its identifier: [#306](https://github.com/code0-tech/aquila/issues/306)
49+
- Input type as parameter for flow types: [#330](https://github.com/code0-tech/code0-definition/issues/330)
50+
- Function definitions added in code0-definition: [#344](https://github.com/code0-tech/code0-definition/issues/344)
51+
- Aquila gRPC split into Dynamic and Static server: [#299](https://github.com/code0-tech/aquila/issues/299)
52+
- ActionCable setup for GraphQL subscriptions: [#357](https://github.com/code0-tech/sagittarius/issues/357)
53+
- Aquila flags runtime status for services that are not responding: [#312](https://github.com/code0-tech/aquila/issues/312)
54+
- Type input schema extraction in Triangulum: [#77](https://github.com/code0-tech/triangulum/issues/77)
55+
- Sub flow suggestions in Triangulum: [#76](https://github.com/code0-tech/triangulum/issues/76)
56+
- Schema extraction based on type in Triangulum: [#90](https://github.com/code0-tech/triangulum/issues/90)
57+
- Select component in Pictor: [#686](https://github.com/code0-tech/pictor/issues/686)
58+
- Error feedback strategy for Taurus — standardised error codes and types for denied requests: [#153](https://github.com/code0-tech/taurus/issues/153)
59+
- External few-shot configuration in Velorum: [#9](https://github.com/code0-tech/velorum/issues/9)
60+
- Primitive inputs (Boolean, Number, Text textarea) in sculptor: [#198](https://github.com/code0-tech/sculptor/issues/198)
61+
- Select type input in sculptor: [#199](https://github.com/code0-tech/sculptor/issues/199)
62+
- Execution results view in sculptor: [#193](https://github.com/code0-tech/sculptor/issues/193)
63+
- New suggestion concept — tab system for filtering by type and definition source with search: [#184](https://github.com/code0-tech/sculptor/issues/184)
64+
- New suggestions for SubFlows in sculptor: [#127](https://github.com/code0-tech/sculptor/issues/127)
65+
- License management page in sculptor: [#228](https://github.com/code0-tech/sculptor/issues/228)
66+
- Refactored NamespaceLicense for instance-level self-managed EE licensing, with new GraphQL mutations and queries: [#754](https://github.com/code0-tech/sagittarius/issues/754)
67+
- Definitions received over module layer in sculptor: [#194](https://github.com/code0-tech/sculptor/issues/194)
68+
69+
### Changed
70+
71+
- Merged Execution and Test Execution in Aquila and Taurus: [#337](https://github.com/code0-tech/aquila/issues/337), [#207](https://github.com/code0-tech/taurus/issues/207)
72+
- Reworked HTTP functions — removed http::request::create and http::response::create, objects resolved into fields: [#325](https://github.com/code0-tech/code0-definition/issues/325)
73+
- Reworked REST flow type, REST and HTTP functions: [#359](https://github.com/code0-tech/code0-definition/issues/359), [#231](https://github.com/code0-tech/taurus/issues/231), [#205](https://github.com/code0-tech/taurus/issues/205)
74+
- Adjusted few-shots to current definition def-0.0.28 in Velorum: [#14](https://github.com/code0-tech/velorum/issues/14)
75+
- Runtime status changed to a heartbeat: [#213](https://github.com/code0-tech/draco/issues/213), [#187](https://github.com/code0-tech/taurus/issues/187)
76+
- NodeFunctionIdWrapper replaced with SubFlow: [#931](https://github.com/code0-tech/sagittarius/issues/931), [#45](https://github.com/code0-tech/triangulum/issues/45), [#44](https://github.com/code0-tech/triangulum/issues/44)
77+
- RuntimeStatusService updated to latest Tucana version: [#970](https://github.com/code0-tech/sagittarius/issues/970)
78+
- Test executions reworked to match new available interfaces in Tucana: [#285](https://github.com/code0-tech/tucana/issues/285)
79+
- Interface adjusted to new RuntimeError strategy in Tucana: [#279](https://github.com/code0-tech/tucana/issues/279)
80+
- JSON input reworked in sculptor: [#200](https://github.com/code0-tech/sculptor/issues/200)
81+
- EditorInput reworked in Pictor: [#687](https://github.com/code0-tech/pictor/issues/687)
82+
- Runtime assignment is now set as primary directly in sculptor: [#190](https://github.com/code0-tech/sculptor/issues/190)
83+
- Definition folder names updated in Reticulum (cron → draco_cron, rest → draco_rest, standard → taurus): [#653](https://github.com/code0-tech/reticulum/issues/653)
84+
- Reticulum env updated — root password, provider, default profile and runtime token: [#801](https://github.com/code0-tech/reticulum/issues/801), [#802](https://github.com/code0-tech/reticulum/issues/802), [#803](https://github.com/code0-tech/reticulum/issues/803), [#808](https://github.com/code0-tech/reticulum/issues/808)
85+
- New db fields for parameters and runtime parameters based on new Tucana version: [#890](https://github.com/code0-tech/sagittarius/issues/890)
86+
- Telescopium set up for Taurus: [#122](https://github.com/code0-tech/taurus/issues/122)
87+
- Aquila Status Service temporarily deactivated to eliminate UNIMPLEMENTED spam logs in Sagittarius: [#359](https://github.com/code0-tech/aquila/issues/359)
88+
- Documentation added for Aquila Action Service and service structure: [#269](https://github.com/code0-tech/aquila/issues/269)
89+
- Outdated links removed from Aquila README: [#319](https://github.com/code0-tech/aquila/issues/319)
90+
- Postgres 18 update: [#920](https://github.com/code0-tech/sagittarius/issues/920)
91+
92+
### Removed
93+
94+
- Runtime features table, model, factories and related GraphQL types: [#935](https://github.com/code0-tech/sagittarius/issues/935), [#286](https://github.com/code0-tech/tucana/issues/286)
95+
- Infinity function dropped: [#210](https://github.com/code0-tech/taurus/issues/210), [#353](https://github.com/code0-tech/code0-definition/issues/353)
96+
97+
### Fixed
98+
99+
- GenerationFlowSerializer incorrectly auto-generating a next_node_id, causing infinite loops in the flow builder: [#1058](https://github.com/code0-tech/sagittarius/issues/1058)
100+
- Null values not allowed in flow setting values: [#1066](https://github.com/code0-tech/sagittarius/issues/1066)
101+
- Module config mutation producing incorrect results: [#1003](https://github.com/code0-tech/sagittarius/issues/1003)
102+
- Execution gRPC endpoint losing date information: [#1014](https://github.com/code0-tech/sagittarius/issues/1014)
103+
- Service identified by token alone instead of identifier and token: [#307](https://github.com/code0-tech/aquila/issues/307)
104+
- Return function reference suggestion and schema extraction not working in Triangulum: [#95](https://github.com/code0-tech/triangulum/issues/95)
105+
- Undefined type in a union resulting in a generic schema in Triangulum: [#108](https://github.com/code0-tech/triangulum/issues/108)
106+
- Node param type null not falling back to function param type in Triangulum: [#110](https://github.com/code0-tech/triangulum/issues/110)
107+
- Triangulum validation failing without any error information: [#99](https://github.com/code0-tech/triangulum/issues/99)
108+
- Action execution not handled correctly in Taurus: [#229](https://github.com/code0-tech/taurus/issues/229)
109+
- Invalid signature in rest::control::respond in Taurus: [#235](https://github.com/code0-tech/taurus/issues/235)
110+
- Rest Response Function Definition having incorrect signature: [#361](https://github.com/code0-tech/code0-definition/issues/361)
111+
- Rest Auth Type missing undefined option: [#363](https://github.com/code0-tech/code0-definition/issues/363)
112+
- JSON conversion of infinite value causing a panic in Rust: [#309](https://github.com/code0-tech/tucana/issues/309)
113+
13114
## [[0.0.0-canary-2479774825-5f30e1cf348478a20d0d708f31e863f5e521b368]](https://github.com/code0-tech/codezero/releases/tag/0.0.0-canary-2479774825-5f30e1cf348478a20d0d708f31e863f5e521b368) - 2026-04-25
14115

15116
### Added

content/general/install.mdx

Lines changed: 141 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,36 +60,79 @@ HOSTNAME=localhost
6060
HTTP_PORT=80
6161
HTTPS_PORT=443
6262
SSL_ENABLED=false
63-
SSL_CERT_FILE= # must be located in ./certs, defaults to "<hostname>.pem"
64-
SSL_KEY_FILE= # must be located in ./certs, defaults to "<hostname>.key"
63+
# must be located in ./certs, defaults to "<hostname>.pem"
64+
SSL_CERT_FILE=
65+
# must be located in ./certs, defaults to "<hostname>.key"
66+
SSL_KEY_FILE=
6567

6668
INITIAL_ROOT_PASSWORD=root
6769
INITIAL_ROOT_MAIL=root@code0.tech
68-
INITIAL_RUNTIME_TOKEN= # can be used to create a global runtime with given token
70+
# can be used to create a global runtime with given token
71+
INITIAL_RUNTIME_TOKEN=runtime
6972

7073
# Runtime config
7174
AQUILA_SAGITTARIUS_URL=http://nginx:80
72-
AQUILA_SAGITTARIUS_TOKEN=
75+
AQUILA_SAGITTARIUS_TOKEN=runtime
7376
DRACO_REST_PORT=8084
77+
DRACO_REST_HOST=127.0.0.1
7478

7579
TAURUS_AQUILA_TOKEN=taurus
7680
DRACO_REST_AQUILA_TOKEN=draco-rest
7781
DRACO_CRON_AQUILA_TOKEN=draco-cron
7882

83+
AQUILA_GRPC_CONNECT_TIMEOUT_SECS=2
84+
AQUILA_GRPC_REQUEST_TIMEOUT_SECS=10
85+
SAGITTARIUS_UNARY_RPC_TIMEOUT_SECS=10
86+
7987
# Active services
80-
COMPOSE_PROFILES=ide,runtime
88+
# Available services: ide, runtime, ide_velorum (AI orchestrator)
89+
COMPOSE_PROFILES=ide,runtime,ide_velorum
8190

8291
# Image config
8392
IMAGE_REGISTRY=registry.gitlab.com/code0-tech/packages
8493
IMAGE_TAG=
85-
IMAGE_EDITION= # ce or ee
94+
# ce or ee
95+
IMAGE_EDITION=
96+
97+
# Sagittarius config
98+
# change these to new secret values
99+
SAGITTARIUS_DB_ENCRYPTION_PRIMARY_KEY=YzaMv4bXYK84unYIQI4Ms4sV3ucbvWs0
100+
SAGITTARIUS_DB_ENCRYPTION_DETERMINISTIC_KEY=jgTaxTqzM15ved1S8HdXrqrjfCfF5R0h
101+
SAGITTARIUS_DB_ENCRYPTION_KEY_DERIVATION_SALT=Z6zcLTgobXLYjXUslRsLMKxvXKq3j6DJ
102+
SAGITTARIUS_RAILS_SECRET_KEY_BASE=MVMD6CtQwEWrQ28TdokQakbG2FG5abOn
103+
104+
# Velorum config
105+
# VELORUM_ENABLED=false (override, default checks if COMPOSE_PROFILES contains ide_velorum)
106+
VELORUM_HOST=velorum
107+
VELORUM_PORT=50051
108+
# change to a random value
109+
VELORUM_JWT_SECRET=088cfc7a7fc2b07696d8ee5e1ea9d642
110+
111+
# example, GPT5 in the variable name can be changed to other values. This set of variables can be repeated multiple times
112+
# VELORUM_MODEL_GPT5_IDENTIFIER=gpt-5
113+
# VELORUM_MODEL_GPT5_NAME='GPT 5'
114+
# VELORUM_MODEL_GPT5_CAPABILITIES=explain,generate
115+
# if using a non-default base-url
116+
# VELORUM_MODEL_GPT5_API=
117+
# or openrouter/openai/gpt-5, etc depending on the provider
118+
# VELORUM_MODEL_GPT5_PROVIDER=openai/gpt-5
119+
# authentication token
120+
# VELORUM_MODEL_GPT5_AUTH=your-secret-token
121+
# token cost multiplier for this model
122+
# VELORUM_MODEL_GPT5_TOKEN_COST=1
86123

87124
# Internal config options
88125
SAGITTARIUS_RAILS_HOST=sagittarius-rails-web
89126
SAGITTARIUS_RAILS_PORT=3000
127+
SAGITTARIUS_CABLE_HOST=sagittarius-rails-cable
128+
SAGITTARIUS_CABLE_PORT=3000
90129
SAGITTARIUS_GRPC_HOST=sagittarius-grpc
91130
SAGITTARIUS_GRPC_PORT=50051
92131
SAGITTARIUS_LOG_LEVEL=info
132+
# web threads and grpc threads must be lower than db pool size
133+
SAGITTARIUS_RAILS_WEB_THREADS=3
134+
SAGITTARIUS_RAILS_GRPC_THREADS=6
135+
SAGITTARIUS_DB_POOL_SIZE=8
93136
SCULPTOR_HOST=sculptor
94137
SCULPTOR_PORT=3000
95138
POSTGRES_HOST=postgres
@@ -106,6 +149,20 @@ POSTGRES_PASSWORD=sagittarius
106149
- `INITIAL_ROOT_PASSWORD`: The secure password for your first login.
107150
- `IMAGE_EDITION`: Set this to ce for the Community Edition or ee for the Enterprise Edition. This
108151
determines which Docker images will be pulled.
152+
- `COMPOSE_PROFILES`: Controls which services are started. Available profiles are `ide`, `runtime` and
153+
`ide_velorum` (AI orchestrator). Remove `ide_velorum` if you don't want to run the AI orchestrator.
154+
155+
### Secrets
156+
157+
The following values must be replaced with newly generated secrets before going to production. The defaults
158+
in the template are only meant to make local testing easier:
159+
160+
- `SAGITTARIUS_DB_ENCRYPTION_PRIMARY_KEY`, `SAGITTARIUS_DB_ENCRYPTION_DETERMINISTIC_KEY`,
161+
`SAGITTARIUS_DB_ENCRYPTION_KEY_DERIVATION_SALT`: Keys used to encrypt sensitive data in the Sagittarius
162+
database.
163+
- `SAGITTARIUS_RAILS_SECRET_KEY_BASE`: Base secret used by Rails to sign and encrypt session data.
164+
- `VELORUM_JWT_SECRET`: Secret used by Velorum to sign JWTs. Only required when the `ide_velorum` profile is
165+
active.
109166

110167
### Setup initial runtime
111168

@@ -181,4 +238,82 @@ docker compose up -d
181238

182239
</Steps>
183240

241+
## Setup Velorum (AI orchestrator)
242+
243+
Velorum is the AI orchestrator that powers CodeZero's AI features. It exposes a unified interface to one or
244+
more language models, which are configured purely through environment variables.
245+
246+
<Steps>
247+
<Step>
248+
249+
## Enable the Velorum profile
250+
251+
Make sure the `ide_velorum` profile is part of `COMPOSE_PROFILES` in your `.env` file:
252+
253+
```bash
254+
COMPOSE_PROFILES=ide,runtime,ide_velorum
255+
```
256+
257+
You can opt out of the AI orchestrator at any time by removing `ide_velorum` from the list and restarting
258+
the containers. To force-disable Velorum even when the profile is active, set `VELORUM_ENABLED=false`.
259+
260+
</Step>
261+
<Step>
262+
263+
## Configure the Velorum service
264+
265+
The following variables configure the Velorum service itself:
266+
267+
- `VELORUM_HOST`: The hostname Sagittarius uses to reach Velorum. Defaults to the in-network `velorum`
268+
service.
269+
- `VELORUM_PORT`: The gRPC port Velorum listens on (default `50051`).
270+
- `VELORUM_JWT_SECRET`: Secret used to sign JWTs issued by Velorum. Replace the value from the template
271+
with a freshly generated random string.
272+
273+
</Step>
274+
<Step>
275+
276+
## Configure AI models
277+
278+
Each model Velorum should expose is configured through a set of `VELORUM_MODEL_<SLOT>_*` variables. The
279+
`<SLOT>` part of the variable name is a free-form identifier you choose (e.g. `GPT5`, `CLAUDE`, `LLAMA`)
280+
and is used only to group the variables for one model together. Repeat the set of variables for every
281+
model you want to register.
282+
283+
```bash
284+
VELORUM_MODEL_GPT5_IDENTIFIER=gpt-5
285+
VELORUM_MODEL_GPT5_NAME='GPT 5'
286+
VELORUM_MODEL_GPT5_CAPABILITIES=explain,generate
287+
# if using a non-default base-url
288+
VELORUM_MODEL_GPT5_API=
289+
# or openrouter/openai/gpt-5, etc depending on the provider
290+
VELORUM_MODEL_GPT5_PROVIDER=openai/gpt-5
291+
VELORUM_MODEL_GPT5_AUTH=your-secret-token
292+
VELORUM_MODEL_GPT5_TOKEN_COST=1
293+
```
294+
295+
- `IDENTIFIER`: Stable identifier used by the rest of CodeZero to reference this model.
296+
- `NAME`: Human-readable name shown in the dashboard.
297+
- `CAPABILITIES`: Comma-separated list of capabilities this model supports (e.g. `explain`, `generate`).
298+
- `API`: Optional. Override when the provider is reached through a non-default base URL.
299+
- `PROVIDER`: Provider/model string in the format expected by Velorum, e.g. `openai/gpt-5` or
300+
`openrouter/openai/gpt-5`.
301+
- `AUTH`: Authentication token used to call the provider.
302+
- `TOKEN_COST`: Token cost multiplier applied to usage of this model.
303+
304+
</Step>
305+
<Step>
306+
307+
## Finalize the Velorum setup
308+
309+
After updating the `.env` file, restart the containers so Velorum and Sagittarius pick up the new
310+
configuration:
311+
312+
```bash
313+
docker compose up -d
314+
```
315+
316+
</Step>
317+
</Steps>
318+
184319
Your CodeZero instance is now fully configured and ready to manage your enterprise flows and organizational structures.

0 commit comments

Comments
 (0)