Skip to content

Commit 3a26606

Browse files
hyperpolymathclaude
andcommitted
feat(lithoglyph/studio): replace Tauri with Gossamer — 12 commands migrated
Removed src-tauri/. New gossamer-rs backend with 12 commands: service status, GQL-DT generation/validation, query execution/explanation, document insert/validation, FD discovery, normalization, proof obligations, and tactic application. RuntimeBridge cleaned to Gossamer-only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b5e0f77 commit 3a26606

24 files changed

Lines changed: 298 additions & 725 deletions

lithoglyph/.claude/CLAUDE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Multi-language stack in dependency order:
1414
7. **Lean 4** (gql-dt/) — Dependently-typed Glyph Query Language
1515
8. **Zig + Rust** (beam/) — BEAM NIFs for Elixir/Erlang integration
1616
9. **Elixir** (lith-http/) — Phoenix HTTP API, control plane
17-
10. **Rust + Web** (studio/) — Tauri desktop GUI (mock data, early stage)
17+
10. **Rust + Web** (studio/) — Gossamer desktop GUI (mock data, early stage)
1818
11. **Zig** (api/) — REST + gRPC API (BROKEN — needs Zig 0.15.2 migration)
1919

2020
Subprojects with own `.machine_readable/`: gql-dt/, glyphbase/, lith-http/
@@ -109,7 +109,7 @@ cd lith-http && mix deps.get && mix compile && mix test
109109
# GQL-DT (Lean 4)
110110
cd gql-dt && lake build
111111

