Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
4ec47a0
chore(deps): patch brace-expansion audit finding
F0RLE May 21, 2026
f72ac9e
test: lock provider routing and console filters
F0RLE May 21, 2026
e355a9a
refactor: split console log target helpers
F0RLE May 21, 2026
41c4a40
ci: add informational cross-platform checks
F0RLE May 21, 2026
808f191
fix: address review hardening feedback
F0RLE May 21, 2026
9b0c17c
refactor: split release target classification
F0RLE May 21, 2026
4c1a629
refactor: split local session context planning
F0RLE May 21, 2026
b209c50
fix: gate window transparency on macos
F0RLE May 21, 2026
1747edb
refactor: split streaming chunk parser
F0RLE May 21, 2026
0075284
fix: clean cross-platform warning paths
F0RLE May 21, 2026
cc8e3f7
fix: quiet cross-platform probe warnings
F0RLE May 21, 2026
2055e33
refactor: split console overview builder
F0RLE May 21, 2026
616f099
refactor: split engine id normalization
F0RLE May 21, 2026
987f1eb
refactor: split AI provider resolution
F0RLE May 21, 2026
2a47b44
refactor: split AI key validation
F0RLE May 21, 2026
28be161
fix: honor JS module package manager
F0RLE May 21, 2026
bc13584
docs: refresh project roadmap and integration state
F0RLE May 22, 2026
6be1493
feat: expose backend catalog snapshot
F0RLE May 22, 2026
f8322f7
refactor: consume backend provider catalog in frontend
F0RLE May 22, 2026
2bccb2b
fix: harden AI provider sessions and streaming
F0RLE May 22, 2026
a98169f
fix: stabilize console log filtering and cleanup
F0RLE May 22, 2026
ba9e985
feat: add read-only agent launcher state endpoint
F0RLE May 22, 2026
3e721a7
feat: expose read-only agent console logs
F0RLE May 22, 2026
4940440
fix: address provider and validation review issues
F0RLE May 22, 2026
ee46faf
feat: allow explicit local agent API token
F0RLE May 22, 2026
1c29d2d
fix: refresh selected module runtime marker
F0RLE May 22, 2026
3efbbf6
fix: sync agent-started module selection
F0RLE May 22, 2026
baf94b5
feat: add trusted local agent control api
F0RLE May 22, 2026
8b462ac
feat: add agent control settings panel
F0RLE May 22, 2026
26aa587
fix: route agent profile tokens through api auth
F0RLE May 22, 2026
a809fe6
fix: hide revoke action for revoked agents
F0RLE May 22, 2026
0851b6c
fix: keep settings content within scroll bounds
F0RLE May 22, 2026
433c958
fix: hide and delete agent tokens
F0RLE May 22, 2026
352d6d8
fix: refresh agent control on api approvals
F0RLE May 22, 2026
6f18a6e
fix(ai): handle provider policy edge cases
F0RLE May 22, 2026
3f6136a
feat(agent): harden local control api
F0RLE May 22, 2026
bdd41aa
feat(agent): add launcher control ui
F0RLE May 22, 2026
a9c56ef
docs(agent): document launcher control api
F0RLE May 22, 2026
57461eb
fix(agent): keep token copy and stop waits safe
F0RLE May 22, 2026
fae0a50
fix(console): localize agent logs and polish controls
F0RLE May 22, 2026
34142d0
fix(settings): clarify external agent control copy
F0RLE May 22, 2026
8fc5652
fix(settings): link external agent api docs
F0RLE May 22, 2026
ee7c14a
fix(settings): match agent docs badge style
F0RLE May 22, 2026
35b3acb
fix(settings): move agent docs badge away from toggle
F0RLE May 22, 2026
fa9406b
fix(agent): consume one-time tokens atomically
F0RLE May 22, 2026
b9c1885
feat(settings): add section jump indicator
F0RLE May 22, 2026
e0103e0
fix(settings): soften section jump indicator
F0RLE May 22, 2026
fa4ad00
fix(agent-api): harden settings access
F0RLE May 23, 2026
f97359b
feat(agent-control): polish settings experience
F0RLE May 23, 2026
18c4b22
docs(agent-api): align automation contract
F0RLE May 23, 2026
fd8259b
fix(agent-control): preserve token copy safety
F0RLE May 23, 2026
cdab42c
fix(settings): satisfy css keyword casing
F0RLE May 23, 2026
735bb90
fix(agent-api): tighten approval and draft safeguards
F0RLE May 23, 2026
1d14551
fix(review): address coderabbit stabilization findings
F0RLE May 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
68 changes: 65 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,12 @@ jobs:
runs-on: windows-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: "26.1.0"
cache: "npm"
Expand Down Expand Up @@ -82,7 +84,9 @@ jobs:
runs-on: windows-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup Rust
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
Expand Down Expand Up @@ -136,3 +140,61 @@ jobs:
with:
name: rust-lcov
path: src-tauri/lcov.info

check-cross-platform:
name: Cross-platform Compatibility (${{ matrix.os }})
runs-on: ${{ matrix.os }}
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Install Linux system dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf \
libxdo-dev

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: "26.1.0"
cache: "npm"
cache-dependency-path: src/package-lock.json

- name: Setup Rust
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
with:
toolchain: 1.95.0

- name: Rust Cache
uses: Swatinem/rust-cache@65012b490220f477f20ab979e35ae732e6de4e68 # node24
continue-on-error: true
with:
workspaces: "src-tauri -> target"
cache-targets: false

- name: Install Dependencies
run: |
cd src
npm ci

- name: Frontend Type Check
run: |
cd src
npm run typecheck

- name: Backend Target Check
run: |
cd src-tauri
cargo check --all-targets --all-features
4 changes: 3 additions & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup Rust
if: matrix.language == 'rust'
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ jobs:
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Review dependency changes
uses: actions/dependency-review-action@v5
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
fetch-depth: 0
ref: ${{ env.RELEASE_TAG }}

Expand All @@ -59,7 +60,7 @@ jobs:
}

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: "26.1.0"
cache: "npm"
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/security-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@ jobs:
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: "26.1.0"
cache: "npm"
Expand All @@ -44,7 +46,9 @@ jobs:
timeout-minutes: 25
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup Rust
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7
Expand Down
2 changes: 2 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Release tags must match project versions and point to commits reachable from `ma
Current application security posture:

- provider secrets are backend-owned
- provider secrets are stored in an encrypted backend file today; platform
keystore storage is planned but not implemented yet
- frontend/backend contracts are generated from Rust types
- local integration API tokens are runtime-issued and scoped
- import paths, runtime entry paths, settings UI paths, archive entries, and log
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/sdk/javascript/axelate-client.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export class AxelateClient {

saveSettings(settings) {
return this.request(
'PUT',
'PATCH',
`/v1/modules/${encodeURIComponent(this.moduleId)}/settings`,
settings,
);
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/sdk/python/axelate_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def settings(self) -> dict[str, Any]:

def save_settings(self, settings: dict[str, Any]) -> dict[str, Any]:
return self.request(
"PUT",
"PATCH",
f"/v1/modules/{self.encoded_module_id}/settings",
settings,
)
Expand Down
Loading
Loading