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
195036a
feat: restructure as Cargo workspace with unified binary feature flags
Jun 18, 2026
00adf39
fix: wire workspace into main.rs, remove duplicated source
Jun 18, 2026
d25cbe6
fix: address remaining review findings
Jun 18, 2026
928815d
fix: add unified mode hook in main.rs, update gateway CI workflows
Jun 18, 2026
3194a88
fix: update Cargo.lock + clean up CI gateway job
Jun 18, 2026
1641b6f
fix: add COPY crates/ to all Dockerfiles for workspace build
Jun 18, 2026
cfd459f
fix: optimize Dockerfile layer caching for workspace
Jun 18, 2026
b6df01c
fix: apply layer cache optimization to agentcore and native Dockerfiles
Jun 18, 2026
504b5ea
fix: add AppState and related types to gateway lib.rs
Jun 18, 2026
198e19c
fix: resolve CI clippy failure + restore gateway standalone binary
chaodu-agent Jun 18, 2026
140d826
fix: remove unused Instant import in gateway binary
chaodu-agent Jun 18, 2026
bf8b927
fix: add dummy gateway main.rs to Dockerfile dep-cache layers
chaodu-agent Jun 18, 2026
168b46e
fix: touch all workspace member sources in Docker final build step
chaodu-agent Jun 18, 2026
263d2e8
refactor: simplify — keep core in src/, only extract gateway to crate
Jun 18, 2026
b651b13
feat: add discord/slack feature gates (Phase 2)
Jun 18, 2026
f2ea6cf
fix: address review findings — fix Docker builds, add CI coverage
chaodu-agent Jun 19, 2026
b4a102a
fix: remove broken 'echo > \' lines in Dockerfiles
chaodu-agent Jun 19, 2026
673ab3e
fix: gate AppState fields with #[cfg] and add gateway README
chaodu-agent Jun 19, 2026
88c907c
feat: add FEATURES build-arg to all Dockerfiles
chaodu-agent Jun 19, 2026
be765da
ci: add unified-<agent> variants to docker smoke-test matrix
chaodu-agent Jun 19, 2026
7d73041
chore: merge main to resolve conflicts
Jun 19, 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
4 changes: 2 additions & 2 deletions .github/workflows/build-gateway.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
uses: docker/build-push-action@v6
with:
context: .
file: gateway/Dockerfile
file: Dockerfile.gateway
platforms: ${{ matrix.platform.os }}
outputs: type=image,name=${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=${{ inputs.dry_run != true }}
cache-from: type=gha,scope=gateway-${{ matrix.platform.os }}
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:

### Links

- [Gateway README](https://github.com/openabdev/openab/blob/main/gateway/README.md)
- [Gateway Crate](https://github.com/openabdev/openab/tree/main/crates/openab-gateway)
- [ADR: Custom Gateway](https://github.com/openabdev/openab/blob/main/docs/adr/custom-gateway.md)
EOF
sed -i 's/^ //' /tmp/release-notes.md
Expand Down
37 changes: 9 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
paths:
- "src/**"
- "gateway/**"
- "crates/**"
- "operator/**"
- "Cargo.toml"
- "Cargo.lock"
Expand All @@ -18,7 +18,6 @@ jobs:
runs-on: ubuntu-latest
outputs:
core: ${{ steps.filter.outputs.core }}
gateway: ${{ steps.filter.outputs.gateway }}
operator: ${{ steps.filter.outputs.operator }}
steps:
- uses: actions/checkout@v6
Expand All @@ -29,8 +28,7 @@ jobs:
BASE=${{ github.event.pull_request.base.sha }}
HEAD=${{ github.event.pull_request.head.sha }}
CHANGED=$(git diff --name-only "$BASE" "$HEAD")
echo "core=$(echo "$CHANGED" | grep -qE '^(src/|Cargo\.(toml|lock))' && echo true || echo false)" >> "$GITHUB_OUTPUT"
echo "gateway=$(echo "$CHANGED" | grep -q '^gateway/' && echo true || echo false)" >> "$GITHUB_OUTPUT"
echo "core=$(echo "$CHANGED" | grep -qE '^(src/|crates/|Cargo\.(toml|lock))' && echo true || echo false)" >> "$GITHUB_OUTPUT"
echo "operator=$(echo "$CHANGED" | grep -q '^operator/' && echo true || echo false)" >> "$GITHUB_OUTPUT"

check:
Expand All @@ -44,33 +42,16 @@ jobs:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: cargo check
run: cargo check
run: cargo check --workspace
- name: cargo clippy
run: cargo clippy -- -D warnings
run: cargo clippy --workspace -- -D warnings
- name: cargo clippy (unified)
run: cargo clippy --workspace --features unified -- -D warnings
- name: cargo test
run: cargo test
run: cargo test --workspace

gateway:
needs: changes
if: needs.changes.outputs.gateway == 'true'
runs-on: ubuntu-latest
defaults:
run:
working-directory: gateway
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: gateway
- name: cargo check
run: cargo check
- name: cargo clippy
run: cargo clippy -- -D warnings
- name: cargo test
run: cargo test
# gateway tests are now covered by `cargo test --workspace` in the check job above
# (openab-gateway is a workspace member in crates/openab-gateway/)

operator:
needs: changes
Expand Down
41 changes: 27 additions & 14 deletions .github/workflows/docker-smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
paths:
- 'Dockerfile*'
- 'src/**'
- 'crates/**'
- 'Cargo.*'

jobs:
Expand All @@ -13,25 +14,37 @@ jobs:
fail-fast: false
matrix:
variant:
- { dockerfile: Dockerfile, suffix: "", agent: "kiro-cli", agent_args: "acp --trust-all-tools" }
- { dockerfile: Dockerfile.claude, suffix: "-claude", agent: "claude-agent-acp", agent_args: "" }
- { dockerfile: Dockerfile.codex, suffix: "-codex", agent: "codex-acp", agent_args: "" }
- { dockerfile: Dockerfile.gemini, suffix: "-gemini", agent: "gemini", agent_args: "--acp" }
- { dockerfile: Dockerfile.copilot, suffix: "-copilot", agent: "copilot", agent_args: "--acp" }
- { dockerfile: Dockerfile.opencode, suffix: "-opencode", agent: "opencode", agent_args: "acp" }
- { dockerfile: Dockerfile.cursor, suffix: "-cursor", agent: "cursor-agent", agent_args: "acp" }
- { dockerfile: Dockerfile.mimocode, suffix: "-mimocode", agent: "mimo", agent_args: "acp" }
- { dockerfile: Dockerfile.hermes, suffix: "-hermes", agent: "hermes-acp", agent_args: "" }
- { dockerfile: Dockerfile.grok, suffix: "-grok", agent: "grok", agent_args: "agent stdio" }
- { dockerfile: Dockerfile.antigravity, suffix: "-antigravity", agent: "agy-acp", agent_args: "" }
- { dockerfile: Dockerfile.pi, suffix: "-pi", agent: "pi-acp", agent_args: "" }
- { dockerfile: openshell/Dockerfile, suffix: "-native-sandbox", agent: "openab-agent", agent_args: "" }
- { dockerfile: Dockerfile, suffix: "", agent: "kiro-cli", agent_args: "acp --trust-all-tools", build_args: "" }
- { dockerfile: Dockerfile, suffix: "-unified", agent: "kiro-cli", agent_args: "acp --trust-all-tools", build_args: "--build-arg BUILD_MODE=unified" }
- { dockerfile: Dockerfile.claude, suffix: "-claude", agent: "claude-agent-acp", agent_args: "", build_args: "" }
- { dockerfile: Dockerfile.claude, suffix: "-unified-claude", agent: "claude-agent-acp", agent_args: "", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.codex, suffix: "-codex", agent: "codex-acp", agent_args: "", build_args: "" }
- { dockerfile: Dockerfile.codex, suffix: "-unified-codex", agent: "codex-acp", agent_args: "", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.gemini, suffix: "-gemini", agent: "gemini", agent_args: "--acp", build_args: "" }
- { dockerfile: Dockerfile.gemini, suffix: "-unified-gemini", agent: "gemini", agent_args: "--acp", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.copilot, suffix: "-copilot", agent: "copilot", agent_args: "--acp", build_args: "" }
- { dockerfile: Dockerfile.copilot, suffix: "-unified-copilot", agent: "copilot", agent_args: "--acp", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.opencode, suffix: "-opencode", agent: "opencode", agent_args: "acp", build_args: "" }
- { dockerfile: Dockerfile.opencode, suffix: "-unified-opencode", agent: "opencode", agent_args: "acp", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.cursor, suffix: "-cursor", agent: "cursor-agent", agent_args: "acp", build_args: "" }
- { dockerfile: Dockerfile.cursor, suffix: "-unified-cursor", agent: "cursor-agent", agent_args: "acp", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.mimocode, suffix: "-mimocode", agent: "mimo", agent_args: "acp", build_args: "" }
- { dockerfile: Dockerfile.mimocode, suffix: "-unified-mimocode", agent: "mimo", agent_args: "acp", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.hermes, suffix: "-hermes", agent: "hermes-acp", agent_args: "", build_args: "" }
- { dockerfile: Dockerfile.hermes, suffix: "-unified-hermes", agent: "hermes-acp", agent_args: "", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.grok, suffix: "-grok", agent: "grok", agent_args: "agent stdio", build_args: "" }
- { dockerfile: Dockerfile.grok, suffix: "-unified-grok", agent: "grok", agent_args: "agent stdio", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.antigravity, suffix: "-antigravity", agent: "agy-acp", agent_args: "", build_args: "" }
- { dockerfile: Dockerfile.antigravity, suffix: "-unified-antigravity", agent: "agy-acp", agent_args: "", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: Dockerfile.pi, suffix: "-pi", agent: "pi-acp", agent_args: "", build_args: "" }
- { dockerfile: Dockerfile.pi, suffix: "-unified-pi", agent: "pi-acp", agent_args: "", build_args: "--build-arg FEATURES=unified" }
- { dockerfile: openshell/Dockerfile, suffix: "-native-sandbox", agent: "openab-agent", agent_args: "", build_args: "" }
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Build image
run: docker build -t openab-test${{ matrix.variant.suffix }} -f ${{ matrix.variant.dockerfile }} .
run: docker build -t openab-test${{ matrix.variant.suffix }} -f ${{ matrix.variant.dockerfile }} ${{ matrix.variant.build_args }} .

- name: Verify openab CMD does not crash
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gateway-release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Update gateway version
run: |
VERSION="${{ inputs.version }}"
sed -i "s/^version = .*/version = \"${VERSION}\"/" gateway/Cargo.toml
sed -i "s/^version = .*/version = \"${VERSION}\"/" crates/openab-gateway/Cargo.toml
echo "::notice::Gateway release version: ${VERSION}"

- name: Create release PR
Expand Down
Loading
Loading