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
16 changes: 16 additions & 0 deletions .machine_readable/6a2/STATE.a2ml

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

7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
- **Frontend IPC binding migrated ReScript → AffineScript** (`@gossamer/api`, standards#252): the published package is now the AffineScript binding in `bindings/affinescript/`, type-checked with `affinescript check` and compiled to a standalone Deno-ESM module via `deno task build` (`affinescript compile --deno-esm`). ReScript is banned estate-wide; this completes gossamer's migration.
- **Repository `LICENSE` corrected to `MPL-2.0`**: the top-level licence declared `AGPL-3.0-or-later` while all 394 source files and the `.ipkg` manifest are MPL-2.0 (gossamer is a sole-owner repo). Brought into line — the governance licence-consistency gate is now green.

### Removed
- **`bindings/rescript/` retired** (`Gossamer.res`, `rescript.json`, package manifest) — superseded by the AffineScript binding above.

### Added
- **Android — `gossamer-android-services` companion: four shim base classes + real JNI (Phase 5, #71)**: Grows the Android target from "a WebView in an Activity" into a first-class mobile shell hosting the non-UI components, on the critical path for neurophone#97 (migrating a banned-Kotlin Android app onto gossamer). Owner-signed-off subclass model (issue #71).
- `src/interface/ffi/src/jni.zig` (new) — a REAL JNI binding in pure Zig: models the `JNINativeInterface`/`JNIInvokeInterface` tables (ordinal-indexed), uses the `...A`-variant calls (no C varargs across the boundary), caches the `JavaVM` for thread attach, uses global refs, and reads `float[]` sensor samples via `Get/ReleaseFloatArrayElements`. The previous bridge declared `extern fn jni_*` symbols defined nowhere, so it could never link.
Expand Down
4 changes: 2 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ cd gossamer && bash examples/hello/run.sh

== Features

* *Async IPC* — `gossamer_channel_bind_async()` spawns callbacks on a worker thread with 256-slot inflight tracker. Responses post back to the GTK main thread via `g_idle_add`. Rust and ReScript bindings included.
* *Async IPC* — `gossamer_channel_bind_async()` spawns callbacks on a worker thread with 256-slot inflight tracker. Responses post back to the GTK main thread via `g_idle_add`. Rust and AffineScript bindings included.
* *CSP enforcement* — `gossamer_set_csp()` applies Content Security Policy at runtime. CLI auto-loads CSP from `gossamer.conf.json`.
* *Streaming events* (backend→frontend push) — `gossamer_emit()` pushes named events to the frontend thread-safely. JS, Rust, and ReScript bindings for subscribing/unsubscribing.
* *Streaming events* (backend→frontend push) — `gossamer_emit()` pushes named events to the frontend thread-safely. JS, Rust, and AffineScript bindings for subscribing/unsubscribing.
* *Thread-local error safety* — all 16+ exported functions clear stale errors on entry.
* *Capability registry* — 256-slot registry with FIFO eviction and clear overflow diagnostics.

Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ Full-featured framework ready for production use.

== Integration Targets

* [ ] **IDApTIK** — Replace Tauri for desktop builds (same ReScript frontend)
* [ ] **IDApTIK** — Replace Tauri for desktop builds (same AffineScript frontend)
* [ ] **PanLL** — Gossamer as native panel shell
* [ ] **Burble** — Gossamer as voice client UI

Expand Down
Loading