Skip to content

Releases: Forja-orca/tylluan

v0.17.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 21:18

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_path now 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/bash is refused unless dev_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_host is 127.0.0.1, not 0.0.0.0 (68c5971); the dispatch state distinguishes a failed spawn from a success (8e91470).

Reliability

  • Starting any tylluan-nexus invocation (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).
  • stop resolves 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 coloquio and comfy_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 the required_args gate (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 inside ort (release builds use panic = "abort", so no catch_unwind can help). onnx_runtime_ort_compatible() now mirrors every check ort makes (symbol, version, GetApi) and returns false instead of panicking; every entry into ort (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 new ort entry 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 portable install profile now writes [silva] reranker_enabled = false, matching its "boots offline with no external dependencies" promise (ce2cf4d).
  • CapabilityRegistry::prune_expired no 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_traces now has a production writer and a prune (afc9533); hybrid memory is fully retired (c796353, 23391c9, 9b22717); backup and restore use VACUUM INTO (a5ca7da).

Install and release

  • install.ps1 started with a UTF-8 BOM glued to the shebang, so the documented irm ... | iex failed 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 on ubuntu-22.04 (d8aa218).
  • The release workflow is draft-first: the release is created as a draft, then a version gate (Cargo = tag = /health version, 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.ps1 resolve "latest" from the /releases/latest redirect instead of api.github.com (anonymous API rate limits broke the Windows smoke), accept TYLLUAN_DOWNLOAD_URL / TYLLUAN_VERSION, and send an optional GITHUB_TOKEN only 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 install wrote transport = ["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 serves http and sse only (108b082). Configs written by 0.17.0 keep the old line; edit transport in tylluan.toml if your kernel exits right after starting.

Process

  • AGENTS.md is covered by the same test-count and docs-reality gates as the README (b43ebfa).

Known issues

  • The OAuth metadata advertises http://localhost:47004 URLs, and /.well-known/oauth-protected-resource returns the dashboard HTML. Some MCP clients ask for a token even though a dev_mode kernel 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_ms is the key the loop reads and that auto_sync_* are not read. The loop reads [federation] sync_interval_ms (default 30000 ms, 0 disables) and auto_sync_mode (push, pull or both) 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_moondream is 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. main now 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

Choose a tag to compare

@github-actions github-actions released this 23 Aug 22:26

Full Changelog: v0.16.0...v0.17.0

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 20:06

Full Changelog: v0.15.0...v0.16.0

Full Changelog: v0.15.0...v0.16.0

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:49

Full Changelog: v0.14.0...v0.15.0

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 00:01

Full Changelog: v0.13.0...v0.14.0

v0.13.0 — Coordinator Cascade + Dashboard Fork

Choose a tag to compare

@Forja-orca Forja-orca released this 09 Jul 16:06

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

Choose a tag to compare

@github-actions github-actions released this 05 Jul 00:48

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

Choose a tag to compare

@github-actions github-actions released this 02 Jul 21:08

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 21:42

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 18:32

Full Changelog: v0.8.0...v0.9.0

Full Changelog: v0.8.0...v0.9.0