Repository navigation
Releases: Forja-orca/tylluan
Release list
v0.17.1
Full Changelog: v0.17.0...v0.17.1
609 commits since v0.17.0 (git rev-list --count v0.17.0..HEAD). This entry lists the user-visible fixes found and verified in the 2026-10-05/12 window; it does not itemise the other commits in that range, so use git log v0.17.0..v0.17.1 for the full list.
Upgrade note — federation. The Noise NK mesh payload now carries an Ed25519 signature of the plaintext inside the AEAD ([signature(64) || plaintext]). By construction, a 0.17.0 peer and a 0.17.1 peer cannot exchange Noise-NK-encrypted payloads, so upgrade peers together. This has not been tested across versions.
Security
/api/*no longer bypasses bearer auth by file extension:is_public_bypass_pathnow fails closed under/api/with four explicit exemptions (192fbcf).- The per-session rate limiter pruned only empty entries and leaked memory across idle sessions; it now ages out every key (
192fbcf). POST /api/v1/bashis refused unlessdev_mode = true(192fbcf).- Noise NK payloads authenticate their sender with an Ed25519 signature and fail closed on an empty or invalid sender key (
e2bc9f7). default_hostis127.0.0.1, not0.0.0.0(68c5971); the dispatch state distinguishes a failed spawn from a success (8e91470).
Reliability
- Starting any
tylluan-nexusinvocation (even--version) could read another instance's PID file and kill the live kernel. The anti-orphan routine now runs only when the server actually boots, kills a live peer only when its listening port equals ours, and never overwrites a live peer's PID file (7f3d783). stopresolves the exact instance from its PID file instead of sweeping by process name (c476bee); the default port is 47004 everywhere (ad13ec6).- Router: trigger phrases were silently dropped for
coloquioandcomfy_ui; the extractor is now a proper lexer (7a49cd5). Live routing accuracy on the 77-item MD-3 set went from 45.6% to 50.0% (31/68 to 34/68) with no regressions. Valid natural-language requests are no longer rejected by therequired_argsgate (7fca2f2). - A loadable but too-old ONNX Runtime (1.5.2 on a Windows runner
PATH) passed the loadability probe and then aborted the boot insideort(release builds usepanic = "abort", so nocatch_unwindcan help).onnx_runtime_ort_compatible()now mirrors every checkortmakes (symbol, version,GetApi) and returns false instead of panicking; every entry intoort(embeddings, reranker, sparse engine, MLP scorer, light reranker, thread cap) is gated by it and degrades to BM25 / pure RRF. A structural test fails if a newortentry appears without the probe. Verified by booting the release binary against ONNX Runtime 1.22 (full) and 1.17.1 (degraded, zero panics) on Windows (ce2cf4d,de5b31a). - The
portableinstall profile now writes[silva] reranker_enabled = false, matching its "boots offline with no external dependencies" promise (ce2cf4d). CapabilityRegistry::prune_expiredno longer panics (Instant - Duration) on a machine whose uptime is shorter than the TTL (3a7768a).- Coloquio: a single message can be read in full by turn (
turno 1093,T1093,mensaje 1093); reading or search verbs (lee,read,busca...) are no longer parsed as a channel name; truncation markers say how to read the rest; responses are bounded to 12000 characters; a nonexistent channel lists the real ones (7775625,633be0d). work_tracesnow has a production writer and a prune (afc9533); hybrid memory is fully retired (c796353,23391c9,9b22717); backup and restore useVACUUM INTO(a5ca7da).
Install and release
install.ps1started with a UTF-8 BOM glued to the shebang, so the documentedirm ... | iexfailed on every Windows machine. It is now BOM-free and ASCII (14962ee).- Linux release binaries were built on Ubuntu 24.04 and required
GLIBC_2.39, so they did not start on Ubuntu 22.04 or Debian 12. They are now built onubuntu-22.04(d8aa218). - The release workflow is draft-first: the release is created as a draft, then a version gate (Cargo = tag =
/healthversion, run in an isolated data directory on its own port) and an install smoke of the draft artifacts on Linux (Ubuntu 22.04), macOS and Windows must pass before it is promoted to Latest. A failed gate leaves the draft and never deletes the tag (73bb6bb). install.sh/install.ps1resolve "latest" from the/releases/latestredirect instead ofapi.github.com(anonymous API rate limits broke the Windows smoke), acceptTYLLUAN_DOWNLOAD_URL/TYLLUAN_VERSION, and send an optionalGITHUB_TOKENonly to GitHub hosts (1365a8f).- Release tarballs now include
guilds/(5993a25); the installer detects Python 3.12+ (c3dee95) and no longer boots the kernel twice (2d382ba). - A fresh install could never keep its kernel running:
tylluan installwrotetransport = ["stdio", "http"], and a kernel started without a terminal (curl | sh, a service, CI) reads end-of-input on stdin and shuts down, HTTP included, a millisecond after reporting "operational". Found by the first end-to-end run of the release smoke on Linux and Windows. The generated config now serveshttpandsseonly (108b082). Configs written by 0.17.0 keep the old line; edittransportintylluan.tomlif your kernel exits right after starting.
Process
AGENTS.mdis covered by the same test-count and docs-reality gates as the README (b43ebfa).
Known issues
- The OAuth metadata advertises
http://localhost:47004URLs, and/.well-known/oauth-protected-resourcereturns the dashboard HTML. Some MCP clients ask for a token even though adev_modekernel does not require one. - The matcher still compares trigger phrases by substring (
matcher.rs:751), with known false positives.
Errata: what the README at this tag got wrong
The README shown on this release page is the one at the v0.17.1 tag. It contained statements that were checked against the code afterwards and corrected on main:
- Federation auto-sync: it said
[silva] sync_interval_msis the key the loop reads and thatauto_sync_*are not read. The loop reads[federation] sync_interval_ms(default 30000 ms,0disables) andauto_sync_mode(push,pullorboth) on every cycle; the[silva]key is a deprecated fallback. - Federation encryption was called Noise XK in one place; federation sync uses Noise NK.
- Guild count: "46 guilds". A default kernel routes 45 (
vision_moondreamis excluded); one of them,sandbox, is experimental. - Embedding model: diagrams named BGE-M3. The built-in default is
mxbai-embed-large. - Raspberry Pi claim ("12,000 memories, three peers, offline"): it came from a Linux simulation, not Pi hardware.
mainnow states measured numbers instead, and says plainly that the build has not been run on ARM. - Discovery diagrams showed WAN discovery through the BitTorrent DHT. No release build includes that feature.
- v1.0.0 requirements listed an external security audit; the roadmap defers it (unfunded).
Open items known at release time are listed in STATUS.md.
v0.17.0
v0.16.0
Full Changelog: v0.15.0...v0.16.0
Full Changelog: v0.15.0...v0.16.0
v0.15.0
v0.14.0
v0.13.0 — Coordinator Cascade + Dashboard Fork
What's new
- M18-P3 TRINITY Coordinator with parallel/sequential dispatch
- M20 Complexity Cascade (proactive >= 0.6, reactive >= 0.4)
- M21 Query Embedding Cache (TTL LRU 256)
- Dashboard fork with teal/emerald branding
- Scheduler guild with SQLite persistence
- 354 tests (291 kernel + 61 link + 2 evals), all green
Breaking changes
None. Drop-in upgrade from v0.12.0.
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Full Changelog: v0.11.0...v0.12.0
Full Changelog: v0.11.0...v0.12.0
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Full Changelog: https://github.com/Forja-orca/tylluan/commits/v0.11.0
v0.10.0
v0.9.0
Full Changelog: v0.8.0...v0.9.0
Full Changelog: v0.8.0...v0.9.0