Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ef2914b
feat(browser): add versioned protocol and tool routing
senamakel Jul 22, 2026
4a22746
test(browser): cover mixed tool routing
senamakel Jul 22, 2026
b8a149b
feat(companion): secure pairing and shared tab registry
senamakel Jul 22, 2026
2558f5b
feat(extension): add secure MV3 browser companion
senamakel Jul 22, 2026
cd2367e
feat(companion): enforce relay lifecycle and control protocol
senamakel Jul 22, 2026
186fc55
chore(extension): ignore generated build output
senamakel Jul 22, 2026
990b7af
test(companion): cover auth rejection and stale heartbeat
senamakel Jul 22, 2026
fef2a30
test(extension): align relay protocol and add browser e2e
senamakel Jul 22, 2026
a5c761d
docs(extension): explain pairing and explicit tab sharing
senamakel Jul 22, 2026
2f64f55
feat(extension): announce validated shared tabs
senamakel Jul 22, 2026
3eb8b32
feat(companion): serve authenticated browser runs
senamakel Jul 22, 2026
420b6fa
feat(cli): manage the Chrome companion
senamakel Jul 22, 2026
8d6d3a5
test(protocol): share canonical browser fixtures
senamakel Jul 22, 2026
6874e93
test(extension): exercise relay browser journey
senamakel Jul 22, 2026
0f56f20
docs(browser): document pairing and security
senamakel Jul 22, 2026
0b32da6
build(extension): add deterministic release archive
senamakel Jul 22, 2026
a22e9ad
style(browser): format protocol checks
senamakel Jul 22, 2026
c1c510d
build(extension): refresh release archive
senamakel Jul 22, 2026
d8de9fe
fix(browser): fail closed across relay lifecycle
senamakel Jul 22, 2026
ffc8905
feat(cli): materialize the bundled Chrome extension
senamakel Jul 22, 2026
ca436da
build(extension): refresh deterministic release archive
senamakel Jul 22, 2026
e0a676f
fix(extension): wait for destination navigation
senamakel Jul 22, 2026
c98ffd8
build(extension): refresh reviewed release archive
senamakel Jul 22, 2026
fe3e7a4
Merge remote-tracking branch 'origin/main' into feat/chrome-extension
senamakel Jul 22, 2026
59b7a60
fix(extension): protect step data and offscreen actions
senamakel Jul 22, 2026
4b57ccb
build(extension): refresh hardened release archive
senamakel Jul 22, 2026
3feec7f
fix(companion): harden review edge cases
senamakel Jul 22, 2026
13cc804
build(extension): refresh release archive
senamakel Jul 22, 2026
3e8b4fe
fix(extension): preserve explicit browser consent
senamakel Jul 22, 2026
7b79281
build(extension): refresh reviewed archive
senamakel Jul 22, 2026
cfe7f32
fix(companion): fail closed on browser edge cases
senamakel Jul 22, 2026
4c379b2
build(extension): refresh hardened archive
senamakel Jul 22, 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
53 changes: 53 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,56 @@ jobs:

- name: Test all features
run: cargo test --all-features

- uses: taiki-e/install-action@cargo-llvm-cov

- name: Coverage
run: cargo llvm-cov --all-features --workspace --summary-only --fail-under-lines 90

chrome-extension:
name: Chrome Extension
runs-on: ubuntu-latest
defaults:
run:
working-directory: extension
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false

- uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
cache-dependency-path: extension/package-lock.json

- name: Install dependencies
run: npm ci

- name: Lint, typecheck, unit test, and build
run: npm run verify

- name: Install Playwright Chromium
run: npx playwright install --with-deps chromium

- name: Run extension end-to-end tests
run: npm run test:e2e

- name: Build deterministic release archive
run: npm run package

- name: Upload release archive
uses: actions/upload-artifact@v6
with:
name: tinyflows-chrome-extension
path: |
extension/artifacts/*.zip
extension/artifacts/*.sha256

- name: Upload Playwright traces on failure
if: failure()
uses: actions/upload-artifact@v6
with:
name: chrome-extension-playwright-traces
path: extension/test-results/
if-no-files-found: ignore
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

_No unreleased changes yet._
### Added

- Versioned browser action contracts plus run/tab-bound `ChromeToolInvoker` and
composable `RoutingToolInvoker` support for explicit `slug: "browser"` nodes.
- An authenticated loopback companion with pairing-secret rotation, explicit
shared-tab/run binding, action correlation, timeouts, heartbeats, workflow
listing/start/cancel controls, and native CLI commands.
- A locally bundled MV3 Chrome extension with debugger-based browser actions,
visible tab-group consent, popup pairing, a workflow side panel, unit tests,
Playwright coverage, and deterministic release packaging.

## [0.3.0] - YYYY-MM-DD

Expand Down
Loading