112-
# Studio (Tauri — mostly mock data)
112+
# Studio (Gossamer — mostly mock data)
113113
cd studio && cargo build
114114
```
115115

@@ -135,7 +135,7 @@ just build-all # everything in dependency order
135135
| gql-dt | PASS | claims 100% | Needs honest audit |
136136
| glyphbase | ? | ? | Needs honest audit |
137137
| api (Zig) | BROKEN | N/A | 83 old std.http.Server call sites |
138-
| studio | PASS | N/A | 11 commands return mock data |
138+
| studio | PASS | N/A | 11 Gossamer commands return mock data |
139139

140140
## Patterns and Anti-Patterns
141141

lithoglyph/.tool-versions

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,3 @@
55
# Primary runtime
66
deno 2.1.4
77

8-
# Build tools
9-
just 1.30.0

lithoglyph/justfile

Lines changed: 0 additions & 169 deletions
This file was deleted.

lithoglyph/studio/.gitignore

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@
1010
node_modules/
1111
package-lock.json
1212

13-
# Tauri
14-
/src-tauri/target
15-
/src-tauri/gen/
16-
/src-tauri/Cargo.lock
13+
# Cargo
14+
Cargo.lock
1715

1816
# ReScript
1917
*.res.js
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,13 @@
33
name = "lithoglyph-studio"
44
version = "0.1.0"
55
description = "Zero-friction interface for Lith with dependently-typed GQL"
6-
authors = ["Hyperpolymath"]
6+
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
77
license = "PMPL-1.0-or-later"
88
repository = "https://github.com/hyperpolymath/lithoglyph-studio"
99
edition = "2021"
1010

11-
[build-dependencies]
12-
tauri-build = { version = "2", features = [] }
13-
1411
[dependencies]
15-
tauri = { version = "2", features = [] }
12+
gossamer-rs = { path = "../../../../gossamer/bindings/rust" }
1613
serde = { version = "1", features = ["derive"] }
1714
serde_json = "1"
1815
uuid = { version = "1", features = ["v4"] }
19-
20-
[features]
21-
default = ["custom-protocol"]
22-
custom-protocol = ["tauri/custom-protocol"]

lithoglyph/studio/README.adoc

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Lith Studio provides a visual interface:
7777
----
7878
┌─────────────────────────────────────────────────────────────┐
7979
│ Lith Studio (This Project) │
80-
│ ├── Tauri 2.0 (Rust) - Cross-platform desktop app │
80+
│ ├── Gossamer (Rust) - Cross-platform desktop app
8181
│ ├── ReScript UI - Type-safe reactive interface │
8282
│ └── Visual builders for schemas, queries, data entry, │
8383
│ and schema normalization │
@@ -174,8 +174,8 @@ See https://github.com/hyperpolymath/lithoglyph/blob/main/spec/self-normalizing.
174174
| Component | Technology | Rationale
175175

176176
| Desktop App
177-
| Tauri 2.0
178-
| Cross-platform (Mac, Windows, Linux), Rust backend
177+
| Gossamer
178+
| Cross-platform (Mac, Windows, Linux), Rust backend via gossamer-rs
179179

180180
| Frontend UI
181181
| ReScript
@@ -212,9 +212,9 @@ See https://github.com/hyperpolymath/lithoglyph/blob/main/spec/self-normalizing.
212212
| 18+ (for npm/npx)
213213
| https://nodejs.org/ or `asdf install nodejs 20.10.0`
214214

215-
| Tauri CLI
216-
| 2.x
217-
| `cargo install tauri-cli`
215+
| Gossamer
216+
| 0.1+
217+
| Built from `gossamer/bindings/rust` (path dependency)
218218
|===
219219

220220
==== Linux-Specific Dependencies
@@ -258,10 +258,10 @@ npx rescript build
258258
npx esbuild src/App.res.js --bundle --outfile=dist/app.js
259259
260260
# Development mode (hot reload)
261-
cd src-tauri && cargo tauri dev
261+
cargo run
262262
263263
# Build for production
264-
cd src-tauri && cargo tauri build
264+
cargo build --release
265265
----
266266

267267
=== Quick Start (TL;DR)
@@ -270,39 +270,31 @@ cd src-tauri && cargo tauri build
270270
----
271271
npm install && npx rescript build && \
272272
npx esbuild src/App.res.js --bundle --outfile=dist/app.js && \
273-
cd src-tauri && cargo tauri dev
273+
cargo run
274274
----
275275

276276
=== Build Outputs
277277

278-
After `cargo tauri build`:
278+
After `cargo build --release`:
279279

280280
[cols="1,2"]
281281
|===
282282
| Format | Location
283283

284284
| Binary
285-
| `src-tauri/target/release/lithoglyph-studio`
286-
287-
| Debian package
288-
| `src-tauri/target/release/bundle/deb/Lith Studio_*.deb`
289-
290-
| RPM package
291-
| `src-tauri/target/release/bundle/rpm/Lith Studio-*.rpm`
285+
| `target/release/lithoglyph-studio`
292286
|===
293287

294288
=== Project Structure
295289

296290
[source,text]
297291
----
298292
lithoglyph-studio/
299-
├── src-tauri/ # Rust backend (Tauri 2.0)
300-
│ ├── src/
301-
│ │ └── main.rs # Entry point + all Tauri commands
302-
│ ├── icons/ # App icons (indigo theme)
303-
│ ├── Cargo.toml # Rust dependencies
304-
│ └── tauri.conf.json # Tauri configuration
305-
├── src/ # ReScript frontend
293+
├── Cargo.toml # Rust dependencies (gossamer-rs path dep)
294+
├── gossamer.conf.json # Gossamer configuration
295+
├── src/ # ReScript frontend + Gossamer backend
296+
│ ├── backend/
297+
│ │ └── main.rs # Entry point + all Gossamer command handlers
306298
│ ├── App.res # Main app with navigation
307299
│ ├── Types.res # Shared type definitions
308300
│ ├── SchemaBuilder.res # Collection creator UI

lithoglyph/studio/UNIFIED-ROADMAP.scm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
(version "0.1.0")
3636
(completion 45)
3737
(role "Zero-friction GUI")
38-
(tech "ReScript + Tauri 2.0 + Rust"))
38+
(tech "ReScript + Gossamer + Rust"))
3939
(lith-debugger
4040
(version "0.1.0")
4141
(completion 55)
@@ -86,7 +86,7 @@
8686
(focus "Studio and Debugger completion")
8787

8888
(studio-tasks
89-
(task "Verify ReScript/Tauri build pipeline" priority: critical status: pending)
89+
(task "Verify ReScript/Gossamer build pipeline" priority: critical status: pending)
9090
(task "Wire ReScript UI to GQLdt code generation" priority: high status: pending)
9191
(task "Connect to Lith HTTP API" priority: high status: blocked)
9292
(task "Test schema creation → query → results flow" priority: medium status: pending))

lithoglyph/studio/deno.json

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,14 @@
33
"version": "0.1.0",
44
"exports": "./src/main.ts",
55
"tasks": {
6-
"dev": "cargo tauri dev",
7-
"build": "cargo tauri build",
8-
"gossamer:dev": "gossamer dev",
9-
"gossamer:build": "gossamer build",
6+
"dev": "gossamer dev",
7+
"build": "gossamer build",
108
"rescript": "^12.0.0",
119
"rescript:build": "npx rescript build",
12-
"bundle": "deno run -A npm:esbuild src/main.tsx --bundle --outfile=dist/app.js --format=esm --external:@tauri-apps/api --external:@gossamer/api",
10+
"bundle": "deno run -A npm:esbuild src/main.tsx --bundle --outfile=dist/app.js --format=esm --external:@gossamer/api",
1311
"fmt": "deno fmt src/"
1412
},
1513
"imports": {
16-
"@tauri-apps/api": "npm:@tauri-apps/api@^2",
1714
"@gossamer/api": "npm:@gossamer/api@^0.1",
1815
"react": "npm:react@^18",
1916
"react-dom": "npm:react-dom@^18",
@@ -26,4 +23,4 @@
2623
"indentWidth": 2,
2724
"singleQuote": true
2825
}
29-
}
26+
}

0 commit comments

Comments
 (0)