Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6628d1a
docs: plan execution core milestone
PePoDev Oct 26, 2026
5daf3fc
feat: shut the API down gracefully
PePoDev Oct 26, 2026
67b0072
feat: build release images that run as a non-root user
PePoDev Oct 26, 2026
34d17d5
feat: model run states, retry classification, and run plans in the do…
PePoDev Oct 26, 2026
c3a955e
feat: resolve node inputs and validate outputs at run time
PePoDev Oct 26, 2026
094e007
feat: define the executor plugin contract and compiled registry
PePoDev Oct 26, 2026
8266a4e
feat: add the deterministic mock executor
PePoDev Oct 26, 2026
6c079ff
feat: add the trusted shell executor
PePoDev Oct 26, 2026
535441e
feat: store runs, node runs, run events, and worker instances
PePoDev Oct 26, 2026
9081706
feat: claim, start, heartbeat, log, and complete node runs through wo…
PePoDev Oct 26, 2026
1483bde
feat: start, inspect, cancel, and rerun runs over the API
PePoDev Oct 26, 2026
f3ac241
feat: let admins enable the trusted shell executor
PePoDev Oct 26, 2026
c70475e
feat: recover expired leases in a leader-elected API loop
PePoDev Oct 26, 2026
b9d61f8
feat: stream run events over SSE with replay
PePoDev Oct 26, 2026
c7e354a
feat: run workers that claim, execute, and complete node runs
PePoDev Oct 26, 2026
0d547a5
feat: start runs from the studio and see recent runs
PePoDev Oct 26, 2026
10a9a6a
feat: watch runs live with graph overlays and logs
PePoDev Oct 26, 2026
029cfe2
feat: enable the shell executor in organization settings
PePoDev Oct 26, 2026
7cc436b
feat: run workers in Compose and smoke-test executions end to end
PePoDev Oct 26, 2026
defff35
fix: gate the shell executor at the operator level and bound live str…
PePoDev Oct 26, 2026
2b032c9
fix: keep live run views accurate and reconnecting
PePoDev Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ CORQTY_API_PORT=8080
CORQTY_WEB_PORT=3000
DATABASE_URL_OWNER=postgres://corqty_owner:corqty_owner_dev@postgres:5432/corqty
DATABASE_URL_API=postgres://corqty_api:corqty_api_dev@postgres:5432/corqty
DATABASE_URL_WORKER=postgres://corqty_worker:corqty_worker_dev@postgres:5432/corqty
# Node runs that each worker container executes at once.
CORQTY_WORKER_CAPACITY=4
# "enabled" lets organization admins turn on the trusted shell executor (api and worker).
# Shell commands run as the shared worker user and can reach the worker's database
# credential and other organizations' jobs: enable it only on single-tenant or fully
# trusted deployments.
CORQTY_SHELL_EXECUTOR=disabled
# Run inputs, node inputs and node outputs are limited to 1 MiB each, and logs to 10 MiB
# per node run. These limits are fixed constants until Milestone 5.
CORQTY_BIND_ADDRESS=0.0.0.0:8080
CORQTY_PUBLIC_WEB_URL=http://localhost:3000
CORQTY_SECURE_COOKIES=false
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 30
timeout-minutes: 45
services:
postgres:
image: postgres:18-alpine
Expand Down Expand Up @@ -53,10 +53,13 @@ jobs:
- run: pnpm web:test
- run: pnpm web:build
- name: Start fresh Compose stack
run: docker compose --project-name corqty-ci up --build --wait
env:
CORQTY_WORKER_CAPACITY: "1"
CORQTY_SHELL_EXECUTOR: enabled
run: docker compose --project-name corqty-ci up --build --wait --scale worker=3
- name: Run Compose smoke test
shell: pwsh
run: ./scripts/smoke-foundation.ps1 -ProjectName corqty-ci
run: ./scripts/smoke-foundation.ps1 -ProjectName corqty-ci -ExpectedWorkers 3
- name: Remove Compose stack
if: always()
run: docker compose --project-name corqty-ci down --volumes
167 changes: 167 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@ resolver = "3"
members = [
"crates/api",
"crates/domain",
"crates/executor-mock",
"crates/executor-shell",
"crates/migrator",
"crates/persistence",
"crates/plugin-host",
"crates/plugin-sdk",
"crates/test-support",
"crates/worker",
]

[workspace.package]
Expand All @@ -19,14 +24,18 @@ argon2 = "0.5"
axum = { version = "0.8", features = ["macros"] }
base64 = "0.22"
chrono = { version = "0.4", features = ["serde"] }
futures-util = "0.3"
getrandom = "0.3"
jsonschema = { version = "0.60.1", default-features = false }
nix = { version = "0.31", default-features = false, features = ["signal"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
sqlx = { version = "0.8", features = ["chrono", "json", "migrate", "postgres", "runtime-tokio-rustls", "uuid"] }
tempfile = "3"
thiserror = "2"
tokio = { version = "1", features = ["macros", "net", "rt-multi-thread", "signal"] }
tokio = { version = "1", features = ["io-util", "macros", "net", "process", "rt-multi-thread", "signal", "sync", "time"] }
tokio-util = "0.7"
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.6", features = ["trace"] }
tracing = "0.1"
Expand Down
Loading
Loading