Skip to content

Commit 0b458bb

Browse files
author
Clawdio
committed
chore: sync public OSS from private main (2026-04-03)
Syncs 164 commits worth of changes from private main: - Step 13 refactor (streaming bridge, retry policy, request builder, compaction extraction) - Detached headless stabilization - Skill lifecycle release fixes (sign command, semantics, docs, e2e verification) - Chat attachments support - Tool error surfacing + loop hardening - Backlog cleanup and roadmap reconciliation
1 parent 0d24a6c commit 0b458bb

209 files changed

Lines changed: 57322 additions & 26681 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
branches: [ main ]
66
pull_request:
7-
branches: [ main ]
7+
branches: [ main, staging ]
88

99
env:
1010
CARGO_TERM_COLOR: always
@@ -40,6 +40,8 @@ jobs:
4040
- name: Cargo check
4141
run: cargo check --workspace --all-targets
4242

43+
- name: Cargo check (oauth-bridge feature)
44+
run: cargo check -p fx-cli --features oauth-bridge --all-targets
4345

4446
test:
4547
name: Test
@@ -62,6 +64,8 @@ jobs:
6264
- name: Run tests
6365
run: cargo test --workspace
6466

67+
- name: Run tests (oauth-bridge feature)
68+
run: cargo test -p fx-cli --features oauth-bridge
6569

6670
clippy:
6771
name: Clippy
@@ -86,6 +90,8 @@ jobs:
8690
- name: Run clippy
8791
run: cargo clippy --workspace --all-targets -- -D warnings
8892

93+
- name: Run clippy (oauth-bridge feature)
94+
run: cargo clippy -p fx-cli --features oauth-bridge --all-targets -- -D warnings
8995

9096
fmt:
9197
name: Format
@@ -100,3 +106,23 @@ jobs:
100106

101107
- name: Check formatting
102108
run: cargo fmt --all --check
109+
110+
ci_checks:
111+
name: CI Checks
112+
runs-on: ubuntu-latest
113+
steps:
114+
- uses: actions/checkout@v4
115+
116+
- name: Install shellcheck
117+
run: |
118+
if ! command -v shellcheck >/dev/null 2>&1; then
119+
sudo apt-get update
120+
sudo apt-get install -y shellcheck
121+
fi
122+
123+
- name: Shellcheck CI scripts
124+
run: shellcheck scripts/spec-tests/ci-workflow-cache-paths-check.sh
125+
126+
- name: Verify workflow cache path safety
127+
run: ./scripts/spec-tests/tests/ci-workflow-cache-paths-test.sh
128+

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ Fawx skills are WASM modules that extend the engine's capabilities. To create
130130
a new skill:
131131

132132
1. Use the skill template: `cargo generate fawxai/skill-template`
133-
2. Implement the `Skill` trait
134-
3. Test locally with `fawx skill install --path ./target/wasm32-wasi/release/`
133+
2. Build and install locally with `fawx skill build .`
134+
3. Test a prebuilt artifact with `fawx skill install ./target/wasm32-wasip1/release/<skill>.wasm`
135135
4. Publish to the marketplace (coming soon)
136136

137137
See [docs/skills/](docs/skills/) for the full SDK reference.

