Skip to content
Open
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
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.2.0",
"version": "1.2.1",
"packageManager": "pnpm@10.33.2",
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion desktop/src-tauri/Cargo.lock

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

2 changes: 1 addition & 1 deletion desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "odedesktop"
version = "1.2.0"
version = "1.2.1"
description = "ODE Desktop"
authors = ["OpenDataEnsemble.org"]
edition = "2024"
Expand Down
2 changes: 1 addition & 1 deletion desktop/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "ODE Desktop",
"version": "1.2.0",
"version": "1.2.1",
"identifier": "org.opendataensemble.custodian",
"build": {
"beforeDevCommand": "pnpm dev",
Expand Down
2 changes: 1 addition & 1 deletion desktop/src/lib/synkConstants.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/** Must match Synkronus OpenAPI `x-ode-version` (semver). */
export const SYNKRONUS_CLIENT_VERSION = '1.2.0';
export const SYNKRONUS_CLIENT_VERSION = '1.2.1';
4 changes: 4 additions & 0 deletions formulus-formplayer/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ This file gives AI assistants and developers enough context to work effectively
| `src/mocks/` | `webview-mock.ts` and `DevTestbed` for local dev without RN. |
| `scripts/` | `sync-interface.js`, `copy-to-rn.js`, `clean-rn-assets.js`. |

## Clear-on-hide (`SHOW` / `HIDE`)

When a Control becomes not visible (`visible: false` from JSON Forms rules), Formplayer clears that path via `src/jsonforms/useClearOnHide.ts` (ODK-style `relevant`). Authoring implication: **do not** put visibility rules on fields that must survive (especially custom-app `defaultData` stamps). Keep those properties in the schema only; display with `headerFields` or a separate computed/`lbl_*` Control. Docs: [form-design — Conditional Logic](https://opendataensemble.org/docs/guides/form-design#conditional-logic-in-ode-forms).

## Key technical constraints

1. **WebView environment**: No real `window.ReactNativeWebView` in browser dev; use the mock. Assume **file://** and **single JS bundle** when changing Vite/build.
Expand Down
1 change: 1 addition & 0 deletions formulus-formplayer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ The React Native host passes `FormInitData` into the WebView (including `params`
- **Reserved top-level `params` keys** (not treated as observation fields): `defaultData`, `theme`, `darkMode`, `themeColors`. If the host adds more non-data parameters later, the formplayer’s `FORMPARAMS_NON_DATA_KEYS` in `src/utils/formObservationData.ts` should be extended in lockstep.
- **Legacy prefills**: If `defaultData` is missing, the formplayer copies other top-level `params` keys except the reserved keys above.
- **Sanitization**: When the schema defines non-empty root `properties`, loaded and submitted data are filtered to those keys plus `locale` (so older polluted rows are cleaned on edit/save). Schemas with missing or empty root `properties` pass data through unchanged.
- **Clear-on-hide**: A Control with a `SHOW`/`HIDE` rule that starts (or becomes) hidden has its value **deleted**. Injected stamps must stay schema + `defaultData` only—never a hidden Control on the real field. Prefer `headerFields` or a computed/`lbl_*` display proxy. See [form-design](https://opendataensemble.org/docs/guides/form-design#conditional-logic-in-ode-forms).

## Custom validators that mutate data

Expand Down
4 changes: 2 additions & 2 deletions formulus/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ android {
applicationId = "org.opendataensemble.formulus"
minSdk = rootProject.ext.minSdkVersion
targetSdk = rootProject.ext.targetSdkVersion
versionCode = 24
versionName = "1.2.0"
versionCode = 25
versionName = "1.2.1"

buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", (findProperty("newArchEnabled") ?: "false").toString()

Expand Down
8 changes: 4 additions & 4 deletions formulus/ios/Formulus.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 24;
CURRENT_PROJECT_VERSION = 25;
DEVELOPMENT_TEAM = ZZ9482ZVMJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Formulus/Info.plist;
Expand All @@ -304,7 +304,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 1.2.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand All @@ -329,15 +329,15 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 24;
CURRENT_PROJECT_VERSION = 25;
DEVELOPMENT_TEAM = ZZ9482ZVMJ;
INFOPLIST_FILE = Formulus/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 1.2.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand Down
4 changes: 2 additions & 2 deletions formulus/package-lock.json

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

2 changes: 1 addition & 1 deletion formulus/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "formulus-app",
"version": "1.2.0",
"version": "1.2.1",
"packageManager": "pnpm@10.33.2",
"type": "module",
"private": true,
Expand Down
2 changes: 1 addition & 1 deletion synkronus-cli/internal/cmd/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (

var (
// Version is the CLI version, set during build
Version = "1.2.0"
Version = "1.2.1"
// BuildDate is the date when the CLI was built
BuildDate = "unknown"
// CommitHash is the git commit hash
Expand Down
8 changes: 4 additions & 4 deletions synkronus-cli/versioninfo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"FileVersion": {
"Major": 1,
"Minor": 2,
"Patch": 0,
"Patch": 1,
"Build": 0
},
"ProductVersion": {
"Major": 1,
"Minor": 2,
"Patch": 0,
"Patch": 1,
"Build": 0
},
"FileFlagsMask": "3f",
Expand All @@ -22,14 +22,14 @@
"Comments": "Synkronus CLI Tool",
"CompanyName": "OpenDataEnsemble",
"FileDescription": "Synkronus CLI - A command-line interface for the Synkronus API",
"FileVersion": "1.2.0.0",
"FileVersion": "1.2.1.0",
"InternalName": "synk",
"LegalCopyright": "© 2025 OpenDataEnsemble",
"LegalTrademarks": "",
"OriginalFilename": "synk.exe",
"PrivateBuild": "",
"ProductName": "Synkronus CLI",
"ProductVersion": "1.2.0.0",
"ProductVersion": "1.2.1.0",
"SpecialBuild": ""
},
"VarFileInfo": {
Expand Down
2 changes: 1 addition & 1 deletion synkronus-portal/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "synkronus-portal",
"private": true,
"version": "1.2.0",
"version": "1.2.1",
"packageManager": "pnpm@10.33.2",
"license": "MIT",
"type": "module",
Expand Down
Loading