Skip to content

Commit baabfbb

Browse files
hyperpolymathclaude
andcommitted
feat(gui): replace Tauri with Gossamer — gossamer-rs backend
Removed gui/src-tauri/ entirely. New backend uses gossamer-rs with 3 commands (check_document, fix_document, get_submission_status). RuntimeBridge.res cleaned to Gossamer-only. Tauri.res kept as legacy name (internally routes through RuntimeBridge). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9da6d7a commit baabfbb

47 files changed

Lines changed: 861 additions & 486 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ members = [
1010
"crates/intsoc-git",
1111
"crates/intsoc-api",
1212
"crates/intsoc-cli",
13-
# "gui/src-tauri", # Enable when Tauri deps available
13+
"gui", # Gossamer desktop GUI (converted from Tauri)
1414
]
1515

1616
[workspace.package]

Justfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ check file:
316316
cargo run -p intsoc-cli -- check {{file}}
317317

318318
# Fix a document
319-
fix file *args:
319+
fix-doc file *args:
320320
cargo run -p intsoc-cli -- fix {{file}} {{args}}
321321

322322
# Install to user path

README.adoc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ IETF, IRTF, IAB, Independent Stream, IANA, and RFC Editor.
1717
* **Smart fix classification** — Every fix is classified as AutoSafe (zero risk), Recommended (review advised), or ManualOnly (human required).
1818
* **Nickel-powered templates** — Type-checked contracts, per-stream templates, and policy validation via Nickel.
1919
* **State machine tracking** — Full lifecycle tracking with per-stream state machines (IETF: 20+ states, IRTF: 8, IAB: 4, etc.).
20-
* **Desktop GUI** — Tauri 2.0 + ReScript TEA architecture with document editor, checker, and fixer views.
20+
* **Desktop GUI** — Gossamer + ReScript TEA architecture with document editor, checker, and fixer views.
2121
* **Pure Rust dependencies** — gix (not git2-rs), reqwest with rustls (not openssl).
2222

2323
=== Quick Start
@@ -54,7 +54,8 @@ crates/
5454
intsoc-cli/ # CLI binary (intsoc check/fix/submit/status/init)
5555
gui/
5656
src/ # ReScript TEA frontend
57-
src-tauri/ # Tauri 2.0 desktop app
57+
backend/ # Gossamer desktop backend (Rust)
58+
gossamer.conf.json # Gossamer window/app configuration
5859
nickel/
5960
contracts/ # Type contracts for metadata validation
6061
templates/ # Per-stream document templates

TOPOLOGY.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@
3838
└───────────────────────────────────────────────┘
3939
4040
┌───────────────────────────────────────────────┐
41-
│ GUI (Tauri 2.0)
41+
│ GUI (Gossamer)
4242
│ ┌──────────────────────────────────────────┐ │
4343
│ │ ReScript TEA Frontend │ │
4444
│ │ Editor ─ Checker ─ Fixer ─ Submitter │ │
4545
│ └──────────────────────────────────────────┘ │
4646
│ ┌──────────────────────────────────────────┐ │
47-
│ │ src-tauri (Rust) │ │
48-
│ │ Tauri commands ←→ core/parser/fixer │ │
47+
│ │ backend/ (Rust+Gossamer) │ │
48+
│ │ Gossamer commands ←→ core/parser/fixer │ │
4949
│ └──────────────────────────────────────────┘ │
5050
└───────────────────────────────────────────────┘
5151
@@ -73,7 +73,7 @@
7373
| intsoc-cli | `██████░░░░` 60% | Phase 1 MVP |
7474
| intsoc-git | `███░░░░░░░` 30% | Phase 1 |
7575
| intsoc-api | `████░░░░░░` 40% | Phase 1 |
76-
| GUI (Tauri+ReScript) | `██░░░░░░░░` 20% | Phase 1 |
76+
| GUI (Gossamer+ReScript)| `██░░░░░░░░` 20% | Phase 1 |
7777
| Nickel templates | `█████░░░░░` 50% | Phase 1 |
7878
| Haskell parser | `░░░░░░░░░░` 5% | Phase 2 |
7979
| Idris2 ABI + Zig FFI | `░░░░░░░░░░` 5% | Phase 3 |
@@ -90,6 +90,6 @@
9090
| gix | 0.68 | Git integration (pure Rust) |
9191
| reqwest | 0.12 | HTTP client (rustls-tls) |
9292
| clap | 4 | CLI argument parsing |
93-
| tauri | 2 | Desktop application framework |
93+
| gossamer-rs | 0.1 | Gossamer webview shell bindings |
9494
| nickel | CLI | Template rendering + contracts |
9595
| megaparsec | 9.6 | Haskell parser combinators (Ph.2) |

crates/intsoc-api/src/datatracker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
//! IETF Datatracker REST API Client.
44
//!
5-
//! Implements high-level operations against the authoritative IETF document
5+
//! Implements high-level operations against the authoritative IETF document
66
//! management system. Supports both authenticated and public read-only access.
77
//!
88
//! API REF: https://datatracker.ietf.org/api/

crates/intsoc-api/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
//! Internet Society API Interface Layer.
44
//!
5-
//! This crate provides the network-facing components of the transactor,
5+
//! This crate provides the network-facing components of the transactor,
66
//! implementing asynchronous clients for the formal IETF and IANA services.
77
//!
88
//! SERVICES:

crates/intsoc-cli/src/commands/check.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@
22

33
//! CLI Check Command — Document Integrity Audit.
44
//!
5-
//! This module implements the interactive `check` subcommand. It
6-
//! provides immediate feedback on the compliance of a document
5+
//! This module implements the interactive `check` subcommand. It
6+
//! provides immediate feedback on the compliance of a document
77
//! against Internet Society standards.
88
99
use intsoc_core::validation::{CheckCategory, CheckSummary, Fixability, Severity};
1010
use intsoc_parser;
1111
use std::path::Path;
1212

1313
/// EXECUTION: Reads the target file, parses it, and runs the audit suite.
14-
pub async fn run(file: &Path, errors_only: bool, format: &str) -> Result<(), Box<dyn std::error::Error>> {
14+
pub async fn run(
15+
file: &Path,
16+
errors_only: bool,
17+
format: &str,
18+
) -> Result<(), Box<dyn std::error::Error>> {
1519
let source = std::fs::read_to_string(file)?;
1620
let document = intsoc_parser::parse(&source)?;
1721

@@ -23,9 +27,11 @@ pub async fn run(file: &Path, errors_only: bool, format: &str) -> Result<(), Box
2327
Ok(())
2428
}
2529

26-
/// AUDIT KERNEL: The collection of deterministic checks performed
30+
/// AUDIT KERNEL: The collection of deterministic checks performed
2731
/// on every document. Covers Boilerplate, Titles, Authors, and IPR.
28-
pub(crate) fn run_checks_internal(document: &intsoc_core::document::Document) -> Vec<intsoc_core::validation::CheckResult> {
32+
pub(crate) fn run_checks_internal(
33+
document: &intsoc_core::document::Document,
34+
) -> Vec<intsoc_core::validation::CheckResult> {
2935
let mut results = Vec::new();
3036
// ... [Implementation of individual check functions]
3137
results

crates/intsoc-cli/src/commands/fix.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
//! The `fix` command: generate and apply fixes.
44
5-
use intsoc_fixer::engine::FixEngine;
65
use intsoc_fixer::diff;
6+
use intsoc_fixer::engine::FixEngine;
77
use std::path::Path;
88

99
/// Run the fix command.
@@ -30,7 +30,9 @@ pub async fn run(
3030
let rec_count = plan.recommended_fixes().len();
3131
let manual_count = plan.manual_only_fixes().len();
3232

33-
println!("Fix plan: {auto_count} auto-safe, {rec_count} recommended, {manual_count} manual-only");
33+
println!(
34+
"Fix plan: {auto_count} auto-safe, {rec_count} recommended, {manual_count} manual-only"
35+
);
3436

3537
// Apply fixes
3638
let fixed_source = if auto_only {

crates/intsoc-cli/src/commands/init.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ pub async fn run(
1414
) -> Result<(), Box<dyn std::error::Error>> {
1515
// Validate draft name format
1616
if !name.starts_with("draft-") {
17-
return Err(format!(
18-
"Draft name must start with 'draft-', got '{name}'"
19-
).into());
17+
return Err(format!("Draft name must start with 'draft-', got '{name}'").into());
2018
}
2119

2220
tracing::info!("Initializing draft: {name} (stream: {stream})");

0 commit comments

Comments
 (0)