Cargo.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ENGINEERING.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,42 @@ feature/* → dev → staging → main
203203

204204
- **feature branches**: cut from `dev`, PRs target `dev`
205205
- **dev**: integration branch — merge freely after CI + TUI smoke test pass. Multiple features tested together here.
206-
- **staging**: release candidate — maintainer promotes `dev → staging` after integration testing passes
206+
- **staging**: release candidate — Joe manually promotes `dev → staging` after integration testing passes
207207
- **main**: production releases only — `staging → main` for releases
208208

209209
All three long-lived branches are protected: no force push, no deletion.
210210

211211
---
212212

213-
*This file defines the engineering standards for the Fawx codebase. All contributions are held to these rules. For style preferences, see `TASTE.md`.*
213+
## 7. Agent Execution Model
214+
215+
### Roles
216+
- **Clawdio main session** is the lead. Orchestrates, designs, reviews results, makes architectural calls. Does NOT write code, regardless of size. All code is delegated to subagents.
217+
- **Subagents** do all implementation, review, and fix work.
218+
219+
### Model policy
220+
- **Implementers + Fixers** (code generation): `model: "openai-codex/gpt-5.4"`, `thinking: "xhigh"`.
221+
- **Reviewers** (code analysis): `model: "anthropic/claude-opus-4-6"`, `thinking: "adaptive"`.
222+
- GPT-5.4 xhigh for writing code, Opus adaptive for judging code. No Sonnet unless Joe explicitly requests it.
223+
- Always use full model paths — never aliases (can silently fall back to wrong provider).
224+
225+
### Orchestration model
226+
- **Main session owns the state machine.** Clawdio directly manages implement → review → fix → re-review loops. Do not delegate lifecycle management to N+1 orchestrator subagents.
227+
- **Subagents get single-responsibility prompts.** One job each: "implement this spec," "review this diff," "fix these findings."
228+
- **Spec-driven implementation.** Implementers receive a written spec file, not prose descriptions.
229+
230+
### Concurrency
231+
- **Simple** (< 50 lines): Direct Codex worker + Opus review. Parallel OK.
232+
- **Standard** (single-PR features): Main session spawns workers directly. Parallel PRs OK (max 2-3) if no file overlap.
233+
- **Complex** (multi-crate, architectural): **Sequential only — one PR at a time.** Main session manages full context.
234+
235+
### Rules
236+
1. Main session NEVER writes code. All code work delegated to subagents, no exceptions.
237+
2. Implementers + Fixers use `openai-codex/gpt-5.4` with `thinking: "xhigh"`. Reviewers use `anthropic/claude-opus-4-6` with `thinking: "adaptive"`.
238+
3. Main session chains stages (implement → review → fix → re-review) directly — no N+1 orchestrator layer.
239+
4. All review findings (blocking, non-blocking, nice-to-have) must be fixed. Fresh reviewer for R2.
240+
5. Every subagent prompt includes ENGINEERING.md rules and the spec file path.
241+
242+
---
243+
244+
*This file is immutable doctrine. Cite it in PR reviews. Changes require explicit user approval. For evolving preferences and style, see `TASTE.md`.*

README.md

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ Fawx is a local-first agentic engine. It runs on your machine, calls LLMs for re
1313
## Quick Start
1414

1515
```bash
16+
# Build
1617
git clone https://github.com/fawxai/fawx.git
17-
cd fawx
18-
./scripts/install.sh
18+
cd fawx && cargo build --release
1919

20-
fawx setup
21-
fawx serve
22-
```
20+
# Configure (interactive wizard)
21+
./target/release/fawx setup
2322

24-
This builds from source, installs the `fawx` binary to `~/.local/bin/`, and walks you through configuration. Set `INSTALL_DIR` to change the install location.
23+
# Run
24+
./target/release/fawx serve
25+
```
2526

2627
Bring your own API key (Anthropic, OpenAI, or local models). Fawx never sends data anywhere except the LLM provider you choose.
2728

@@ -102,7 +103,7 @@ WASM skills extend Fawx's capabilities. Each skill runs in a sandboxed WebAssemb
102103

103104
## WASM Skills
104105

105-
Skills are Rust crates compiled to WebAssembly. The [skill marketplace](https://github.com/fawxai) has ready-to-install skills. Building your own takes minutes:
106+
Skills are Rust crates compiled to WebAssembly. The recommended local-dev workflow is `fawx skill build <project>`: it builds the project for `wasm32-wasip1`, installs it into `~/.fawx/skills/`, and signs it when a signing key is present.
106107

107108
```rust
108109
#[no_mangle]
@@ -114,13 +115,29 @@ pub extern "C" fn run() {
114115
```
115116

116117
```bash
117-
# Install a skill
118-
fawx skill install fawxai/skill-web-search
119-
120-
# Or build your own
118+
# Recommended local-dev workflow
121119
cargo generate fawxai/skill-template
122-
cargo build --release --target wasm32-unknown-unknown
123-
fawx skill install ./target/wasm32-unknown-unknown/release/my_skill.wasm
120+
cd my-skill
121+
fawx skill build .
122+
```
123+
124+
Use the other paths when they match your input:
125+
126+
- `fawx skill build <project>` is the canonical local-dev path for a custom skill project.
127+
- `skills/build.sh --install` is the repo maintainer path for the built-in `skills/` collection.
128+
- `fawx skill install <path>` is the artifact path for a prebuilt `.wasm` file or skill directory.
129+
- `fawx keys generate` creates a local signing keypair and trusts the matching public key for local verification.
130+
- `fawx sign <skill>` signs an already-installed skill when it still needs a signature.
131+
132+
If you generate or trust a key while the server is already running, restart it before expecting the loaded skill state to flip from `invalid` to `valid`.
133+
134+
```bash
135+
# Prebuilt local artifact
136+
cargo build --release --target wasm32-wasip1
137+
fawx skill install ./target/wasm32-wasip1/release/my_skill.wasm
138+
139+
# Built-in repo skills collection
140+
skills/build.sh --install
124141
```
125142

126143
Available skills: [web search](https://github.com/fawxai/skill-brave-search) · [web fetch](https://github.com/fawxai/skill-web-fetch) · [scheduler](https://github.com/fawxai/skill-scheduler) · weather · vision · TTS · STT · browser · canvas

docs/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Fawx Documentation
2+
3+
## Current
4+
5+
| Document | Description |
6+
|----------|-------------|
7+
| [SPEC.md](SPEC.md) | Original product specification |
8+
| [WASM_SKILLS.md](WASM_SKILLS.md) | WASM skill system design |
9+
| [codex-oauth-bridge-api.md](codex-oauth-bridge-api.md) | OAuth bridge API for OpenAI auth |
10+
| [squad-constitution.md](squad-constitution.md) | Development standards |
11+
| [testing-patterns.md](testing-patterns.md) | Test organization and patterns |
12+
13+
## Specs
14+
15+
| Document | Description |
16+
|----------|-------------|
17+
| [phase3-roadmap.md](specs/phase3-roadmap.md) | Phase 3 roadmap (docs, polish, launch) |
18+
19+
## Reference
20+
21+
Engineering standards and codebase rules live in the repo root:
22+
- [`ENGINEERING.md`](../ENGINEERING.md) — Immutable development doctrine
23+
- [`ARCHITECTURE.md`](../ARCHITECTURE.md) — System architecture overview
24+
- [`TASTE.md`](../TASTE.md) — Style and design preferences
25+
26+
## Archive
27+
28+
Completed and backlog specs are archived:
29+
- `archive/completed-specs/` — 52 specs from Phases 0-2 and Waves 1-8
30+
- `archive/completed-docs/` — 11 completed design documents
31+
- `archive/backlog-specs/` — 11 future feature specs
32+
- `deprecated/` — 8 deprecated documents

0 commit comments

Comments
 (0)