CANARY
v0.2.1.5.10
Fix generale — dispatch unificato gfxshell + help dinamico ⚠️ ROLLBACK in 5.11
Giu 2026
- Dispatch generico in gfxshell_main.c: fallback su shell_commands[] per tutti i comandi non gestiti esplicitamente
- 77+ comandi precedentemente "sconosciuti" in gfxshell ora funzionano senza modifiche aggiuntive
- Help dinamico generato dalla tabella (100 comandi), con paginazione INVIO/ESC
- Aggiungere un comando a commands.c ora basta per gfxshell — nessuna altra modifica necessaria
- Nessuna nuova feature: versione di consolidamento e fix architetturale
- ⚠️ Annullata in v0.2.1.5.11: molti comandi in tabella usano vga_* diretto, non visibile in framebuffer — serve prima la conversione term_* (Strada A)
help — 100 comandi dinamici

tasks — ora disponibile in gfxshell

ROLLBACK
v0.2.1.5.11
Rollback a base 9b — annulla dispatch generico di 5.10
Giu 2026
- Identica a v0.2.1.5.9b: kernel/gfxshell_main.c riportato al dispatch hardcoded originale
- Motivo: il fallback generico di 5.10 esponeva comandi vga_* non visibili in framebuffer
- tasks torna "Comando sconosciuto", help torna alla lista statica — verificato via screenshot
- RestAPI, NATTour, NATBrowser A+B invariati e funzionanti
- Prossimo passo corretto: Strada A (vga_* → term_*) prima di riconsiderare il dispatch generico
tasks — torna sconosciuto (rollback ok)

help — torna statico

ROLLBACK
v0.2.1.5.11
Rollback a v0.2.1.5.9b — dispatch generico rimosso
Giu 2026
- Rollback puro: nessuna nuova feature, nessun fix
- Il fallback generico v0.2.1.5.10 eseguiva comandi ancora scritti in vga_* — non funzionanti in framebuffer grafico, ma senza dare errore
- gfxshell_main.c ripristinato identico byte-per-byte a v0.2.1.5.9b (verificato via md5)
- Vero prossimo passo: v0.2.1.6 Strada A, conversione sistematica vga_* → term_*
help — hardcoded, come in 9b

CANARY
v0.2.1.6
Strada A — primi 20 comandi vga_* to term_*
Lug 2026
- Prima tappa della conversione sistematica vga_* to term_* (20 comandi: help, clear, echo, ls, cat, cd, pwd, mkdir, touch, write, nano, edit, run, rm, tree, logo, tasks, demo, userdemo, syscalls)
- FIX CRITICO scoperto testando pwd: shell_cwd non era mai inizializzato nel boot grafico (bug preesistente, mai emerso prima)
- Fix verificato quantitativamente: output pwd passa da 24px ("/") a 229px ("/testdir") dopo mkdir+cd
- Scoperto e convertito un helper nascosto (tree_print_rec) non toccato dalla prima passata di conversione
- nano esclusa deliberatamente dalla whitelist: editor.c scrive diretto su memoria VGA 0xB8000, fuori scope
- Whitelist esplicita (18 comandi) nel dispatch gfxshell - non un fallback generico come la v0.2.1.5.10 rollbackata
pwd dopo mkdir+cd — path dinamico reale

help — lista dinamica identica a text mode

CANARY
v0.2.1.6.1
help-classic accanto al nuovo help dinamico
Lug 2026
- help resta il nuovo help dinamico (v0.2.1.6, generato da shell_commands[], paginato)
- help-classic ripristina la vecchia lista statica hardcoded, identica a v0.2.1.5.11
- Stesso principio di bootanim-classic: la versione precedente non si cancella, resta disponibile sotto un nome -classic
- help-classic e' gfxshell-only (non in shell_commands[]): la vecchia lista non e' mai esistita in text mode
help — dinamico, paginato (~22 righe)

help-classic — lista statica fissa (~27 righe)

CANARY
v0.2.1.6.2
Marcatori [GFX] in help + audit versioni stale
Lug 2026
- help dinamico ora marca [GFX] i comandi davvero eseguibili in gfxshell (whitelist Strada A), non piu' tutti uguali
- help-classic ora elencato nell'help dinamico (era invisibile, non essendo in shell_commands[])
- Whitelist spostata a livello di file (gfx_termsafe.h condiviso), niente piu' duplicazione dispatch/help
- Audit in 3 giri (grep specifico, poi per pattern "System ROM", poi regex generica) su tutte le versioni hardcoded stale
- Corretti: boot ROM banner (grafico+testo), servercfg, gfxtxt/gfxhpe (versioni ancora piu' vecchie mai toccate: v0.2.1.1.5/v0.2.1.1.7), DynPower e SeaOfSens dashboard
- Lasciati invariati i banner storici di comandi demo/deprecati (etichetta di quando sono stati scritti, non "versione corrente")
boot ” System ROM Version dinamico

help ” marcatori [GFX] + help-classic in lista

CANARY
v0.2.1.7
Strada A: batch system info + boot screen HPE-fidelity
Lug 2026
- 7 comandi convertiti a term_*: date, uptime, whoami, mem, id, time, diskinfo
- Fix funzionale: la vecchia 'date' in gfxshell diceva "RTC non disponibile" - falso, la vera cmd_date() legge il CMOS RTC per data/ora reali
- history esclusa deliberatamente: gfxshell ha un proprio buffer cronologia separato da text mode, instradarla sulla whitelist mostrerebbe dati sbagliati
- hwinfo (111 vga_*, troppo grande), about, man, motd, elfinfo rimandati a batch dedicato
- Boot screen confrontato con screenshot reale HPE ProLiant DL360 Gen10: aggiunta riga "Advanced Memory Protection Mode", griglia checkbox espansa 9→12 (grafico) e 7→9 (testo) con feature reali (NATBrowser, NATTour, TermSafe)
date ” ora legge il vero CMOS RTC

boot screen ” 12 checkbox, HPE-fidelity

NATALIZIOOS Development Wiki
×![]()