The IT-86 release pipeline (release.yml) now builds both Linux targets
on GitHub and mirrors the binaries back to Forgejo, proven end-to-end by
the v0.0.0-ci.1 run (ANW-31, Verified). The on-demand Forgejo build from
ANW-30 was the fallback Linux CI until then; it is now redundant.
ap keeps every release and the raw, unstripped binaries are the bulk of
that storage. Strip symbols via the release profile and gzip -9 each
asset before upload (~2.7x smaller); the publish job and Forgejo
mirror-back pass the .gz assets through unchanged.
Assumed .gz per binary over .tar.gz -- the assets are single files, so a
tarball only adds a directory layer. Flag if a bundle (LICENSE/README) is
wanted. E2E needs a release run; piggyback on the next real tag.
Tag-triggered (v* on the Forgejo mirror) instead of a hand-made GitHub
release. Adds an aarch64-linux leg; a single publish job creates the GitHub
release and mirrors every binary back onto the matching Forgejo release via
FORGEJO_RELEASE_TOKEN. Keeps the hurl HTTP contract harness on x86_64-linux.
Assumed v* tags are the release trigger and the contract tests run once on the
deploy target (x86_64-linux); flag if either is wrong.
Collapse the matrix to one linear job on the amd64 :host runner: test
once, then build x86_64 natively and aarch64 by cross-compilation, then
publish both to a Forgejo release. Authenticate the upload with a real
write token (RELEASE_TOKEN, the carvers-ci bot) -- Forgejo's auto
GITHUB_TOKEN cannot upload release attachments. prerelease is a string
input, not boolean, so its value survives an API workflow_dispatch.
Forgejo-side counterpart to the GitHub release.yml (ANW-29). Driven by
workflow_dispatch (UI or API) rather than a release-published event, so a
build can be triggered for a test. Builds the release binary natively per
target, runs the test suite first, and publishes the assets to a Forgejo
release via actions/forgejo-release.
Assumed runner labels linux-amd64 / macos-arm64 must match the forge's
act_runner registration; arm64 needs a native Apple Silicon runner. Flagged
to aav -- correct if the topology differs.
Replace the placeholder README with the full public-facing README, and
switch licensing to BSD 3-Clause per aav's decision on ANW-28: add a single
LICENSE file, drop the dual LICENSE-MIT / LICENSE-APACHE, and update the
Cargo.toml license field to match. README/LICENSE content authored by kaa,
landed verbatim.
Assumed: dropping the old MIT/Apache files and updating Cargo.toml
license = BSD-3-Clause is the consistent completion of aav's BSD decision
(v0.0.0, nothing released relied on the old grant); flag if the dual
license was meant to stay.
On a published GitHub Release, for each target (amd64 Linux, arm macOS) run
the Rust test suite and the hurl HTTP contract tests, build the release
binary on a stable toolchain, and upload it as a target-named asset on the
triggering release. Trigger is release:published per ANW-29 -- aav creates
the release and tag in the UI; the workflow never creates them.
Thin local front-end over ANW-26's merge engine (query::execute_merge):
walk the vault once (vault::scan, same as doctor), evaluate the --query
string, assemble the merged document, write it to stdout. No HTTP, no
watcher, no index. Byte-identical to the HTTP merge mode for the same
vault and query.
Accept: text/markdown on /query concatenates matched note bodies into one
markdown document, each fragment preceded by an HTML-comment source marker.
Adds __anw-order (frontmatter-key ordering, asc/desc, missing-key-last) and
__anw-kind (homogeneity guard, 400 on a mixed merge). Both evaluate over the
full matched set before __anw-limit truncates. Merge mode uses its own
body-cloning projection; the JSON path is unchanged (no body clone).