From a079e51f9d388871dbf2f99a7070bcb0e1d5d5a6 Mon Sep 17 00:00:00 2001 From: jyviko <2501648+jyviko@users.noreply.github.com> Date: Fri, 16 Oct 2026 08:26:41 -0400 Subject: [PATCH] repo: move to github.com/tangency-labs/fieldcraft (URLs, updater, Pages) The updater's release endpoint, docs, README, release notes and the Pages URL point at the tangency-labs org. App IDs (io.github.jyviko.fieldcraft) stay unchanged so installed copies keep their identity and settings. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo --- .github/release-notes.md | 6 ++--- .github/workflows/pages.yml | 2 +- AGENTS.md | 2 +- CONTRIBUTING.md | 34 ++++++++++++++--------------- Cargo.toml | 2 +- README.md | 14 ++++++------ SECURITY.md | 2 +- apps/fieldcraft-cli/tests/update.rs | 2 +- apps/fieldcraft-web/index.html | 6 ++--- apps/fieldcraft/Cargo.toml | 2 +- crates/engine/src/bug_report.rs | 4 ++-- crates/ui-egui/src/privacy.rs | 2 +- crates/update/src/lib.rs | 2 +- crates/update/src/net.rs | 4 ++-- crates/update/src/release.rs | 2 +- docs/releasing.md | 20 ++++++++--------- docs/updates.md | 2 +- docs/web.md | 2 +- 18 files changed, 55 insertions(+), 55 deletions(-) diff --git a/.github/release-notes.md b/.github/release-notes.md index ae74712..cf2f778 100644 --- a/.github/release-notes.md +++ b/.github/release-notes.md @@ -1,9 +1,9 @@ FieldCraft is open-source CAE pre-processing in Rust: it turns geometry into analysis-ready finite element models, writes Abaqus, Nastran and LS-DYNA decks, and solves linear static and modal problems with its own solver. AI agents can drive it over MCP (`fieldcraft-cli mcp`). -[README](https://github.com/jyviko/fieldcraft#readme) · -[roadmap](https://github.com/jyviko/fieldcraft/blob/main/ROADMAP.md) · -[issues](https://github.com/jyviko/fieldcraft/issues) +[README](https://github.com/tangency-labs/fieldcraft#readme) · +[roadmap](https://github.com/tangency-labs/fieldcraft/blob/main/ROADMAP.md) · +[issues](https://github.com/tangency-labs/fieldcraft/issues) **Which file?** - **macOS 11+** (Apple silicon and Intel): open `fieldcraft-{version}-macos-universal.dmg` and diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 258447f..0ebe595 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -1,4 +1,4 @@ -# The web app (apps/fieldcraft-web, docs/web.md) on GitHub Pages: https://jyviko.github.io/fieldcraft/ +# The web app (apps/fieldcraft-web, docs/web.md) on GitHub Pages: https://tangency-labs.github.io/fieldcraft/ # After SolidCraft's pages.yml (MIT OR Apache-2.0; see ATTRIBUTION.md). # # A push to `main` (a release; main holds released code only) builds the app with Trunk (release, diff --git a/AGENTS.md b/AGENTS.md index 5c8d195..b0520c4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -139,7 +139,7 @@ People trust FieldCraft with their models; a crash loses their work. **This outr heavy tests, nightly, before every release and on demand (`gh workflow run CI --ref `). Hostile-input tests run commands on sessions with small work caps (`Session::limits`) so refusals are instant; never lower the production caps for a test. -- **Publishing**: `origin` is github.com/jyviko/fieldcraft. Changes land through pull requests +- **Publishing**: `origin` is github.com/tangency-labs/fieldcraft. Changes land through pull requests as the workflow above describes; the coordinator reads every merged diff and sends findings back as fix-forward work. Never force-push `develop` or `main`; `main` holds released code and moves only by fast-forward at a release (docs/releasing.md). Never commit `plan/`, `.agent-files/`, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0efa102..58c54c0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ needed most, and how to claim work. The rules every change follows, by a person You need stable Rust 1.95 or newer. ```sh -git clone https://github.com/jyviko/fieldcraft && cd fieldcraft +git clone https://github.com/tangency-labs/fieldcraft && cd fieldcraft cargo run --release -p fieldcraft -- --sample cantilever # the desktop app on a sample model cargo run -p fieldcraft-cli -- commands # every command and its parameters cargo test -p fieldcraft-solver # the tests of one crate @@ -28,32 +28,32 @@ cargo xtask oracle --quick # the verification ca ## Where help is wanted most -See the [`help wanted`](https://github.com/jyviko/fieldcraft/labels/help%20wanted) and -[`good first issue`](https://github.com/jyviko/fieldcraft/labels/good%20first%20issue) labels, and +See the [`help wanted`](https://github.com/tangency-labs/fieldcraft/labels/help%20wanted) and +[`good first issue`](https://github.com/tangency-labs/fieldcraft/labels/good%20first%20issue) labels, and the `area:` labels for your field. In order of how much they would help users: -1. **Reproducible meshes** ([#115](https://github.com/jyviko/fieldcraft/issues/115)). The same part +1. **Reproducible meshes** ([#115](https://github.com/tangency-labs/fieldcraft/issues/115)). The same part must give the same tet mesh on every platform and every run, as the solvers already do. -2. **All-hex meshing of thin and curved parts** ([#85](https://github.com/jyviko/fieldcraft/issues/85)). +2. **All-hex meshing of thin and curved parts** ([#85](https://github.com/tangency-labs/fieldcraft/issues/85)). The octree mesher over-refines thin walls; concave transition templates and an up-front depth are next. Hex meshing is the centre of gravity of the project. -3. **Getting results in and out**: ParaView export ([#90](https://github.com/jyviko/fieldcraft/issues/90)), - Gmsh import ([#91](https://github.com/jyviko/fieldcraft/issues/91)), Abaqus deck reading - ([#98](https://github.com/jyviko/fieldcraft/issues/98)), CSV and STL - ([#92](https://github.com/jyviko/fieldcraft/issues/92), [#93](https://github.com/jyviko/fieldcraft/issues/93)). -4. **Verification benchmarks** ([#97](https://github.com/jyviko/fieldcraft/issues/97), - [#106](https://github.com/jyviko/fieldcraft/issues/106)). An engineer with a published benchmark +3. **Getting results in and out**: ParaView export ([#90](https://github.com/tangency-labs/fieldcraft/issues/90)), + Gmsh import ([#91](https://github.com/tangency-labs/fieldcraft/issues/91)), Abaqus deck reading + ([#98](https://github.com/tangency-labs/fieldcraft/issues/98)), CSV and STL + ([#92](https://github.com/tangency-labs/fieldcraft/issues/92), [#93](https://github.com/tangency-labs/fieldcraft/issues/93)). +4. **Verification benchmarks** ([#97](https://github.com/tangency-labs/fieldcraft/issues/97), + [#106](https://github.com/tangency-labs/fieldcraft/issues/106)). An engineer with a published benchmark can add it as an oracle case without touching solver code. 5. **Nonlinear elements and materials**: incompatible modes at finite strain - ([#82](https://github.com/jyviko/fieldcraft/issues/82)), kinematic hardening - ([#81](https://github.com/jyviko/fieldcraft/issues/81)), and the material library - ([#99](https://github.com/jyviko/fieldcraft/issues/99)). -6. **The app**: typed command forms ([#112](https://github.com/jyviko/fieldcraft/issues/112)), XY and - path plots ([#94](https://github.com/jyviko/fieldcraft/issues/94), [#95](https://github.com/jyviko/fieldcraft/issues/95)). + ([#82](https://github.com/tangency-labs/fieldcraft/issues/82)), kinematic hardening + ([#81](https://github.com/tangency-labs/fieldcraft/issues/81)), and the material library + ([#99](https://github.com/tangency-labs/fieldcraft/issues/99)). +6. **The app**: typed command forms ([#112](https://github.com/tangency-labs/fieldcraft/issues/112)), XY and + path plots ([#94](https://github.com/tangency-labs/fieldcraft/issues/94), [#95](https://github.com/tangency-labs/fieldcraft/issues/95)). Bigger areas on the [roadmap](ROADMAP.md) — contact, dynamics, composites, coupled fields, wave propagation, turbulence — are open to anyone who wants to own one: start a thread in -[Discussions](https://github.com/jyviko/fieldcraft/discussions). +[Discussions](https://github.com/tangency-labs/fieldcraft/discussions). ## Before you start: claim an issue diff --git a/Cargo.toml b/Cargo.toml index b094ea3..5bda8db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" authors = ["FieldCraft contributors"] -repository = "https://github.com/jyviko/fieldcraft" +repository = "https://github.com/tangency-labs/fieldcraft" [workspace.dependencies] # internal diff --git a/README.md b/README.md index 3981f73..e79790f 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ see the results — with a nonlinear implicit solver (large deformation, plastic in place. Hex meshing is the centre of gravity. Next: buckling and arc-length, contact, then the wider material and multiphysics library. See [ROADMAP.md](ROADMAP.md). **Want to help?** Pick an issue labelled -[good first issue](https://github.com/jyviko/fieldcraft/labels/good%20first%20issue) or -[help wanted](https://github.com/jyviko/fieldcraft/labels/help%20wanted) and read +[good first issue](https://github.com/tangency-labs/fieldcraft/labels/good%20first%20issue) or +[help wanted](https://github.com/tangency-labs/fieldcraft/labels/help%20wanted) and read [CONTRIBUTING.md](CONTRIBUTING.md). ![Claude analyses an I-beam cantilever in FieldCraft over MCP: it opens the part, hex meshes it, sets steel, the clamp and a 1 kN tip load, solves, shows von Mises stress and the deformed shape, and checks the tip deflection against beam theory](docs/media/claude-mcp.gif) @@ -28,15 +28,15 @@ theory with shear 0.177 mm). ## Download -[![Download for macOS](https://img.shields.io/badge/macOS-Download-000000?style=for-the-badge&logo=apple&logoColor=white)](https://github.com/jyviko/fieldcraft/releases/latest) -[![Download for Windows](https://img.shields.io/badge/Windows-Download-0078D6?style=for-the-badge)](https://github.com/jyviko/fieldcraft/releases/latest) -[![Download for Linux](https://img.shields.io/badge/Linux-Download-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://github.com/jyviko/fieldcraft/releases/latest) -[![Try it in your browser](https://img.shields.io/badge/Browser-Try%20it-2ea44f?style=for-the-badge&logo=webassembly&logoColor=white)](https://jyviko.github.io/fieldcraft/) +[![Download for macOS](https://img.shields.io/badge/macOS-Download-000000?style=for-the-badge&logo=apple&logoColor=white)](https://github.com/tangency-labs/fieldcraft/releases/latest) +[![Download for Windows](https://img.shields.io/badge/Windows-Download-0078D6?style=for-the-badge)](https://github.com/tangency-labs/fieldcraft/releases/latest) +[![Download for Linux](https://img.shields.io/badge/Linux-Download-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://github.com/tangency-labs/fieldcraft/releases/latest) +[![Try it in your browser](https://img.shields.io/badge/Browser-Try%20it-2ea44f?style=for-the-badge&logo=webassembly&logoColor=white)](https://tangency-labs.github.io/fieldcraft/) - **macOS:** open the `.dmg` and drag FieldCraft into Applications (Apple silicon and Intel). - **Windows:** unzip and run `fieldcraft.exe`. - **Linux:** the `.AppImage` (allow it to run as a program), or the `.tar.gz`. -- **Browser:** [try it at jyviko.github.io/fieldcraft](https://jyviko.github.io/fieldcraft/), no install. +- **Browser:** [try it at tangency-labs.github.io/fieldcraft](https://tangency-labs.github.io/fieldcraft/), no install. - **Command line:** `fieldcraft-cli` ships in every package; AI agents connect to it over MCP ([docs/mcp.md](docs/mcp.md)). diff --git a/SECURITY.md b/SECURITY.md index a715c3a..d8d0cca 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,7 +3,7 @@ FieldCraft is young; only `main` and the latest release get fixes. Please **don't open a public issue** for a security problem. Report it privately through the -repository's [Security tab](https://github.com/jyviko/fieldcraft/security/advisories/new) with +repository's [Security tab](https://github.com/tangency-labs/fieldcraft/security/advisories/new) with what you found, how to reproduce it (a model, deck or script), the version and platform, and the impact you expect. diff --git a/apps/fieldcraft-cli/tests/update.rs b/apps/fieldcraft-cli/tests/update.rs index d1b41c7..ab658ae 100644 --- a/apps/fieldcraft-cli/tests/update.rs +++ b/apps/fieldcraft-cli/tests/update.rs @@ -12,7 +12,7 @@ fn cli(host: &str, args: &[&str]) -> std::process::Output { #[test] fn update_check_reports_the_latest_release() { let server = Server::start().unwrap(); - server.release("latest", &json!({"tag_name": "v99.0.0", "html_url": "https://github.com/jyviko/fieldcraft/releases/tag/v99.0.0", "assets": []})); + server.release("latest", &json!({"tag_name": "v99.0.0", "html_url": "https://github.com/tangency-labs/fieldcraft/releases/tag/v99.0.0", "assets": []})); let out = cli(&server.url(), &["update", "--check"]); assert!(out.status.success(), "{out:?}"); let report: Value = serde_json::from_slice(&out.stdout).unwrap(); diff --git a/apps/fieldcraft-web/index.html b/apps/fieldcraft-web/index.html index 5122f16..24f408e 100644 --- a/apps/fieldcraft-web/index.html +++ b/apps/fieldcraft-web/index.html @@ -9,15 +9,15 @@ - - + + - + diff --git a/apps/fieldcraft/Cargo.toml b/apps/fieldcraft/Cargo.toml index d1f6ac1..c821a15 100644 --- a/apps/fieldcraft/Cargo.toml +++ b/apps/fieldcraft/Cargo.toml @@ -101,7 +101,7 @@ assets = [ [package.metadata.generate-rpm] name = "fieldcraft" license = "MIT OR Apache-2.0" -url = "https://github.com/jyviko/fieldcraft" +url = "https://github.com/tangency-labs/fieldcraft" assets = [ { source = "target/release/fieldcraft", dest = "/usr/bin/fieldcraft", mode = "755" }, { source = "target/release/fieldcraft-cli", dest = "/usr/bin/fieldcraft-cli", mode = "755" }, diff --git a/crates/engine/src/bug_report.rs b/crates/engine/src/bug_report.rs index 3500e2f..2b4beeb 100644 --- a/crates/engine/src/bug_report.rs +++ b/crates/engine/src/bug_report.rs @@ -17,7 +17,7 @@ use serde_json::{Value, json}; use crate::crash::without_home; /// The issue form. -pub const ISSUE_URL: &str = "https://github.com/jyviko/fieldcraft/issues/new"; +pub const ISSUE_URL: &str = "https://github.com/tangency-labs/fieldcraft/issues/new"; /// The longest link a draft opens: GitHub refuses new-issue links much past 8 KB. pub const MAX_URL: usize = 7000; /// The session file a draft attaches. @@ -329,7 +329,7 @@ mod tests { ..Default::default() }; let d = draft(&input, "v1.2.3, testos x"); - assert!(d.url.starts_with("https://github.com/jyviko/fieldcraft/issues/new?template=bug.yml&title="), "{}", d.url); + assert!(d.url.starts_with("https://github.com/tangency-labs/fieldcraft/issues/new?template=bug.yml&title="), "{}", d.url); assert!(d.attachments.is_empty() && d.clipboard.is_none(), "nothing attached without Share my session"); let all = format!("{} {:?} {}", d.title, d.fields, decode(&d.url)); assert!(!all.contains(&home()), "no home folder: {all}"); diff --git a/crates/ui-egui/src/privacy.rs b/crates/ui-egui/src/privacy.rs index 8706981..112e19f 100644 --- a/crates/ui-egui/src/privacy.rs +++ b/crates/ui-egui/src/privacy.rs @@ -13,7 +13,7 @@ use crate::ModelApp; use crate::files::Prompt; /// What is sent, event by event. -pub const PRIVACY_URL: &str = "https://github.com/jyviko/fieldcraft/blob/main/docs/privacy.md"; +pub const PRIVACY_URL: &str = "https://github.com/tangency-labs/fieldcraft/blob/main/docs/privacy.md"; /// The question, as the first run asks it. pub const QUESTION: &str = "Help improve FieldCraft by sharing anonymous usage: which tools you use, nothing from your models."; const DETAIL: &str = "Counted: the commands you run (their names, how long they took, whether they failed), the steps from a design to results, \ diff --git a/crates/update/src/lib.rs b/crates/update/src/lib.rs index d6b2e0b..f195de5 100644 --- a/crates/update/src/lib.rs +++ b/crates/update/src/lib.rs @@ -35,7 +35,7 @@ pub use release::{Asset, Check, Release}; pub use version::Version; /// The repository releases come from. -pub const REPO: &str = "jyviko/fieldcraft"; +pub const REPO: &str = "tangency-labs/fieldcraft"; /// The GitHub API. pub const DEFAULT_HOST: &str = "https://api.github.com"; /// Replaces [`DEFAULT_HOST`] (and allows plain `http`), for tests against a local server only. diff --git a/crates/update/src/net.rs b/crates/update/src/net.rs index fdddfc2..13f7a03 100644 --- a/crates/update/src/net.rs +++ b/crates/update/src/net.rs @@ -164,9 +164,9 @@ mod tests { // Errors are messages, never panics. let missing = Client::new(&server.url()).release(&Which::Version(Version::parse("1.2.3").unwrap())).unwrap_err(); assert!(missing.to_string().contains("no published release of FieldCraft 1.2.3"), "{missing}"); - server.route("/repos/jyviko/fieldcraft/releases/latest", 200, b"not json".to_vec()); + server.route("/repos/tangency-labs/fieldcraft/releases/latest", 200, b"not json".to_vec()); assert!(matches!(Client::new(&server.url()).check(), Err(Error::Release(_)))); - server.route("/repos/jyviko/fieldcraft/releases/latest", 403, b"{}".to_vec()); + server.route("/repos/tangency-labs/fieldcraft/releases/latest", 403, b"{}".to_vec()); assert!(matches!(Client::new(&server.url()).check(), Err(Error::Network(_)))); assert!(matches!(Client::new("http://127.0.0.1:1").check(), Err(Error::Network(_)))); } diff --git a/crates/update/src/release.rs b/crates/update/src/release.rs index 459724a..c551094 100644 --- a/crates/update/src/release.rs +++ b/crates/update/src/release.rs @@ -129,7 +129,7 @@ mod tests { pub(crate) fn github(tag: &str) -> Value { json!({ "tag_name": tag, - "html_url": format!("https://github.com/jyviko/fieldcraft/releases/tag/{tag}"), + "html_url": format!("https://github.com/tangency-labs/fieldcraft/releases/tag/{tag}"), "body": "## What's new\n- updates", "draft": false, "prerelease": false, diff --git a/docs/releasing.md b/docs/releasing.md index fe2619f..c75ed7f 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -56,7 +56,7 @@ about it, and the release notes say which of the two the draft contains. | `APPLE_TEAM_ID` | The 10-character team id of the Developer ID | Add them to the `release` environment ([Where the secrets live](#where-the-secrets-live)) with -`gh secret set --env release -R jyviko/fieldcraft`. With the certificate but without the +`gh secret set --env release -R tangency-labs/fieldcraft`. With the certificate but without the three notarization secrets the app is signed and not notarized. A dmg made locally with `packaging/macos/package.sh` is ad-hoc signed unless `MACOS_SIGN_IDENTITY` names an identity in the keychain. @@ -84,7 +84,7 @@ Setting it up, once: ```sh cargo install --locked rsign2 --version 0.6.7 rsign generate -W -p fieldcraft-release.pub -s fieldcraft-release.key # -W: no password -gh secret set FIELDCRAFT_SIGNING_KEY --env release -R jyviko/fieldcraft < fieldcraft-release.key +gh secret set FIELDCRAFT_SIGNING_KEY --env release -R tangency-labs/fieldcraft < fieldcraft-release.key ``` Keep an offline copy of the secret key file (a password manager, an encrypted backup) and @@ -130,19 +130,19 @@ never the shell history): ```sh for n in APPLE_CERTIFICATE APPLE_CERTIFICATE_PASSWORD KEYCHAIN_PASSWORD APPLE_ID APPLE_PASSWORD \ APPLE_TEAM_ID FIELDCRAFT_SIGNING_KEY POSTHOG_KEY; do - gh secret set "$n" --env release -R jyviko/fieldcraft < "$n.txt" + gh secret set "$n" --env release -R tangency-labs/fieldcraft < "$n.txt" done -gh secret list --env release -R jyviko/fieldcraft # all eight listed +gh secret list --env release -R tangency-labs/fieldcraft # all eight listed # After a release run on main has signed with them: for n in APPLE_CERTIFICATE APPLE_CERTIFICATE_PASSWORD KEYCHAIN_PASSWORD APPLE_ID APPLE_PASSWORD \ APPLE_TEAM_ID FIELDCRAFT_SIGNING_KEY POSTHOG_KEY; do - gh secret delete "$n" -R jyviko/fieldcraft + gh secret delete "$n" -R tangency-labs/fieldcraft done ``` ## Choose and prepare the version -1. Look at the previous published release (`gh release list -R jyviko/fieldcraft`) and the +1. Look at the previous published release (`gh release list -R tangency-labs/fieldcraft`) and the changes since it, and choose one version for the batch: a patch for compatible fixes; a minor for new capabilities, and while on `0.x` also for breaking changes (say what breaks in the notes); `-rc.N` for a release candidate. `1.0` is the owner's decision. @@ -189,8 +189,8 @@ commit needs: `cargo xtask affected --base ^ --head `. A file outside Publishing is a maintainer's call; an agent preparing a release stops at the draft. 1. Check the run succeeded for the intended commit and the draft targets it - (`gh release view v -R jyviko/fieldcraft`). -2. Download the assets into an empty folder (`gh release download v -R jyviko/fieldcraft`), + (`gh release view v -R tangency-labs/fieldcraft`). +2. Download the assets into an empty folder (`gh release download v -R tangency-labs/fieldcraft`), run `shasum -a 256 -c SHA256SUMS.txt`, check the signature (`minisign -Vm SHA256SUMS.txt -P `, or `rsign verify -P …`), and check every platform's files are there. @@ -201,13 +201,13 @@ Publishing is a maintainer's call; an agent preparing a release stops at the dra platforms you could not try (each job checks its own package). 4. Edit the notes: what is new, fixes, breaking changes, known limitations. Keep the install and signing paragraphs; never claim signing the notes don't state. -5. Publish: `gh release edit v -R jyviko/fieldcraft --draft=false --latest` +5. Publish: `gh release edit v -R tangency-labs/fieldcraft --draft=false --latest` (a release candidate: `--draft=false --prerelease --latest=false`). Publishing creates the tag at the draft's commit; never push release tags by hand. ## Dry runs -`gh workflow run release.yml -R jyviko/fieldcraft --ref ` runs the verify jobs and builds every package in parallel, and +`gh workflow run release.yml -R tangency-labs/fieldcraft --ref ` runs the verify jobs and builds every package in parallel, and uploads them with the notes as the `release-assets` artifact of the run, without creating a release. `-f draft=true` creates or updates the draft, and is accepted on `main` only. Locally, `packaging/macos/package.sh --arch aarch64` (or `x86_64`, `universal`) and diff --git a/docs/updates.md b/docs/updates.md index 1b98861..fd37e78 100644 --- a/docs/updates.md +++ b/docs/updates.md @@ -7,7 +7,7 @@ each step. The code is `crates/update` (`fieldcraft-update`); the window's side ## Checking The app asks the GitHub Releases API for the latest published release -(`GET https://api.github.com/repos/jyviko/fieldcraft/releases/latest`; drafts and pre-releases +(`GET https://api.github.com/repos/tangency-labs/fieldcraft/releases/latest`; drafts and pre-releases are never offered) and compares its version with the running one (Semantic Versioning order). - **At start-up**, at most once a day, when **Check for updates automatically** is on (the diff --git a/docs/web.md b/docs/web.md index 586ada2..12112ba 100644 --- a/docs/web.md +++ b/docs/web.md @@ -5,7 +5,7 @@ page through eframe's web runner, drawing with WebGPU where the browser has it a otherwise. The engine, the meshers and the solvers are the same code, compiled to `wasm32-unknown-unknown`. -Live: , deployed from each release (a push to `main`, +Live: , deployed from each release (a push to `main`, `.github/workflows/pages.yml`). ## Run it locally