Repository navigation
Releases
Triad 2.0 - v0.8.0-beta.10
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. Runtriad --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/:logicforce a profile;
:autorestores 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
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 knownlistegap — probes 39/39, S1 golden identical). - Node-free toolchain —
install.sh(pure-shhex 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 CLIbin/triad-cli(run/test/status). - Node-free verification harness —
conformance/run.sh,tests/probes/run_probes.sh,
verify.sh(single entry point) andseed/linux-x86_64/check_seed.sh. - Desktop launcher —
bin/triad-desktop: a POSIX session that keeps output and failures
visible until:quitor EOF;install.sh --desktopalso 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 ofdocs/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, ADR0001(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 theseed.hexhash gate and the frozen goldens (ADR 0002). - CI restored —
ci.ymlcontained 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.shruns the oracle
conformance/run.shand tolerates only the already documented failures (liste, gap
N03), always printing them; any other failure fails the gate.verify.shand
triad-cli test conformanceuse the gate; the pure oracle is still reachable with
triad-cli test conformance --strict. - Probe and S1 goldens versioned —
tests/probes/*.expected.outand
selfhost/*.expected.outwere excluded by git, so a clean checkout failed 23 of the 39
probes with "golden mancante". They are now versioned, like theconformance/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-basedxs[i]is not implemented in the seed) and
the PE/ELF dumps match the CI hash gates again (PE4235a707…, ELF0e121db8…). 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; theos_*boundary isolates the system calls.
The regenerated PE dump stays byte-identical. - JS reference interpreter —
seed/dev/triad_core.cjsrealigned 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 theoriginURL; the push tooling uses a
throwawaycredential.helperfed from the environment. New regression test
tests/security/no_live_tokens.test.py.
Known issues
- The
listeconformance case still fails on the seed (38/39 green): the historical gap
is recorded by the harness (exit 1, empty stdout) and the gateconformance/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 POSIXbin/triad-clihas
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
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
mainandtermux-with-triad-7086e(prefer termux changes). - Fixed
build-libro.mjscrash: replacedDOMParser(unavailable in Node.js) with
a Node-safestripTags+escapeHtmlto satisfy CodeQL incomplete-sanitization. - Fixed Bandit B603 in
download_chart.py: static command list withexecutable=git_bin. - Restored website assets removed by main:
docs/assets/css/style.cssand
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-sanitizationalert 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)
Triad 2.0 – Beta 7 (v0.8.0-beta.7)
What's Changed
scripts/split by purpose: build helpers inscripts/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 inscripts/experiments/.
Internal paths of the build scripts and thedownload-chart.ymlworkflow
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: repairedcontinuetypo
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)
Repository structure reorganization and tooling fixes. See CHANGELOG.md.
Triad 2.0 – Beta 5 (v0.8.0-beta.5)
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
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)
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 (stampaTriad 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
esbuildin 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)
What's Changed
- docs: align TUTORIAL.md with seed runtime, triad-cli and Julia removal by @devin-ai-integration[bot]
- docs: add project logo to README by @devin-ai-integration[bot]
- docs: turn TUTORIAL.md into a comprehensive wiki (Core, Full, project code) by @devin-ai-integration[bot]
- docs(site): curva e soglia di apprendimento (TUTORIAL.md + MANUALE.md) by @devin-ai-integration[bot]
- docs(readme): video demo della pagina curva di apprendimento by @devin-ai-integration[bot]
- chore(gitignore): ignora script locali, output di graphify, venv e catture di output by @devin-ai-integration[bot]
- docs: anteprima animata di battitura di un programma Triad-Core (README + home) by @devin-ai-integration[bot]
- fix(site): evidenzia la pagina corrente nel menu in alto by @devin-ai-integration[bot]
- Devin/1793127524 frontespizio libro by @GPuntobit
- Devin/1793127524 frontespizio libro by @GPuntobit
- Devin/1793127524 frontespizio libro by @GPuntobit
- Devin/1793127524 frontespizio libro by @GPuntobit
- Devin/1793127524 frontespizio libro by @GPuntobit
- Devin/1793127524 frontespizio libro by @GPuntobit
New Contributors
- @GPuntobit made their first contribution
Full Changelog: v1.0.0-beta.2...v0.8.0-beta.3
Triad 2.0 – Beta 2 (v1.0.0-beta.2)
🚀 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 seedLinux/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)
🚀 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-cliveniva chiamato senza argomenti da percorsi non‑standard. - Migliorato il parsing degli argomenti
seed generate(ora accetta anche-osenza valore e restituisce un messaggio d’errore chiaro). - Corretto il percorso di Julia nella segnalazione
statussu Windows quando Julia non è nel PATH di sistema. - Aggiornate le dipendenze
package.jsonper evitare conflitti di versione connode_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 standaloneSe 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
