Skip to content

Releases

Triad 2.0 - v0.8.0-beta.10

Choose a tag to compare

@github-actions github-actions released this 08 Nov 14:49

Triad 2.0 — v0.8.0-beta.10 (2026-11-08)

Highlights

  • First native S1 logic profile, implemented in Triad-Core: facts, rules,
    occurs-check unification, iterative backtracking, recursive predicates,
    negation, lists, solutions and comprehensions. Run triad --logic FILE.
  • Logic trace records, typed structs and Boolean goal functions; compact
    paged source transport supports up to 65535 input bytes.
  • The POSIX desktop selects Core or Logic automatically from source code,
    ignoring comments and strings. :core / :logic force a profile;
    :auto restores automatic selection.
  • Fixed ternary symbols, indexed assignment looping forever, obsolete seed
    hashes/probe expectations, and truncated output from the JS reference.
  • Cross-platform standalone CLI packaging no longer depends on Unix-only npm launchers.
  • Core conformance now requires every case without tolerated failures.
  • Removed abandoned development scripts and inactive guard code. TASK.md
    records removals, additions and recovery commands.

Downloads and use

The source archive contains the full runtime, S1 modules, launchers, tests and
installation scripts. On Linux, extract it and run ./install.sh, then use
triad FILE, triad --logic FILE, or the desktop session.

seed-linux-x86_64 and seed.exe are the standalone Core seeds. They do
not contain S1; logic programs need the source distribution and POSIX launcher.
triad-cli / triad-cli.exe are standalone development CLIs (seed/ai/ext),
not the POSIX runtime CLI. TriadDesktop.exe is the Windows desktop build;
the automatic S1 profile selection is currently provided by the POSIX desktop.
SHA256SUMS covers the attached binary and source assets.

Validation

Core 42/42, probes 39/39, logic 25/25 on native seed and development reference;
launcher/profile detection, pipe output, desktop, security and deterministic
seed rebuild checks. Release builds regenerate development CLIs on Linux and
Windows and compile the Windows desktop application.

Known limits

This is a prerelease, not complete Triad-Full conformance. S1 still lacks a
general evaluator for arbitrary function bodies, dispatch, escaped/Unicode
strings, full diagnostic payloads and expression-valued query options. Heap,
vector and arity limits remain; the complete profile is documented in
selfhost/logic/README.md. The desktop is a file runner, not the Full REPL.

Triad 2.0 - v0.8.0-beta.9

Choose a tag to compare

@GPuntobit GPuntobit released this 07 Nov 16:38
f30a0a2

Triad 2.0 — v0.8.0-beta.9 (2026-11-07)

Native Linux seed, Node-free toolchain, desktop launcher.
Full change list in CHANGELOG.md. Highlights below.

What's changed

Added

  • Native Linux seed — seed-linux-x86_64: a static ELF interpreter (no libc, no Wine)
    of the whole Triad-Core language, with byte-exact parity against the Windows PE
    (conformance 39/39 — 38/39 with the known liste gap — probes 39/39, S1 golden identical).
  • Node-free toolchain — install.sh (pure-sh hex decoder, anti-drift check of the
    decoded binary, byte-exact smoke test that fails the install on mismatch), bin/triad
    (always execs the seed) and the POSIX CLI bin/triad-cli (run / test / status).
  • Node-free verification harness — conformance/run.sh, tests/probes/run_probes.sh,
    verify.sh (single entry point) and seed/linux-x86_64/check_seed.sh.
  • Desktop launcher — bin/triad-desktop: a POSIX session that keeps output and failures
    visible until :quit or EOF; install.sh --desktop also registers the .triad / .td
    MIME types, so a double-click opens the file in Triad.
  • S1 front end — selfhost/source.td: a new scanner + root-scan + recursive-descent
    algorithm derived from the machine-code seed; prints the AST in pre-order (byte-identical
    on the PE seed and on the JS reference interpreter).
  • Site generated by Triad — tools/site-gen/: the pages of docs/ are emitted by Triad
    programs, verified byte-for-byte against the JS reference interpreter.
  • Book: Fondamenta — docs/FONDAMENTA.it.md (programming from zero) plus ~900 exercises
    added to the concluded chapters; PDF at 424 pages, KDP-compliant geometry.
  • Repository governance — GLOSSARY.md, ADR 0001 (immutability of the PE dump) and
    0002 (parity verification without re-running the PE), local issue tracker in .scratch/.

