Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3ef7ecc
fix(formulus): defer QR camera binding until provider is ready
r0ssing Sep 27, 2026
061f17d
Merge pull request #941 from HelloSapiens/fix/formulus-camera-issue
r0ssing Sep 27, 2026
bfdf8c4
chore(release): reserve next Formulus build code
github-actions[bot] Sep 27, 2026
3948326
fix(desktop): honor includeDeleted in observation queries
sarahmirembe592 Sep 28, 2026
d4bbc7a
docs(development): add a code map for one observation's journey
kingmakeruix Sep 29, 2026
ad49bf6
Fix export not copying attachments from nested observation data
r0ssing Sep 30, 2026
18cc1aa
Merge pull request #949 from HelloSapiens/fix/desktop-export-attachments
r0ssing Sep 30, 2026
3d42299
Merge branch 'dev' into automation/prepare-next-formulus-build-code
r0ssing Sep 30, 2026
a2bed0f
Merge pull request #942 from OpenDataEnsemble/automation/prepare-next…
r0ssing Sep 30, 2026
20ceda6
Merge branch 'dev' into docs/observation-journey
r0ssing Sep 30, 2026
9b23f90
feat(desktop): Improved AI Agent support
r0ssing Oct 1, 2026
74f1ce8
feat(desktop): Improved AI Agent support (wip)
r0ssing Oct 1, 2026
b78b180
docs(development): correct the sync order to pull before push
kingmakeruix Oct 1, 2026
a9f91aa
chore(release): reserve next Formulus build code
github-actions[bot] Oct 1, 2026
7fd87bd
feat(desktop): Improved AI Agent support (wip)
r0ssing Oct 1, 2026
3079940
feat(desktop): complete AI agent support
r0ssing Oct 1, 2026
7e8c465
chore(desktop): removed plan file
r0ssing Oct 1, 2026
a2bfdcc
Merge pull request #952 from HelloSapiens/feat/desktop-mcp-server
najuna-brian Oct 1, 2026
6d08d4d
Merge branch 'dev' into automation/prepare-next-formulus-build-code
r0ssing Oct 1, 2026
12d6634
Merge pull request #951 from OpenDataEnsemble/automation/prepare-next…
r0ssing Oct 1, 2026
3cd3971
Merge branch 'dev' into docs/observation-journey
r0ssing Oct 1, 2026
cbff59e
Merge pull request #947 from kingmakeruix/docs/observation-journey
r0ssing Oct 1, 2026
3a3afd8
Merge branch 'dev' into fix/910-include-deleted
r0ssing Oct 1, 2026
eacb98e
Merge pull request #944 from sarahmirembe592/fix/910-include-deleted
r0ssing Oct 1, 2026
465b806
perf(desktop): index deleted observations
r0ssing Oct 1, 2026
afd06b4
chore: Prepare v1.4.0 release
r0ssing Oct 1, 2026
01db4b8
docs: Refresh homepage and social links
r0ssing Oct 1, 2026
3807a61
Merge pull request #954 from HelloSapiens/perf/953-desktop-deleted-co…
r0ssing Oct 1, 2026
92adbe8
Merge branch 'dev' of github.com:OpenDataEnsemble/ode into feat/v1.4.…
r0ssing Oct 1, 2026
1d82f34
Merge pull request #955 from HelloSapiens/feat/v1.4.0-prep
r0ssing Oct 1, 2026
5b9275b
Merge branch 'main' into dev
r0ssing Oct 1, 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
28 changes: 19 additions & 9 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,23 +37,28 @@ jobs:
with:
fetch-depth: 0

- name: Set up pnpm
uses: pnpm/action-setup@f40ffcd9367d9f12939873eb1018b921a783ffaa # v4
with:
version: 11.22.0

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: docs/package-lock.json
cache: pnpm
cache-dependency-path: docs/pnpm-lock.yaml

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Check links and doc IDs
run: npm run test
run: pnpm run test

- name: Build site
env:
CI: true
run: npm run build
run: pnpm run build

deploy:
name: Deploy to GitHub Pages
Expand All @@ -78,18 +83,23 @@ jobs:
- name: Checkout repository
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

- name: Set up pnpm
uses: pnpm/action-setup@f40ffcd9367d9f12939873eb1018b921a783ffaa # v4
with:
version: 11.22.0

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: docs/package-lock.json
cache: pnpm
cache-dependency-path: docs/pnpm-lock.yaml

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Build site
run: npm run build
run: pnpm run build

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
Expand Down
8 changes: 8 additions & 0 deletions desktop/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ Developer mode on with missing/invalid folder → blocking error in UI; no silen

---

## Local tools (`ode` CLI)

Headless CLI for AI assistants and scripts: profiles, form definitions, data export, form validation, custom app authoring and publishing, and Agent Skills. All output is JSON. Access is gated by the per-profile **Local tools** settings (`localToolsEnabled`, `localToolsAllowData`, `localToolsAllowAuthoring`, `localToolsAllowPush`). Shared logic lives in `src-tauri/src/local_api/`, and the CLI is `src-tauri/src/bin/ode.rs`.

The CLI writes `config.json` only for new profiles and developer-mode fields. Desktop merges those edits (`merge_external_changes`, called from `persist_config` and `sync_external_config`) and never overwrites them. See [docs/LOCAL_TOOLS.md](docs/LOCAL_TOOLS.md).

---

## Bridge and bundles

- **Contract source of truth:** [`formulus/src/webview/FormulusInterfaceDefinition.ts`](../formulus/src/webview/FormulusInterfaceDefinition.ts).
Expand Down
368 changes: 368 additions & 0 deletions desktop/docs/LOCAL_TOOLS.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ode-desktop",
"private": true,
"version": "1.3.3",
"version": "1.4.0",
"packageManager": "pnpm@11.22.0",
"type": "module",
"scripts": {
Expand Down
129 changes: 128 additions & 1 deletion desktop/src-tauri/Cargo.lock

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

10 changes: 9 additions & 1 deletion desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[package]
name = "odedesktop"
version = "1.3.3"
version = "1.4.0"
description = "ODE Desktop"
authors = ["OpenDataEnsemble.org"]
edition = "2024"
default-run = "odedesktop"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand All @@ -14,6 +15,11 @@ edition = "2024"
name = "odedesktop_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

# Headless local-tools CLI (see desktop/docs/LOCAL_TOOLS.md).
[[bin]]
name = "ode"
path = "src/bin/ode.rs"

[build-dependencies]
tauri-build = { version = "2", features = [] }

Expand All @@ -39,4 +45,6 @@ tokio = { version = "1", features = ["sync", "time", "macros"] }
arrow = { version = "59", default-features = false, features = ["chrono-tz"] }
parquet = { version = "59", default-features = false, features = ["arrow", "snap"] }
jsonschema = "0.30"
clap = { version = "4", features = ["derive"] }
dirs = "6"

Loading
Loading