Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
32e919b
Stabilize storage retry diagnostics
buzzcrow Oct 16, 2026
8b1b568
Persist node deployment policy and model current cluster readiness
buzzcrow Oct 21, 2026
34f9872
Scope automatic node formation to accepted cluster policy
buzzcrow Oct 21, 2026
861e141
Validate container policy before preparing SSH credentials
buzzcrow Oct 21, 2026
4da2a7a
Reject an empty retained local admission credential
buzzcrow Oct 21, 2026
9ee797f
Resolve explicit cluster targets before native workload operations
buzzcrow Oct 21, 2026
d464ef5
Reserve shared default preparation through committed cluster authority
buzzcrow Oct 21, 2026
86bb2cb
Fence ordinary group creation and replay with durable operation owner…
buzzcrow Oct 21, 2026
5546fd4
Resume the accepted metadata group and preserve operator retirement
buzzcrow Oct 21, 2026
331d4dd
Keep authenticated node setup within its accepted deployment policy
buzzcrow Oct 21, 2026
b109e72
Prepare owned metadata before node storage and pin its consumers
buzzcrow Oct 21, 2026
f85587e
Use accepted local placement and one shared catalog bootstrap
buzzcrow Oct 21, 2026
467e281
Reserve distinct global disk group identities for initial nodes
buzzcrow Oct 21, 2026
7519391
Carry explicit local strip geometry through tree and Dataset storage
buzzcrow Oct 21, 2026
435b7f8
Retain terminal disk failures until an explicit setup retry
buzzcrow Oct 21, 2026
3fd79dc
Verify setup replay preserves later service operator commands
buzzcrow Oct 21, 2026
04d5dc1
Separate public client origins from internal Access service routes
buzzcrow Oct 21, 2026
e39a3e0
Use one node lifecycle and package a topology-free service catalog
buzzcrow Oct 21, 2026
4696b17
Pair local readiness with current service operations and owned processes
buzzcrow Oct 21, 2026
3efdadd
Observe protocol readiness without recovering deployment state
buzzcrow Oct 21, 2026
91ae2f1
Validate member evidence against current cluster identity and intent
buzzcrow Oct 21, 2026
fd8b6da
Record the retained member addressing decision and restart evidence
buzzcrow Oct 21, 2026
178b90d
Bind bootstrap member trust to persistent SSH identities
buzzcrow Oct 21, 2026
224e6df
Recover member connections through authenticated rediscovery
buzzcrow Oct 21, 2026
9e7d4ab
Reelect uncertain leaders before reopening recovered cluster reads
buzzcrow Oct 21, 2026
bebf5d1
Publish recovered chunk KV owner addresses without transferring parti…
buzzcrow Oct 21, 2026
71be016
Preserve fresh service contacts during incomplete member discovery
buzzcrow Oct 21, 2026
4f18d01
Read authenticated recovery identity independently of service startup
buzzcrow Oct 21, 2026
73dcb0a
Record packaged recovery verification and storage bootstrap blocker
buzzcrow Oct 21, 2026
87b5151
Preserve live service processes across readiness observation timeouts
buzzcrow Oct 21, 2026
738ad1a
Rediscover local KV authority before republishing recovered service a…
buzzcrow Oct 21, 2026
7d31e68
Preserve split and transfer recovery proofs across owner address changes
buzzcrow Oct 21, 2026
c2f6836
Scope Docker cluster shortcuts and remove owned bridges during cleanup
buzzcrow Oct 21, 2026
91c0a97
Wait for live service dependencies before spending recovery launches
buzzcrow Oct 21, 2026
a847953
Pass common node policy through host runtime launchers
buzzcrow Oct 21, 2026
601217a
Collect current application readiness for cluster status and bounded …
buzzcrow Oct 21, 2026
37d9673
Require activated partition writers before reporting Chunk-KV readiness
buzzcrow Oct 21, 2026
ac56e25
Bound cluster checks across slow and disappearing management origins
buzzcrow Oct 21, 2026
0d1b8ab
Allow cluster checks to observe the first accepted identity
buzzcrow Oct 21, 2026
5d9a99a
Record aggregate readiness verification failure and retained diagnostics
buzzcrow Oct 21, 2026
faf512a
Report detailed readiness from current storage owners and protocol ev…
buzzcrow Oct 21, 2026
af75c32
Preserve acknowledged chunk data when finalizer scans are incomplete
buzzcrow Oct 21, 2026
6d21401
Identify unavailable execution evidence in cluster status
buzzcrow Oct 21, 2026
306e106
Unify local OCI cluster startup and scoped stop with durable ownership
buzzcrow Oct 21, 2026
c714c85
Attach S3 commands to shared cluster targets and retire private deplo…
buzzcrow Oct 21, 2026
3443f43
Run storage and S3 workloads against existing cluster targets
buzzcrow Oct 21, 2026
7de0d46
Move echo transport workloads and lifecycle into dedicated test tooling
buzzcrow Oct 21, 2026
eddecc0
Remove retired storage process commands and unimplemented CLI placeho…
buzzcrow Oct 21, 2026
532af33
Recover uncertain storage writes and preserve readable mirror prefixes
buzzcrow Oct 21, 2026
be0efd3
Exercise OCI recovery through common cluster commands
buzzcrow Oct 21, 2026
00b3fe0
Simplify OCI handoff and record remaining Access recovery failure
buzzcrow Oct 21, 2026
14b117d
Observe current Access dependencies without application traffic
buzzcrow Oct 21, 2026
6042be8
Sample Access and node health independently of status queries
buzzcrow Oct 21, 2026
f8d9715
Require verified cluster targets for attached CLI operations
buzzcrow Oct 21, 2026
2260fed
Retire process deployment commands and migrate CLI acceptance
buzzcrow Oct 22, 2026
fb3cda3
Validate discovery seeds before accepting node startup
buzzcrow Oct 22, 2026
528901d
Preserve recovery authority across split transfer and stream rollover
buzzcrow Oct 22, 2026
37074d7
Move measurement workflows to owned native fixtures
buzzcrow Oct 22, 2026
d8bceaa
Verify stream recovery without directory publication
buzzcrow Oct 22, 2026
20d15dd
Expose stream latency phases and parallelize metadata publication
buzzcrow Oct 22, 2026
752837a
Record deferred stream directory optimization
buzzcrow Oct 22, 2026
f913bc1
Preserve active cluster tree reads during polling
buzzcrow Oct 22, 2026
43e15c6
Verify durable bootstrap fencing across coordinator interruption
buzzcrow Oct 22, 2026
257a127
Cover simultaneous namespace recovery helpers
buzzcrow Oct 22, 2026
4f6dc3a
Verify reference deployments and owned CLI workload accounting
buzzcrow Oct 22, 2026
a1996a0
Expose bounded background readiness phase latency
buzzcrow Oct 22, 2026
34ae80b
Quiesce background writers before allocator accounting
buzzcrow Oct 22, 2026
62b78fa
Bound readiness work to routed metadata point reads
buzzcrow Oct 22, 2026
5cb8ea3
Preserve failed host launches and forward explicit node policy
buzzcrow Oct 22, 2026
7ace0d7
Reduce background readiness metadata work
buzzcrow Oct 22, 2026
fb843f0
Keep durable block recovery pending while owners return
buzzcrow Oct 22, 2026
ab986b3
Observe supplied storage through its accepted disk identities
buzzcrow Oct 22, 2026
7229830
Reclaim idle RPC sockets on explicit connection close
buzzcrow Oct 22, 2026
26f374a
Fence descriptor reuse until active socket operations finish
buzzcrow Oct 22, 2026
231cb7d
Support owned host runtime lifecycle through the cluster CLI
buzzcrow Oct 22, 2026
34de905
Keep clock-offset observation waits inside the caller deadline
buzzcrow Oct 22, 2026
9aa7d30
Retain authenticated admission keys in confirmed node authority
buzzcrow Oct 22, 2026
cb1326c
Recover confirmed nonvoter contacts through retained identity pins
buzzcrow Oct 22, 2026
3ac07fe
Inspect diskless host containers with absent device mappings
buzzcrow Oct 22, 2026
6a2a879
Start retained replicas independently of quorum health
buzzcrow Oct 22, 2026
ba50e29
Observe local protocols through current confirmed node addresses
buzzcrow Oct 22, 2026
dcae6e9
Validate Docker CPU limits and retain complete runtime logs
buzzcrow Oct 22, 2026
bfd88be
Verify staged image sources without writing the checkout
buzzcrow Oct 22, 2026
aeb376d
Allow host recreation after closed TCP connections
buzzcrow Oct 22, 2026
b3a94d3
Document editable OCI startup and explicit host policies
buzzcrow Oct 22, 2026
fe462ba
Qualify confirmed nonvoter recovery across new node addresses
buzzcrow Oct 22, 2026
7763008
Exercise real Pixi cluster shortcuts with independent cleanup
buzzcrow Oct 22, 2026
0bb47b0
Keep explicit cleanup available after fencing member recovery
buzzcrow Oct 22, 2026
4366e30
Qualify common host lifecycle on isolated OCI runtimes
buzzcrow Oct 22, 2026
edf8666
Align console guidance with editable OCI lifecycle
buzzcrow Oct 22, 2026
c3d7d64
Complete unified OCI deployment acceptance
buzzcrow Oct 22, 2026
fceee28
Record mirrored stream performance and ownership contracts
buzzcrow Oct 22, 2026
d0e0ff7
Synchronize mirrored writes in one proven DiskIO response
buzzcrow Oct 22, 2026
348f300
Share versioned frame codecs and validate complete append groups
buzzcrow Oct 22, 2026
4eec25d
Read ordinary frame revisions through bounded object locations
buzzcrow Oct 22, 2026
d667bbf
Use ordinary frame revisions across object and tree storage
buzzcrow Oct 22, 2026
0f0850d
Version stream metadata records and preserve legacy recovery boundaries
buzzcrow Oct 22, 2026
5c9b4bc
Define bounded indexed stream heads and independent directory pages
buzzcrow Oct 22, 2026
920a097
Build and traverse stream directories through bounded immutable paths
buzzcrow Oct 22, 2026
9694ada
Protect indexed directory publications with durable guards and revisi…
buzzcrow Oct 22, 2026
da51f73
Bound immutable directory caching by fixed slots and owned page bytes
buzzcrow Oct 22, 2026
57cc6aa
Freeze legacy directory sources before resumable indexed migration
buzzcrow Oct 22, 2026
c711938
Resume legacy directory conversion through protected bounded checkpoints
buzzcrow Oct 22, 2026
9e91137
Share indexed directory transitions across KV and deterministic storage
buzzcrow Oct 22, 2026
69a94cb
Keep synchronized stream progress independent of persisted layout ref…
buzzcrow Oct 22, 2026
a110a87
Resolve stream capacity from current chunk layouts without growth pub…
buzzcrow Oct 22, 2026
a5e1529
Reject stream sealing below an already persisted byte boundary
buzzcrow Oct 22, 2026
6234b01
Remove unpublished storage migrations and service fallbacks
buzzcrow Oct 22, 2026
ee50dcb
Use canonical ordinary framing across codecs and consumers
buzzcrow Oct 22, 2026
244d8a7
Bound directory inventory and retain roots atomically with publication
buzzcrow Oct 22, 2026
cad597d
Retain exact bounded root views with revision fenced pins
buzzcrow Oct 23, 2026
c94b723
Require current chunk capacity and metadata adapter contracts
buzzcrow Oct 23, 2026
972ddb2
Retire bounded root index batches behind retention control
buzzcrow Oct 23, 2026
1e4c00e
Collect unreachable directory pages with bounded retention proofs
buzzcrow Oct 23, 2026
fcace8c
Retire resolved publication guards behind the stable head
buzzcrow Oct 23, 2026
dd87099
Publish exact sealed chunk spans atomically with attachment transitions
buzzcrow Oct 23, 2026
ca7e5fd
Trim only complete sealed chunks and preserve active append storage
buzzcrow Oct 23, 2026
7b55d6c
Prove whole chunk retention before retryable exact sealed release
buzzcrow Oct 23, 2026
e172c30
Parse bounded frame prefixes only through complete append groups
buzzcrow Oct 23, 2026
ee7a095
Observe replica frame prefixes within one bounded IO deadline
buzzcrow Oct 23, 2026
4c62557
Read bounded tail windows from a pinned mirrored layout
buzzcrow Oct 23, 2026
bfabcec
Require every configured mirror before acknowledging stream writes
buzzcrow Oct 23, 2026
eb22f8a
Finalize abandoned grouped chunks from bounded healthy replica prefixes
buzzcrow Oct 23, 2026
fe6c73c
Use complete append groups throughout stream writes reads and checkpo…
buzzcrow Oct 23, 2026
fb7b85d
Remove the unused raw stream writer and validate fresh allocation dir…
buzzcrow Oct 23, 2026
a7006c7
Assemble mirrored stream writes directly from bounded frame views
buzzcrow Oct 23, 2026
5443941
Persist explicit unwritten tail headers across mirrored growth and re…
buzzcrow Oct 23, 2026
2fb1ff8
Preserve immutable stream ranges on delayed write retries
buzzcrow Oct 23, 2026
dba5bb0
Drain ordered segment writes before proving synchronization
buzzcrow Oct 23, 2026
ff647a8
Use exact byte boundaries for every chunk seal request
buzzcrow Oct 23, 2026
f62db30
Reserve recovery time for prefix comparison and mapping replay
buzzcrow Oct 23, 2026
a8234f5
Remove obsolete strip update RPC and retired service scaffolding
buzzcrow Oct 23, 2026
d09e68a
Drain abandoned chunks and reject incomplete reservation metadata
buzzcrow Oct 23, 2026
bab6bbb
Fence in-flight replies across serving authority revocation
buzzcrow Oct 23, 2026
46dde9e
Retain serving authority across complete grouped requests
buzzcrow Oct 23, 2026
de66e62
Persist fixed process lease claims and predecessor exclusion bounds
buzzcrow Oct 23, 2026
7d633ed
Project process leases into fixed local admission deadlines
buzzcrow Oct 23, 2026
731c94c
Bind service grants and discovery to fixed process leases
buzzcrow Oct 23, 2026
377870b
Remove replacement parent split format and recovery branches
buzzcrow Oct 23, 2026
2873d97
Record matched intermediate stream performance results
buzzcrow Oct 23, 2026
fc6ae4e
Publish stream directories at ordered checkpoints instead of every ap…
buzzcrow Oct 23, 2026
0507614
Reuse verified read layouts and amortize stream capacity growth
buzzcrow Oct 23, 2026
3118a70
Bound allocation bursts for small stream appends
buzzcrow Oct 23, 2026
0c2f561
Prepare stream capacity ahead of append traffic
buzzcrow Oct 23, 2026
bfca31b
Complete stream appends at synchronized mirror boundaries
buzzcrow Oct 23, 2026
b13ce3f
Expose synchronized write scheduling latency
buzzcrow Oct 23, 2026
364d44c
Record controlled append affinity measurements
buzzcrow Oct 23, 2026
d289b4e
Prepare stream capacity from measured write bandwidth
buzzcrow Oct 24, 2026
132b96f
Replace Stream metadata trees with ordered chunk records
buzzcrow Oct 24, 2026
bfe1fbc
Retire completed Stream performance planning
buzzcrow Oct 24, 2026
c937315
Record Stream baselines and refine benchmark contracts
buzzcrow Oct 24, 2026
f03a72f
Report hardware C6 residency in shared system metrics
buzzcrow Oct 24, 2026
ff67ab6
Fix storage recovery and deployment lifecycle regressions
buzzcrow Oct 25, 2026
297a795
Fix storage readiness, stale split scans and CI progression
buzzcrow Oct 25, 2026
a1770a9
Make monitor socket paths and catalog timing tests deterministic
buzzcrow Oct 25, 2026
20cad37
Fix hardware status contention and streamline container CI
buzzcrow Oct 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .agents/skills/console-ui-e2e/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ does not need that reference.

