Faber 1.1.0
| Field | Value |
|---|---|
| Product | Faber |
| Version | 1.1.0 |
| License | MIT |
Install this version#
No prebuilt archives were published for this version. It is listed here because its release notes are part of the record.
Release notes#
Minor product release spanning 13 commits since v1.0.0
(2026-07-14→2026-07-17). Headline: reader-locale-driven Faber emit surface
(--reader-locale), the first tag-driven GitHub Actions release workflow, and
the process/versioning/interdependency analysis docs.
*Era note: this tag predates the current release-note convention (Scale table, companion pins, recorded verification gates). These notes are reconstructed post-hoc from the commit range; no pre-release gate records were captured in-tree for this era.*
Scale#
| Signal | Count |
|---|---|
| Commits (no merges) | 13 |
feat(...) commits | 1 |
fix(...) commits | 2 |
test(...) commits | 3 |
Remainder of the range: 4 docs, 1 ci, 1 release, 1 polish.
git log v1.0.0..v1.1.0 --oneline --no-mergesMajor tracks#
Reader-locale emit surface (--reader-locale)#
Phase 2 of the reader-locale-emit goal (Radix). The two CLI gates that
suppressed localized output are removed: faber emit -t faber no longer
rejects --reader-locale, and faber format no longer requires
--canonical. The reader locale resolves to a pack (Faber owns install-layout
+ package-manifest resolution) and is handed to
radix::tool::cmd_emit_with_reader_pack, so `faber emit -t faber
--reader-locale=<X> emits localized Faber. --canonical` remains the Latin
alias; no flags keeps author mode.
Phase 3 proves the surface: a new test shows --reader-locale=ar emits Arabic
keywords (دالة functio، بداية incipit) in logical codepoint order — no Latin
survives and no Bidi isolates / embedding controls (U+202A–U+202E,
U+2066–U+2069) are injected.
Go codegen dispatch adaptation#
The radix generate_from_analyzed dispatch seam gained a KeywordSurface
parameter after reader-locale emit threading. Go is not a localized target, so
the surface is unused; a Latin surface is constructed once per Go package
result and forwarded to keep the build green.
First tag-driven release workflow#
.github/workflows/release.yml lands (b771357): triggers on vX.Y.Z tag push
or manual dispatch, builds the faber binary for x86_64-linux, x86_64-macos,
and aarch64-macos, validates the crate version against the tag, and publishes
platform archives with SHA-256 checksums to faberlang/releases with
faber-prefixed tags. The CI workspace assembles the full faberlang/ layout
by checking out siblings (radix via FABERLANG_RELEASES_TOKEN, cista,
faber-runtime, host-kernel-rs, host-native-rs, host-providers-rs). The hygiene
ratchet is vendored as crates/hygiene-ratchet/ so Faber is self-contained
for hygiene tests (the cross-repo path dep was a monorepo split leftover).
Package resilience#
fix(package): fall back from a missing runtime dependency instead of
failing, with new test coverage. A generated-provider loopback test
(test(http)) proves the provider codegen round-trip. Artifact-plan helpers
are clarified.
Process docs#
docs(design): CLI surface analysis vs Radix + Cista (head-cto) — the compile/check/run/test loop is fully covered (14 targets); package management is flagged as the main usability gap (by-design repo separation, staged per the Cista roadmap); no gap blocks the release-1.1 narrative.docs(release): process, versioning, and interdependency analysis (head-cpo) across all 10 repos, three release workflows, and version/tag drift.docs(release): major parity and language lock definition.docs: faber factory status truth refresh.
Version alignment#
| Item | Value |
|---|---|
| Source tag | v1.1.0 (annotated, 2026-07-17) |
Cargo.toml package version | 1.1.0 |
| Public artifact tag | none observed — no faber-v1.1.0 on faberlang/releases; the earliest published Faber binary is faber-v1.1.1 |
| Build matrix | Linux x86_64 + macOS x86_64 + macOS arm64 (as configured in the new workflow) |
Known limitations#
- The tag-driven release workflow landed the same day the
v1.1.0tag was cut; CIcargo build --lockedagainst sibling default-branch tips was not yet reconciled. The same-dayv1.1.1re-release refreshesCargo.lockspecifically so the workflow's locked build succeeds (seev1.1.1.md). - No
faber-v1.1.0public binary was published tofaberlang/releases. - No in-tree pre-release verification records exist for this era.
---