mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 14:16:28 +03:00
The engine binaries move from the impeccable-dist channel to this repo's own GitHub Releases (tag engine-v<ENGINE_VERSION>), and the closed detector the engine links arrives as detector-v<DETECTOR_VERSION> releases on the same repo. This commit wires the public side for that; the crates themselves land in the next commit. - Launcher (sh + cmd), npm shim, fetch-engine and check-engine-release now download from github.com/pbakaus/impeccable/releases/download/engine-v<X>/. - release.mjs gains `engine`: verifies ENGINE_VERSION against the platform package pins and the detector release, tags, pushes; release-engine.yml builds the five targets and publishes. check-detector-release.mjs is the matching release-order guard (with tests). - Root Cargo.toml (workspace, lto = false with the reason), rust-toolchain.toml (exact pin), DETECTOR_VERSION, /target ignored. - CI: rust + rust-windows jobs and an oracle job that replays the goldens against a source build, warn-only until the first detector release exists; ci-test-plan exposes a `rust` output. - docs/ENGINE.md (the crate map and the closed-detector mechanism) and the CLAUDE.md engine, release-order and rules sections. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vau2X53xGTjjTCXWMVBoNY
43 lines
1.4 KiB
TOML
43 lines
1.4 KiB
TOML
# The impeccable runtime: one Cargo workspace next to the skill it powers.
|
|
# `cargo build --release -p impeccable` produces the engine binary the launcher
|
|
# (skill/scripts/impeccable) runs. See docs/ENGINE.md.
|
|
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/*"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[workspace.dependencies]
|
|
impeccable-foundation = { path = "crates/foundation" }
|
|
impeccable-common = { path = "crates/common" }
|
|
impeccable-core = { path = "crates/core" }
|
|
impeccable-detect = { path = "crates/detect" }
|
|
impeccable-html = { path = "crates/html" }
|
|
impeccable-browser = { path = "crates/browser" }
|
|
impeccable-live = { path = "crates/live" }
|
|
impeccable-context = { path = "crates/context" }
|
|
impeccable-hook = { path = "crates/hook" }
|
|
impeccable-comp = { path = "crates/comp" }
|
|
impeccable-comp-verbs = { path = "crates/comp-verbs" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1", features = ["preserve_order"] }
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
regex = "1"
|
|
once_cell = "1"
|
|
|
|
# No cross-crate LTO: crates/core links the prebuilt detector as a native
|
|
# archive of Rust objects, and fat or thin LTO internalizes the std symbols
|
|
# those opaque objects still reference (the link then fails with "symbol(s)
|
|
# not found"). Cargo's default thin-local LTO is what `lto = false` means.
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = false
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|