## Run

Follow [test and CI progression](../debug-test/SKILL.md#test-and-ci-progression)
when sequencing suites or CI jobs. Fix a failure with its affected spec/group,
then resume the remaining selection; use this skill for browser diagnosis.

```sh
pixi run clean-env
pixi run test-container-e2e --scope console.operations --case <registered-owner> --concurrency 1 --node-cpus 0.25 --cpus 8 --memory-mib 16384
Expand Down
43 changes: 42 additions & 1 deletion .agents/skills/debug-test/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: debug-test
description: Diagnose a non-browser failing test from first divergence to root cause.
description: Run CROWDB test and CI jobs incrementally, and diagnose non-browser failures from first divergence to root cause.
---

<!-- Copyright 2026-present Gian <crow.db@outlook.com> -->
Expand All @@ -11,6 +11,47 @@ description: Diagnose a non-browser failing test from first divergence to root c
Do not increase timeouts, suppress errors, weaken assertions, add caller-side
retries, or otherwise make only the symptom pass.

## Test and CI progression

For expensive suites or multiple jobs, preserve an ordered list of commands,
completed results, logs, relevant source/image inputs, and the next unrun item.
Use existing runner records where available.

- Run until an error, then fix it before advancing the affected sequence. Do
not first run every job against a known defect. Prioritize bugs that make
subsequent tests slow, hang, or fail through the same dependency.
- For container E2E, use `--fail-fast` to stop queued cases while letting
already owned fixtures finish and clean up. Read failure records throughout
the log, not only its tail or completed-case count. Do not interrupt both a
launcher and its child; forwarded duplicate signals can break cleanup.
- Reproduce and repair the failure with its test or smallest meaningful test
group. Run that group's regression and relevant quality gates after the fix.
- Resume the remaining tests/jobs from the saved position. Retain earlier
passing results; repeat them only when the fix changes their behavior or
inputs. Preserve original ordering and coverage when selecting a remainder.
- Independent work already in flight may finish when it is unaffected. Stop
dispatching work that depends on the defect or would repeat its slowdown.
- Complete shared build prerequisites before parallel test jobs. Never run
concurrent builders against the same output directory; use independent
output directories when parallel builds are necessary. Perform shared
environment cleanup before dispatch; do not repeat `clean-env` while other
local jobs still own running fixtures. Host browser fixtures that require
stable Docker networks also share that constraint across local CI jobs;
keep their browser phases separate from other jobs' bridge creation/removal.
- Before long suites, inspect actual fixture slots and declared CPU/memory
costs. An outer parallel job count does not prove cases run concurrently.
Distinguish build, fixture startup, client execution, and cleanup time.
- Reuse valid builds and images. Rebuild when their relevant inputs change;
avoid unrelated feature/profile changes and repeated rebuilds while debugging.
- After the requested jobs have each been repaired and locally verified, run
the requested or required overall verification once as a closing gate. If
that gate finds another defect, repair its group and resume the affected
remainder rather than restarting valid completed groups from the beginning.
- Report actual coverage, failures, and unrun/blocked work. A focused pass does
not by itself establish that a whole suite or CI job passed.

## Diagnose a failure

1. Check relevant environment variables, stale processes, logs, persisted
state, and build artifacts.
2. Reproduce the exact test. If it passes alone, compare the affected suite
Expand Down
28 changes: 20 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ jobs:
name: verified-oci-image
path: target
- name: Import shared release image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Run complete S3 acceptance
run: pixi run test-e2e-s3
- name: Capture runner state on failure
Expand Down Expand Up @@ -374,7 +374,7 @@ jobs:
name: verified-oci-image
path: target
- name: Import shared release image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Run Iceberg acceptance
env:
E2E_PARTITION: ${{ matrix.partition }}
Expand Down Expand Up @@ -597,7 +597,7 @@ jobs:
pixi run sudo apt-get update
pixi run sudo apt-get install -y protobuf-compiler
- name: Import the shared verified image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Verify centralized KV fixtures and protocol layer
run: |
pixi run test-container-e2e-fixture
Expand Down Expand Up @@ -650,7 +650,7 @@ jobs:
name: verified-oci-image
path: target
- name: Import formal release image
run: pixi run image-import target/crowdb.oci.tar --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import target/crowdb.oci.tar --image crowdb-node:dev
- name: Verify installed system browser
run: |
for b in /snap/bin/chromium /usr/bin/chromium /usr/bin/chromium-browser /usr/bin/google-chrome /usr/bin/google-chrome-stable /usr/bin/microsoft-edge; do
Expand Down Expand Up @@ -681,15 +681,17 @@ jobs:
timeout-minutes: 60
strategy:
fail-fast: false
max-parallel: 3
max-parallel: 4
matrix:
include:
- group: disk
domains: diskdb diskio
- group: chunk
domains: chunkdb chunk-kv chunk-stream chunk-client
- group: platform
domains: dataset deployment
- group: dataset
domains: dataset
- group: deployment
domains: deployment
permissions:
contents: read
steps:
Expand All @@ -709,7 +711,17 @@ jobs:
pixi run sudo apt-get update
pixi run sudo apt-get install -y protobuf-compiler
- name: Import shared release image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- uses: Swatinem/rust-cache@v2
with:
shared-key: container-storage-${{ matrix.group }}-${{ hashFiles('pixi.lock') }}
cache-targets: false
cache-directories: |
target/debug
sdk/target
cmd-format: "pixi run {0}"
cache-workspace-crates: true
cache-on-failure: true
- name: Verify container domain
env:
E2E_DOMAINS: ${{ matrix.domains }}
Expand Down
24 changes: 16 additions & 8 deletions .github/workflows/docker-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ concurrency:
group: crowdb-container-preview-${{ github.ref_name }}
cancel-in-progress: false

env:
CROWDB_E2E_PRINT_SERVICE_ERRORS: "1"

jobs:
construct:
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -48,7 +51,7 @@ jobs:
pixi run sudo apt-get clean
pixi run df -h /
- name: Stage runtime without a container daemon
run: pixi run stage-single-node-container
run: pixi run bash container/oci-image/stage.sh
- name: Install locked standalone builder
run: pixi install --locked --manifest-path container/oci-image/pixi.toml
- name: Build OCI without Docker
Expand Down Expand Up @@ -87,7 +90,7 @@ jobs:
name: verified-oci-image
path: target
- name: Import exact OCI artifact into Docker
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Verify Docker startup and recovery
env:
CROWDB_PREVIEW_TEST_ARTIFACTS: ${{ runner.temp }}/crowdb-preview-artifacts
Expand All @@ -99,19 +102,24 @@ jobs:
pixi run clean-env
pixi run --skip-deps test-single-node-container
pixi run test-container-e2e --profile bridge-admission --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 6144
pixi run test-container-e2e --profile host --concurrency 1 --cpus 4 --memory-mib 4096
pixi run sudo --preserve-env=CROWDB_E2E_PRINT_SERVICE_ERRORS "$(command -v pixi)" run --as-is test-container-e2e --profile host --concurrency 1 --cpus 4 --memory-mib 4096
pixi install --locked --manifest-path container/oci-image/pixi.toml -e runtime
pixi run test-container-e2e --profile containerd-cluster --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 6144
pixi run test-container-e2e --profile containerd-cluster --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 8192
- name: Record verified digest
id: artifact
run: pixi run python container/oci-image/ci-receipt.py target/crowdb.oci.tar
- name: Export bounded host and container diagnostics
if: always()
run: |
pixi run sudo "$(command -v pixi)" run --as-is python e2e-test/publish.py --source .crowdb-runtime/artifacts --output target/oci-acceptance-public
pixi run sudo "$(command -v pixi)" run --as-is python e2e-test/publish.py --source "${{ runner.temp }}/crowdb-preview-artifacts" --output target/oci-preview-public
- uses: actions/upload-artifact@v4
if: failure()
with:
name: docker-acceptance-diagnostics
path: |
${{ runner.temp }}/crowdb-preview-artifacts
.crowdb-runtime/artifacts
target/oci-acceptance-public
target/oci-preview-public
if-no-files-found: ignore

containerd:
Expand Down Expand Up @@ -142,7 +150,7 @@ jobs:
- name: Verify containerd host-network startup and recovery
run: |
set -o pipefail
pixi run test-container-e2e --profile containerd-host --concurrency 1 --cpus 3 --memory-mib 2048 --archive "$PWD/target/crowdb.oci.tar" 2>&1 | pixi run tee target/containerd-acceptance.log
pixi run sudo --preserve-env=CROWDB_E2E_PRINT_SERVICE_ERRORS "$(command -v pixi)" run --as-is test-container-e2e --profile containerd-host --concurrency 1 --cpus 3 --memory-mib 3072 --archive "$PWD/target/crowdb.oci.tar" 2>&1 | pixi run tee target/containerd-acceptance.log
- uses: actions/upload-artifact@v4
if: failure()
with:
Expand Down Expand Up @@ -178,7 +186,7 @@ jobs:
pixi run sudo apt-get update
pixi run sudo apt-get install -y protobuf-compiler
- name: Import the shared verified image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Verify centralized KV fixtures and protocol layer
run: |
pixi run test-container-e2e-fixture
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/iceberg-container-ecosystem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
pixi-version: latest
- uses: Swatinem/rust-cache@v2
- name: Build formal release image
run: pixi run build-single-node-container
run: pixi run oci-build --load
- name: Prepare locked clients
run: |
pixi install --locked -e iceberg-ecosystem
Expand Down
24 changes: 16 additions & 8 deletions .github/workflows/release-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ concurrency:
group: crowdb-container-${{ github.ref_name }}
cancel-in-progress: false

env:
CROWDB_E2E_PRINT_SERVICE_ERRORS: "1"

jobs:
construct:
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -50,7 +53,7 @@ jobs:
pixi run sudo apt-get clean
pixi run df -h /
- name: Stage runtime without a container daemon
run: pixi run stage-single-node-container
run: pixi run bash container/oci-image/stage.sh
- name: Install locked standalone builder
run: pixi install --locked --manifest-path container/oci-image/pixi.toml
- name: Build OCI without Docker
Expand Down Expand Up @@ -89,7 +92,7 @@ jobs:
name: verified-oci-image
path: target
- name: Import exact OCI artifact into Docker
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Verify Docker startup and recovery
env:
CROWDB_PREVIEW_TEST_ARTIFACTS: ${{ runner.temp }}/crowdb-preview-artifacts
Expand All @@ -101,19 +104,24 @@ jobs:
pixi run clean-env
pixi run --skip-deps test-single-node-container
pixi run test-container-e2e --profile bridge-admission --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 6144
pixi run test-container-e2e --profile host --concurrency 1 --cpus 4 --memory-mib 4096
pixi run sudo --preserve-env=CROWDB_E2E_PRINT_SERVICE_ERRORS "$(command -v pixi)" run --as-is test-container-e2e --profile host --concurrency 1 --cpus 4 --memory-mib 4096
pixi install --locked --manifest-path container/oci-image/pixi.toml -e runtime
pixi run test-container-e2e --profile containerd-cluster --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 6144
pixi run test-container-e2e --profile containerd-cluster --concurrency 1 --node-cpus 1 --cpus 4 --memory-mib 8192
- name: Record verified digest
id: artifact
run: pixi run python container/oci-image/ci-receipt.py target/crowdb.oci.tar
- name: Export bounded host and container diagnostics
if: always()
run: |
pixi run sudo "$(command -v pixi)" run --as-is python e2e-test/publish.py --source .crowdb-runtime/artifacts --output target/oci-acceptance-public
pixi run sudo "$(command -v pixi)" run --as-is python e2e-test/publish.py --source "${{ runner.temp }}/crowdb-preview-artifacts" --output target/oci-preview-public
- uses: actions/upload-artifact@v4
if: failure()
with:
name: docker-acceptance-diagnostics
path: |
${{ runner.temp }}/crowdb-preview-artifacts
.crowdb-runtime/artifacts
target/oci-acceptance-public
target/oci-preview-public
if-no-files-found: ignore

containerd:
Expand Down Expand Up @@ -144,7 +152,7 @@ jobs:
- name: Verify containerd host-network startup and recovery
run: |
set -o pipefail
pixi run test-container-e2e --profile containerd-host --concurrency 1 --cpus 3 --memory-mib 2048 --archive "$PWD/target/crowdb.oci.tar" 2>&1 | pixi run tee target/containerd-acceptance.log
pixi run sudo --preserve-env=CROWDB_E2E_PRINT_SERVICE_ERRORS "$(command -v pixi)" run --as-is test-container-e2e --profile containerd-host --concurrency 1 --cpus 3 --memory-mib 3072 --archive "$PWD/target/crowdb.oci.tar" 2>&1 | pixi run tee target/containerd-acceptance.log
- uses: actions/upload-artifact@v4
if: failure()
with:
Expand Down Expand Up @@ -181,7 +189,7 @@ jobs:
pixi run sudo apt-get update
pixi run sudo apt-get install -y protobuf-compiler
- name: Import the shared verified image
run: pixi run image-import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
run: pixi run --manifest-path container/oci-image/pixi.toml import "$PWD/target/crowdb.oci.tar" --image crowdb-node:dev
- name: Verify centralized KV fixtures and protocol layer
run: |
pixi run test-container-e2e-fixture
Expand Down
3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ and transport exposed through FFI.
aliases or compatibility symlinks such as `.devin`.
- Code changes: `/coding`; add `/console-ui-e2e` only for visible UI or
Playwright work.
- Test diagnosis: `/debug-test`, or `/console-ui-e2e` for browser/UI failures.
- Test execution and CI progression: `/debug-test`; use `/console-ui-e2e` for
browser/UI diagnosis.
- Docs: one matched `/doc-*` guide; `/doc` only for general or unclear targets.
- Requirements: `/implement-requirement`; open the detail directly and consult
the backlog index only for selection, ordering, or status.
Expand Down
Loading
Loading