[codex] Add Conductor workspace setup (#5)

* Add Conductor workspace setup

* Refine Conductor setup script structure

* Separate Conductor setup steps

* Consolidate Conductor setup script

* Use KTX env var for agent overlays

* Restore Orbit verification summary docs
This commit is contained in:
Andrey Avtomonov 2026-05-11 10:40:30 +02:00 committed by GitHub
parent dc66ffdffb
commit 075764fe77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 39 additions and 1 deletions

View file

@ -11,6 +11,15 @@ Run from the KTX workspace root:
pnpm run relationships:verify-orbit
```
Expected relationship summary:
```text
Accepted: 9
Review: 0
Rejected: 0
Skipped: 0
```
The command refreshes:
```text

View file

@ -17,16 +17,26 @@ describe('Conductor workspace scripts', () => {
assert.equal(manifest.runScriptMode, 'nonconcurrent');
});
it('sets up exact uv, Python packages, JS packages, and the built CLI', async () => {
it('sets up exact uv, local files, Python packages, JS packages, and the built CLI', async () => {
const setupScript = await readText('scripts/conductor-setup.sh');
assert.match(setupScript, /read_required_uv_version\(\)/);
assert.match(setupScript, /\.context\/bin\/uv-\$required_version/);
assert.match(setupScript, /link_agent_overlays/);
assert.match(setupScript, /CONDUCTOR_ROOT_PATH/);
assert.match(setupScript, /uv sync --all-packages --all-groups/);
assert.match(setupScript, /pnpm install --frozen-lockfile --prefer-offline/);
assert.match(setupScript, /pnpm run native:rebuild/);
assert.match(setupScript, /pnpm run build/);
assert.match(setupScript, /packages\/cli\/dist\/bin\.js dev doctor setup --no-input/);
assert.doesNotMatch(setupScript, /scripts\/conductor\//);
});
it('links private agent overlays when KTX_AGENT_OVERLAYS_ROOT is set', async () => {
const workspaceScript = await readText('scripts/conductor-setup.sh');
assert.match(workspaceScript, /KTX_AGENT_OVERLAYS_ROOT/);
assert.match(workspaceScript, /ln -s "\$\{KTX_AGENT_OVERLAYS_ROOT\}\/\.agents" \.agents/);
});
it('runs the KTX daemon on the documented fixed local port', async () => {

View file

@ -82,8 +82,27 @@ resolve_uv_for_project() {
printf '%s\n' "$workspace_uv"
}
link_agent_overlays() {
if [ -z "${KTX_AGENT_OVERLAYS_ROOT:-}" ] || [ ! -d "${KTX_AGENT_OVERLAYS_ROOT}/.agents" ]; then
return 0
fi
if [ -L .agents ]; then
return 0
fi
if [ -e .agents ]; then
echo "Skipping .agents symlink because .agents already exists and is not a symlink." >&2
return 0
fi
ln -s "${KTX_AGENT_OVERLAYS_ROOT}/.agents" .agents
}
echo "=== Conductor KTX workspace setup ==="
link_agent_overlays
if [ -n "${CONDUCTOR_ROOT_PATH:-}" ] && [ -f "$CONDUCTOR_ROOT_PATH/.env" ]; then
ln -sf "$CONDUCTOR_ROOT_PATH/.env" .env
echo "Linked .env"