Changed

  • CI on native Linux only (decision 04): the Windows legs were removed; the PE side is
    still guaranteed by the seed.hex hash gate and the frozen goldens (ADR 0002).
  • CI restored — ci.yml contained an unquoted scalar with ": ", so GitHub could not
    start any job (it only reported "this run likely failed because of a workflow file issue").
    Fixed, plus a new regression test (tests/security/workflows_yaml.test.py) asserting that
    every workflow file is valid YAML.
  • Conformance gate with explicit known gaps — conformance/gate.sh runs the oracle
    conformance/run.sh and tolerates only the already documented failures (liste, gap
    N03), always printing them; any other failure fails the gate. verify.sh and
    triad-cli test conformance use the gate; the pure oracle is still reachable with
    triad-cli test conformance --strict.
  • Probe and S1 goldens versioned — tests/probes/*.expected.out and
    selfhost/*.expected.out were excluded by git, so a clean checkout failed 23 of the 39
    probes with "golden mancante". They are now versioned, like the conformance/ goldens.

Fixed

  • Seed: the broken xs[i] codegen is gone — the November attempt read the list type
    field into the register holding the list pointer (mov rdx, [rdx]): reading failed with a
    parse error and writing (xs[i] = v) ended in a SIGSEGV. The codegen is back to the
    documented state (gap N03 stays open: 1-based xs[i] is not implemented in the seed) and
    the PE/ELF dumps match the CI hash gates again (PE 4235a707…, ELF 0e121db8…). The
    committed PE binary is unchanged (631f401f…).
  • Seed generator — single entry point gen_seed.js <windows|linux|all>: shared codegen
    core + backend_pe / backend_elf; the os_* boundary isolates the system calls.
    The regenerated PE dump stays byte-identical.
  • JS reference interpreter — seed/dev/triad_core.cjs realigned with the seed
    (get(xs, i) 0-based, raw newlines inside string literals, ternary with attached :).

Security

  • Credential-storage hardening — the live GitHub PAT that was sitting in the working tree
    is gone and the token is no longer embedded in the origin URL; the push tooling uses a
    throwaway credential.helper fed from the environment. New regression test
    tests/security/no_live_tokens.test.py.

Known issues

  • The liste conformance case still fails on the seed (38/39 green): the historical gap
    is recorded by the harness (exit 1, empty stdout) and the gate conformance/gate.sh
    excludes it explicitly and loudly. Probes are 39/39. No golden was rewritten to hide
    the gap.
  • The Windows GUI launcher (TriadDesktop.exe) is not shipped in this release: it still
    targets the pre-beta.9 Node CLI (status / test), which the POSIX bin/triad-cli has
    replaced. It must be ported and rebuilt on Windows (cli/windows-gui/build.ps1).

Downloads

Asset Platform Size SHA-256
seed.exe Windows x86-64 runtime (PE) 25 KB 631f401ffe42f5f748bb92ab80c2886a7d68f9e00b09bd8dfde2de0c671fe219
seed-linux-x86_64 Linux x86-64 runtime (static ELF, no libc) 8.3 KB c8c82bc9c77c69e603e07ab7287065076e04c8139a57ae3ee454a472cee2a0ce
triad-cli Linux x86-64 standalone dev CLI (Node SEA) 119 MB 337c5188ee5cfef7d50256f5b03ab510b47dedf15aac6aa14256e1bf2ebe9cb2
triad-cli.exe Windows x86-64 standalone dev CLI (Node SEA) 83 MB d7ab6e05a538a7f1ffd571014c91c7f5029e6b21855e9db0843e15acabb06d5e

Zero-install path: clone the repository and run ./install.sh — no Node.js, no runtime
and no Wine required; on Linux the seed runs natively.

Full Changelog: v0.8.0-beta.8...v0.8.0-beta.9

Triad 2.0 - v0.8.0-beta.8

Choose a tag to compare

@GPuntobit GPuntobit released this 31 Oct 13:58

Triad 2.0 — v0.8.0-beta.8 (2026-10-31)

Merge resolution, security fixes, website restoration & repository cleanup.
Full change list in CHANGELOG.md. Highlights below.

What's changed

Fixed

  • Resolved merge conflicts between main and termux-with-triad-7086e (prefer termux changes).
  • Fixed build-libro.mjs crash: replaced DOMParser (unavailable in Node.js) with
    a Node-safe stripTags + escapeHtml to satisfy CodeQL incomplete-sanitization.
  • Fixed Bandit B603 in download_chart.py: static command list with executable=git_bin.
  • Restored website assets removed by main: docs/assets/css/style.css and
    docs/assets/js/learning-curve.js (CSS/JS for the homepage).
  • Removed duplicated code in detect-project.sh (global-bucket and sha256 hash snippets
    extracted into helper functions).

Security

  • CodeQL js/incomplete-multi-character-sanitization alert fixed (char-by-char tag
    stripping + HTML escaping in TOC).
  • Disabled conflicting CodeQL default setup; advanced workflow now runs cleanly.

Repository

  • Cleaned working tree; all tests pass (conformance 37/37, security PASS).

Downloads

Asset Platform SHA-256
triad-seed-windows-x86_64.zip (10 KB) Windows x86-64 runtime 930c8011ce306f3bc4a904fe696e3d3a9d8889512a9a1a74ab5f19912f49cd03
triad-seed-linux-x86_64.tar.gz (454 B) Linux x86-64 runtime (ELF E0) 9f58b55bd19fec5823cd1b8ae08ccd77c750e3dc0aa56d8886d9d0c322b3fd09
triad-source.zip (500 KB) Any OS + Node.js ≥ 20 f331d4bf43eca3f19e91f2edae7e326b2ed68ba5f53768de13a17d4e381c86a4
triad-source.tar.gz (423 KB) Any OS + Node.js ≥ 20 19e02ad53778a431c7a9665c9081c89770c1e4962cb00f3a4c86cecb896b83c9

Full Changelog: v0.8.0-beta.7...v0.8.0-beta.8

Triad 2.0 - Beta 7 (v0.8.0-beta.7)

Choose a tag to compare

@GPuntobit GPuntobit released this 31 Oct 00:25

Triad 2.0 – Beta 7 (v0.8.0-beta.7)

What's Changed

  • scripts/ split by purpose: build helpers in scripts/docs/
    (build-libro.mjs, build-epub.cjs, build-docx.cjs,
    frontespizio.mjs, download_chart.py), Windows seed wrappers in
    scripts/seed-runner/, one-off dev experiments in scripts/experiments/.
    Internal paths of the build scripts and the download-chart.yml workflow
    updated accordingly.
  • Tutorial translations consolidated in tutorial/ (moved
    docs/TUTORIAL-RU.md → tutorial/TUTORIAL.ru.md, alongside the existing
    TUTORIAL.md, TUTORIAL.it.md, TUTORIAL.zh.md); links in README, manual,
    site pages and build scripts updated.
  • README.md: "Project Structure" section updated to the new layout.
  • scripts/download_chart.py: repaired indentation/typos and use asset download
    counts; default repo fixed.
  • scripts/build-epub.cjs, scripts/build-libro.mjs: repaired continue typo
    and variable mismatches.

Full Changelog: v0.8.0-beta.6...v0.8.0-beta.7

Triad 2.0 – Beta 6 (v0.8.0-beta.6)

Choose a tag to compare

@GPuntobit GPuntobit released this 30 Oct 03:20

Repository structure reorganization and tooling fixes. See CHANGELOG.md.

Triad 2.0 – Beta 5 (v0.8.0-beta.5)

Choose a tag to compare

@GPuntobit GPuntobit released this 28 Oct 22:22

Prerelease Triad 2.0 – Beta 5 (v0.8.0-beta.5)
Contenuto della release (tutto dalla beta.4 a oggi):
✅ Fix dei 6 warning Codacy in scripts/anteprima-battitura.mjs (node:process import, scanner tokenico O(n) al posto della regex vulnerabile, escapizzazione completa di highlight()) + commit di .codacy/codacy.config.json con i pattern non applicabili disabilitati
📝 Note corrette: il playground era già nella beta.3; la beta.4 copriva Linux e CI/linting
⚠️ Nota operativa: se il workflow CodeQL è ancora in errore, rimuovere C# dalle impostazioni Security di GitHub
Eseguito: commit 79d8c1e + tag v0.8.0-beta.5 → push branch+tag → gh release create ... --prerelease → verificato via API (draft:false, prerelease:true).

Triad 2.0 - Beta 4 (v0.8.0-beta.4)

Choose a tag to compare

@GPuntobit GPuntobit released this 28 Oct 14:13
d198a53

Downloads

  • triad-cli.exe — CLI standalone per Windows x86-64; include Node.js 24.22.0.
  • triad-cli — CLI standalone per Linux x86-64; include Node.js 24.22.0.
  • seed-windows-x86_64.exe — seed Triad Windows x86-64.
  • seed-linux-x86_64 — seed Linux x86-64 E0 (stampa Triad seed Linux OK; non è ancora un interprete completo).
  • SHA256SUMS.txt — hash SHA-256 per verificare l'integrità dei quattro file.

La CLI non richiede npm install; i comandi che avviano test e generatori richiedono comunque Node.js nel PATH.

Highlights

  • Harden the documentation viewer against HTML/script injection by sanitizing rendered Markdown and generated header/footer fragments with DOMPurify before inserting them into the page.
  • Load the pinned DOMPurify sanitizer before Marked across documentation pages; render errors as text and replace the inline menu handler with a DOM event listener.
  • Use explicit browser globals via globalThis, resolving the reported ESLint undefined/redeclaration warnings.
  • Update esbuild in the CLI and restrict GitHub Actions workflow token permissions.

Security hardening carried forward

  • Documentation examples require explicit opt-in to execute; interpreter/Git paths and repository-relative file access are validated. These book-validation protections shipped in Beta 3 and remain included.

Validation

  • Pull request #23 checks passed, including CI, CodeQL, Codacy, and conformance.
  • Main CI, CodeQL, and both GitHub Pages deployment workflows passed on the release commit.

Triad 2.0 – Beta 3 (v0.8.0-beta.3)

Choose a tag to compare

@GPuntobit GPuntobit released this 28 Oct 13:32
38aa28b

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.2...v0.8.0-beta.3

Triad 2.0 – Beta 2 (v1.0.0-beta.2)

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 26 Oct 13:54
3a4e23d

Logo di Triad

🚀 Triad 2.0 – Beta 2 (v1.0.0-beta.2)

Linguaggio: standard 0.2.0 (VERSION). CLI di sviluppo triad-cli 1.0.0. Runtime: seed in codice macchina, nessuna dipendenza da Julia.


📌 Novità rispetto a BETA

Area Descrizione
Julia rimossa triad.jl, syntax.jl, test/ e bin/build_standalone.jl sono stati eliminati. Il runtime è il seed (seed/windows-x86_64/seed.exe); CI e strumenti usano solo Node.js e il seed.
Conformance Core 37 casi, tutti verdi. Nuovo caso gcd (Euclide, ricorsione, %).
Golden versionati expected.out / expected.code sono ora nel repository (eccezioni in .gitignore); expected.golden fa da copia di riserva.
Runner node conformance/run.mjs (default: conformance/core/cases). Se manca il golden, il caso fallisce con golden mancante invece del falso FAIL … attesi 0. Su Linux/macOS usa l'interprete di riferimento seed/dev/triad_core.cjs.
CI conformance-core (Ubuntu), seed-windows (33 casi Core sul seed PE, probe get, smoke test selfhost/main.td, hash di seed.hex), seed-linux (ELF E0 + hash).
Documentazione README, TUTORIAL, STATUS, CHANGELOG, conformance/ e seed/dev/ allineati allo stato reale.

📥 Eseguibili triad-cli (allegati)

File Piattaforma
triad-cli-v1.0.0-beta.2-windows-x64.zip Windows x64: contiene triad-cli.exe
triad-cli-v1.0.0-beta.2-linux-x64.tar.gz Linux x64: contiene triad-cli
SHA256SUMS.txt checksum degli archivi

Eseguibili standalone (Node.js 24 incluso, non serve npm install). Copiali nella root del
repository o in bin/ (oppure imposta TRIAD_HOME): trovano il progetto da soli. ai verify e
status funzionano senza Node installato; test e seed generate richiedono node nel PATH.
Su Windows l'exe non è firmato (SmartScreen può chiedere conferma). In alternativa usa i
launcher bin\triad-cli.cmd / bin/triad-cli (richiedono Node.js ≥ 18).

🧰 triad-cli (strumenti di sviluppo)

Comando Cosa fa
status Mostra Node.js, piattaforma, percorso del seed trovato e root del progetto.
seed generate windows|linux [-o <path>] Rigenera seed.hex (default seed/<piattaforma>-x86_64/seed.hex) e stampa lo SHA-256.
ai verify [-t <dir>] [-v] Esegue le solution.triad di ai/tasks/ e le confronta con i golden.
test conformance [-c <dir>] [-u] Esegue la conformance (default Core, --skip liste).
test run [-v] Alias della conformance Core (i vecchi test Julia non esistono più).
build standalone Non disponibile: stampa un messaggio e non produce nulla.

Dipendenze: chalk@^5.3.0, commander@^12.0.0, execa@^8.0.1. Node.js ≥ 18 (CI: Node 20).

Hash seed.hex attesi (riprodotti da triad-cli seed generate):

  • Windows: 3A75A21E2F47D8DC4C88D4BC2580A85D5349BCDF7550E5FFA16E2C0AC7CA8C11
  • Linux: AD4C9F08176D9964D5BE17D44C72230184434025980447395E7A3250F63CA5EA

⚠️ Limiti noti

Problema Workaround
Il seed esegue solo file: --help, -E, -e, -l, -i, --tree e il REPL (SPEC §14) non sono implementati (escono con codice 0 senza output). Scrivere il codice in un file ed eseguirlo: bin\triad.cmd file.triad.
Il seed Linux è ancora E0 (stampa solo Triad seed Linux OK). Di conseguenza su Linux triad-cli ai verify fallisce tutti i task. Su Linux: node seed/dev/triad_core.cjs file.triad (le 5 soluzioni di ai/tasks/ passano con questo interprete).
Profilo Triad-Full (conformance/cases, 12 casi): passa solo errore; anche gli esempi in examples/ usano Triad-Full e non girano ancora sul seed. Usare il sottoinsieme Triad-Core (SPEC-CORE.md).
bin/triad-native / build standalone non disponibili. Arriveranno con il compilatore nativo (S2–S3, BOOTSTRAP.md).
triad-cli non è pubblicato su npm (npx triad-cli → E404). Usare triad-cli.exe allegato o bin\triad-cli.cmd (aggiungi bin al PATH per usarlo da ovunque).
Un caso fallisce con golden mancante. Il checkout non ha expected.out: git pull.

📦 Come provare la beta

git clone https://github.com/GPuntobit/triad2.0.git
cd triad2.0
cd cli; npm install; cd ..

node .\cli\triad-cli.mjs status                       # info ambiente
node .\cli\triad-cli.mjs test conformance             # conformance Core (37 casi)
node .\cli\triad-cli.mjs ai verify -v                 # verifica soluzioni AI
node .\cli\triad-cli.mjs seed generate windows -o seed_windows.hex

bin\triad.cmd conformance\core\cases\ricorsione\program.td   # esegue un programma con il seed

Linux/macOS:

node conformance/run.mjs                              # conformance Core
node seed/dev/triad_core.cjs conformance/core/cases/ricorsione/program.td   # interprete di riferimento

📬 Feedback

Segnalazioni, suggerimenti e bug report sono benvenuti: apri un issue nel repository.

Full Changelog: BETA...v1.0.0-beta.2

Triad 2.0 – Beta Release (v 1.0.0‑beta)

Choose a tag to compare

@GPuntobit GPuntobit released this 26 Oct 01:51

🚀 Triad 2.0 – Beta Release (v 1.0.0‑beta)


📌 Novità principali

Area Descrizione
CLI Nuova interfaccia a riga di comando triad-cli (wrapper PowerShell + Node.js). Comandi disponibili: status, seed generate, ai verify, build standalone, test run, test conformance.
Seed generator Supporto per la generazione di seed binari per Windows e Linux (triad-cli seed generate windows -o <path> e linux).
AI Verify Modalità di verifica delle soluzioni generate dall’IA contro i “golden test”. Opzioni -t <dir> e -v (verbose).
Build standalone Possibilità di costruire un eseguibile standalone Triad per la piattaforma corrente.
Test & Conformance Esecuzione della suite di test unitari (triad-cli test run) e della conformità (triad-cli test conformance).
Status command Mostra informazioni sull’ambiente (Node.js, piattaforma, percorso Julia, root del progetto).
Dipendenze aggiornate chalk@5.3.0, commander@12.0.0, execa@8.0.1.
Node richiesto ≥ 18.0.0.

🛠️ Bugfix & miglioramenti

  • Risolto crash quando triad-cli veniva chiamato senza argomenti da percorsi non‑standard.
  • Migliorato il parsing degli argomenti seed generate (ora accetta anche -o senza valore e restituisce un messaggio d’errore chiaro).
  • Corretto il percorso di Julia nella segnalazione status su Windows quando Julia non è nel PATH di sistema.
  • Aggiornate le dipendenze package.json per evitare conflitti di versione con node_modules.

⚠️ Note note (conosciuti problemi)

Problema Workaround
triad-cli non riconosciuto da PowerShell fuori dalla cartella triad2.0 Usare il wrapper triad-cli.ps1 (installato in C:\Users\<tuo‑user>\Documents\PowerShell\) o lanciare direttamente node .\cli\triad-cli.mjs.
npx triad-cli restituisce E404 Non pubblicare il pacchetto su npm; usare i metodi sopra oppure npx node .\cli\triad-cli.mjs.
Generazione seed su Linux non testata Il codice è stato scritto per Windows; i flag -o e la logica di output sono uguali, ma non è stato eseguito un test completo su Linux.
Verbose mode ai verify può essere lento su grandi directory Limitare la directory con l’opzione -c <path> o ridurre il numero di file di test.

📦 Come provare la beta

# 1️⃣ Da PowerShell (qualunque cartella) dopo l'installazione del wrapper:
triad-cli                           # mostra help
triad-cli status                    # info ambiente
triad-cli seed generate windows -o seed_windows.hex   # genera seed Windows
triad-cli ai verify -t tasks/      # verifica AI
triad-cli test run                  # esegue i test unitari
triad-cli build standalone          # build eseguibile standalone

Se vuoi provarlo subito dalla root del progetto:

node .\cli\triad-cli.mjs

📬 Feedback

Apprezziamo qualsiasi segnalazione, suggerimento o bug report. Puoi aprire un issue nel repository o rispondere direttamente a questo thread. Grazie per aver partecipato alla beta di Triad 2.0!

Full Changelog: https://github.com/GPuntobit/triad2.0/commits/BETA