Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ jobs:
node-version: 22
cache: npm
cache-dependency-path: |
packages/client/package-lock.json
packages/workspaces/package-lock.json
packages/harness-host/package-lock.json
site/package-lock.json
- run: npm --prefix packages/workspaces ci
- run: npm --prefix packages/workspaces run build
Expand All @@ -67,6 +69,18 @@ jobs:
- run: npm --prefix site run wasm
- run: npm --prefix site run wasm:node
- run: npm --prefix packages/workspaces run test:wasm
- run: npm --prefix packages/client ci
- run: npm --prefix packages/client run build
- run: npm --prefix packages/client test
- run: npm --prefix packages/harness-host ci
- run: npm --prefix packages/harness-host run build
- run: cargo build -p tress
env:
TRESS_EMBED_RUNTIME: "1"
- run: npm --prefix packages/harness-host test
env:
TRESS_TEST_BINARY: ${{ github.workspace }}/target/debug/tress
TRESS_TEST_EMBEDDED: "1"
- run: npx tsc --noEmit
working-directory: site
- run: npm --prefix site run build
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,47 @@ permissions:
contents: read

jobs:
runtime:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: npm --prefix packages/workspaces ci
- run: npm --prefix packages/workspaces run build
- name: Install matching WASM bindings generator
run: |
tress_bindgen_version=$(python3 -c 'import tomllib; print(next(p["version"] for p in tomllib.load(open("Cargo.lock", "rb"))["package"] if p["name"] == "wasm-bindgen"))')
cargo install wasm-bindgen-cli --version "$tress_bindgen_version" --locked
- run: npm --prefix site run wasm:node
- run: npm --prefix packages/client ci
- run: npm --prefix packages/client run build
- run: npm --prefix packages/client test
- run: npm --prefix packages/harness-host ci
- run: npm --prefix packages/harness-host run build
- run: cargo build --locked -p tress
env:
TRESS_EMBED_RUNTIME: "1"
- run: npm --prefix packages/harness-host test
env:
TRESS_TEST_BINARY: ${{ github.workspace }}/target/debug/tress
TRESS_TEST_EMBEDDED: "1"
- uses: actions/upload-artifact@v4
with:
name: harness-host-runtime
path: packages/harness-host/dist
if-no-files-found: error

build:
needs: runtime
strategy:
fail-fast: false
matrix:
Expand All @@ -24,6 +64,10 @@ jobs:
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: harness-host-runtime
path: packages/harness-host/dist
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
Expand Down Expand Up @@ -52,6 +96,7 @@ jobs:
- run: cargo test --locked -p tress
- name: Build release binary
env:
TRESS_EMBED_RUNTIME: "1"
CC: ${{ runner.os == 'Linux' && 'musl-gcc' || 'cc' }}
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER: musl-gcc
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: musl-gcc
Expand Down
9 changes: 5 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

## Product direction

The next milestone is terminal access to an existing assistant-ui application
with a server-owned Harness thread. Reuse the application's agent, tools,
identity, and conversation. See [the roadmap](docs/roadmap.md) for scope,
acceptance checks, and deferred work.
Tress provides a machine-backed agent workspace controlled by browser and
terminal clients. Harness owns conversation state; the machine owns files,
artifacts, and tool execution. Existing assistant-ui integration is an optional
path that reuses the application's agent, tools, identity, and conversation.
See [the roadmap](docs/roadmap.md) for scope, acceptance checks, and deferred work.

Keep current Tress clients and hosted sessions working during the integration.
Proposed commands and capabilities must be labeled as proposals until shipped.
Expand Down
74 changes: 73 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading