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
17 changes: 10 additions & 7 deletions .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,15 @@ on:
- issue-*
paths:
- '.github/workflows/wasm.yml'
- 'package-lock.json'
- 'package.json'
- 'js/**'
- 'rust/**'
- 'web/**'
pull_request:
branches:
- main
paths:
- '.github/workflows/wasm.yml'
- 'package-lock.json'
- 'package.json'
- 'js/**'
- 'rust/**'
- 'web/**'
workflow_dispatch:
inputs:
deploy_pages:
Expand Down Expand Up @@ -56,6 +52,7 @@ jobs:
with:
node-version: '20.x'
cache: npm
cache-dependency-path: js/package-lock.json

- name: Cache cargo registry
uses: actions/cache@v4
Expand All @@ -70,15 +67,18 @@ jobs:
${{ runner.os }}-wasm-cargo-

- name: Install npm dependencies
working-directory: js
run: npm ci

- name: Test Rust CLI core
run: cargo test --manifest-path rust/Cargo.toml --all-features

- name: Test WebAssembly wrapper
working-directory: js
run: npm run test:wasm

- name: Build React WebAssembly app
working-directory: js
run: npm run build

- name: Upload built app
Expand Down Expand Up @@ -119,18 +119,21 @@ jobs:
with:
node-version: '20.x'
cache: npm
cache-dependency-path: js/package-lock.json

- name: Install npm dependencies
working-directory: js
run: npm ci

- name: Build GitHub Pages app
working-directory: js
run: npm run build:pages

- name: Configure Pages
uses: actions/configure-pages@v5

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4
with:
path: dist/

Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ dist/
pkg/
pkg-node/
pkg-bundler/
web/pkg/
js/pkg/

# Local AI investigation artifacts
ci-logs/
Expand Down
90 changes: 0 additions & 90 deletions README-WASM.md

This file was deleted.

3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ WebAssembly. The React workbench mirrors the current link set into
package built from `doublets-rs`.

- Live demo: <https://link-foundation.github.io/link-cli/>
- Browser app documentation: [README-WASM.md](README-WASM.md)
- Implementation notes: [WEBASSEMBLY_IMPLEMENTATION.md](WEBASSEMBLY_IMPLEMENTATION.md)
- Browser app documentation and implementation notes: [js/README.md](js/README.md)

## Documentation

Expand Down
83 changes: 0 additions & 83 deletions WEBASSEMBLY_IMPLEMENTATION.md

This file was deleted.

13 changes: 6 additions & 7 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ links database.
| Path | Responsibility |
|------|----------------|
| `README.md` | User-facing quick start and feature overview. |
| `docs/` | Requirements, architecture notes, behavior notes, screenshots, and case studies. |
| `docs/` | Requirements, architecture notes, behavior notes, and case studies. |
| `csharp/` | Production .NET CLI package published as the `clink` tool. |
| `rust/` | Rust library and native `clink` binary that mirror core C# behavior. |
| `csharp/scripts/` | C# release, changeset, and repository validation helpers. |
| `rust/scripts/` | Rust release, changelog, crate publication, and repository validation helpers. |
| `rust/wasm/` | `wasm-bindgen` wrapper crate around the Rust query processor. |
| `web/` | React/Vite browser workbench. |
| `js/` | React/Vite browser workbench and JavaScript package lockfile. |
| `.github/workflows/` | Split C#, Rust, and WebAssembly CI workflows. |

## C# Implementation
Expand Down Expand Up @@ -84,10 +84,10 @@ Key files:

- `rust/wasm/src/lib.rs`: exports `Clink` with `execute`, `snapshot`, `reset`, `version`,
and `rustCoreVersion`.
- `web/src/App.jsx`: React application, query editor, graph view, and runtime
- `js/src/App.jsx`: React application, query editor, graph view, and runtime
status.
- `web/src/styles.css`: application styling.
- `web/vite.config.js`: Vite build configuration.
- `js/src/styles.css`: application styling.
- `js/vite.config.js`: Vite build configuration.

Runtime flow:

Expand Down Expand Up @@ -157,5 +157,4 @@ own.
- Rust `doublets`: https://docs.rs/doublets/latest/doublets/
- Rust `links-notation`: https://docs.rs/crate/links-notation/0.13.0
- npm `doublets-web`: https://www.npmjs.com/package/doublets-web
- WebAssembly local docs: [../README-WASM.md](../README-WASM.md)
- WebAssembly implementation notes: [../WEBASSEMBLY_IMPLEMENTATION.md](../WEBASSEMBLY_IMPLEMENTATION.md)
- WebAssembly local docs and implementation notes: [../js/README.md](../js/README.md)
2 changes: 1 addition & 1 deletion docs/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ the core CLI behavior and is also used by the WebAssembly browser workbench.
| Import a database from LiNo. | #25, #43 | `--in`, `--import`, and `--lino-input` read a LiNo file before query execution. |
| Format a link structure. | #19, #48 | `--structure` recursively formats the left branch with indexes preserved. |
| Store persistent transformations. | #3, #55 | C# supports `--always`, `--once`, `--never`, `--triggers`, `--triggers-file`, and `--embed-triggers`. |
| Separate code by implementation language. | #63, #64, #77 | C# code and release helpers live under `csharp/`; Rust code, release helpers, and the WebAssembly wrapper crate live under `rust/`; the browser app lives under `web/`. |
| Separate code by implementation language. | #63, #64, #77, #79 | C# code and release helpers live under `csharp/`; Rust code, release helpers, and the WebAssembly wrapper crate live under `rust/`; the browser app and JavaScript lockfile live under `js/`. |
| Provide Rust parity for core behavior. | #63, #67, #68 | Rust mirrors query processing, names, import/export, structure formatting, and Unicode sequence support. |
| Run in a browser. | #12, #52, #69, #70 | The Rust query processor is wrapped with `wasm-bindgen` and surfaced through a React/Vite workbench. |
| Keep CI split by surface area. | #63, #69 | Separate C#, Rust, and WebAssembly workflows run relevant checks. |
Expand Down
3 changes: 2 additions & 1 deletion docs/case-studies/issue-12/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Pull request: https://github.com/link-foundation/link-cli/pull/52
as the latest release.
- `evidence/doublets-web-issue-5.json`: dependency issue details from
https://github.com/linksplatform/doublets-web/issues/5.
- `screenshots/`: browser workbench desktop and mobile verification captures.

GitHub Actions log downloads for runs `17617650587` and `17617649689` returned
HTTP 410 on 2026-05-01, so the exact old log bodies were no longer available.
Expand Down Expand Up @@ -65,7 +66,7 @@ The run metadata still showed both failures were on branch SHA
- Mirror each Rust query snapshot into a `doublets-web` `UnitedLinks` instance.
- Replace the old CI workflow with stable Rust, npm, `wasm-pack`, Vite build,
artifact upload v4, and GitHub Pages deployment.
- Ignore generated `target/`, `web/pkg/`, `dist/`, and local investigation
- Ignore generated `target/`, `js/pkg/`, `dist/`, and local investigation
artifacts.

## Residual Risks
Expand Down
2 changes: 1 addition & 1 deletion docs/case-studies/issue-77/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Captured evidence is stored in `evidence/`.

## Regression Test

`web/test/repositoryLayout.test.mjs` reproduces the original layout problem by
`js/test/repositoryLayout.test.mjs` reproduces the original layout problem by
asserting that root `Cargo.toml`, `Cargo.lock`, `scripts/`, `src/`, and `tests/`
do not exist, while `csharp/scripts/`, `rust/scripts/`, and `rust/wasm/` do.

Expand Down
Loading
Loading