- Nuovo ADR-0007: convenzione in tre parti (indice con gli id delle figure,
catalogo JSON con campi minimi, istruzioni solo-query) e ripartizione dei
compiti tra wiki, motore e app. Nessuna cartella o formato imposti dall'app.
- ADR-0006, README, ROADMAP, PROJECT_STATE, TESTING: esempi resi generici
(nessun riferimento a una wiki specifica) e nota sull'assenza di uno standard.
- Test delle immagini con struttura e testi neutri.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- tests/FakeClaude: eseguibile finto 'claude' configurabile con variabili
d'ambiente (registro di argomenti/cwd/stdin, output, exit code, ritardo),
con le prove FK-01…FK-05.
- Test organizzati per livello (Gui/, Process/, Support/) e struttura
descritta in TESTING.md.
- MarkdownView: la parte sulle immagini passa in MarkdownView.Images.cs
(partial), senza cambiare il comportamento.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il motore scrive i percorsi relativi alla radice del progetto (es. la wiki
cyber-tesi con l'exe in una sottocartella): ora si cercano nella cartella
dell'exe e poi in quelle superiori, vince la più vicina. Il catalogo JSON
delle figure resta del motore; l'app mostra solo le immagini citate.
Test MD-28…MD-30, ADR-0006, README, MVP e AGENT.md aggiornati.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il renderer mostra le immagini  da file locali (ADR-0006):
segnaposto [alt] e decodifica in background, ripiego sul testo per URL,
file mancanti, corrotti o troppo grandi. Nessuna richiesta di rete.
Primo progetto di test (xUnit v3 + Avalonia Headless, MD-14 e MD-19…MD-27).
Il codice passa in src/agent-wiki-ui/, c'è la soluzione agent-wiki-ui.slnx;
aggiornati script di publish, comandi e link nei documenti.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunti i passi per installare Claude Code da zero su Linux ARM64
(Raspberry Pi) e per installare il .NET SDK 10 e creare l'eseguibile
linux-arm64. Il target resta non verificato su hardware reale.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Porta su main il lavoro del branch agent-wiki-ui:
- GUI Avalonia in solo C# per Windows e Linux, al posto di WinForms e WebView2
- Claude Code e Codex con interruttore CLI, aggiornamento dei CLI con
controllo preventivo, modello più piccolo con effort low come predefiniti
- eseguibili single-file per win-x64 e linux-x64 (script bash e PowerShell),
Windows senza finestra di console
- documentazione doc-first: ADR 0001-0005, piano dei test, stato del progetto
(stadio MVP), AGENT.md con puntatori CLAUDE.md e GEMINI.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
CLAUDE.md diventa AGENT.md, pensato per qualsiasi assistente di codice.
CLAUDE.md e GEMINI.md restano come file puntatori che importano AGENT.md con
@AGENT.md, perché Claude Code e Gemini CLI cercano file con il proprio nome.
docs/README.md descrive la regola (nessun contenuto nei puntatori) e i
riferimenti nei doc sono aggiornati.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge docs/PROJECT_STATE.md: stadio MVP, stato per area, criteri di
accettazione con verifica manuale e automatica, debiti noti (soprattutto i
test), tabella degli ADR e proposta di cosa manca per chiudere l'MVP.
Collegato da indice dei doc, README, ROADMAP e CLAUDE.md, che chiede di
aggiornarlo a ogni cambio di stadio, funzione, ADR o debito.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge scripts/publish.ps1, equivalente di publish.sh per Windows
PowerShell (5.1 e 7), provato su Windows nativo con SDK 10. Il README
descrive i tre passi (installare l'SDK, lanciare lo script, trovare i file
in dist/) per entrambi i sistemi, il comando dotnet publish senza script e
cosa è stato verificato. CLAUDE.md cita i due script e chiede di tenerli
allineati.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
OutputType passa a WinExe: nessuna finestra di console al doppio clic. Con
argomenti Core/ConsoleHost.cs chiama AttachConsole sul terminale padre e
collega stdout e stderr a CONOUT$ solo se non sono già reindirizzati; senza
terminale padre non fa nulla. Su Linux il comportamento non cambia.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nuovo ADR-0005: su Windows l'eseguibile è senza console, così il doppio clic
mostra solo la GUI, e la CLI riaggancia il terminale padre. L'alternativa a
due file resta registrata. MVP, README e CLAUDE.md spiegano la conseguenza
sull'exit code (disponibile solo se il chiamante attende il processo, con
start /wait o Start-Process -Wait); TESTING.md aggiunge le righe WIN.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
scripts/publish.sh crea in dist/ gli eseguibili single-file per win-x64 e
linux-x64 (o i rid indicati) e toglie i simboli delle librerie native;
dist/ è ignorata da git. Ogni motore dichiara DefaultModelId (Haiku 5.5 per
Claude Code, GPT-5.6 Luna per Codex) e il ViewModel parte da quel modello con
effort low, all'avvio e a ogni cambio di CLI; "Predefinito" resta scelta
possibile.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
README spiega come creare gli eseguibili Windows e Linux (scripts/publish.sh
o dotnet publish a mano), la dimensione, come usarli e l'avviso sul file non
firmato. MVP, ADR-0002, CLAUDE.md e TESTING.md (riga VM-20) indicano che
all'avvio e a ogni cambio di CLI si parte dal modello più piccolo del motore
con effort low.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sezione Aggiornamenti nel riquadro Impostazioni: per ogni CLI installato
versione, esito del controllo (disponibile, aggiornato, non riuscito) e
pulsante Aggiorna che esegue il comando ufficiale. Il pulsante e un puntino
sul pulsante Impostazioni si evidenziano solo se c'è una versione nuova. Il
controllo legge l'ultima versione dalle sorgenti ufficiali (downloads.claude.ai
e release GitHub di Codex), parte all'avvio e all'apertura del riquadro con
cache di 5 minuti e non fallisce mai in modo invasivo. L'aggiornamento ha
tempo massimo di 10 minuti, blocca invio e cambio CLI, e in caso di errore
suggerisce il comando manuale per npm, Homebrew, WinGet o installazione nativa.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nuovo ADR-0004: dalle Impostazioni l'app controlla se Claude Code e Codex
hanno una versione più recente (sorgenti ufficiali, cache di 5 minuti),
evidenzia il pulsante Aggiorna solo se serve e lo esegue con il comando
ufficiale, mostrando l'esito e il comando manuale adatto al metodo di
installazione. MVP, ROADMAP, INSTALL, README, CLAUDE.md e la matrice di
TESTING.md (righe UP) sono allineati; rimossi riferimenti obsoleti a
WinForms e RunClaude.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Introduce l'astrazione Engine (Claude Code, Codex) con argomenti e parser
propri e EngineRunner come unico punto di avvio, al posto di Claude.cs. Il
JSON delle chat salva motore e id di sessione (i file vecchi restano chat di
Claude Code). Cambiare CLI apre una nuova chat; modelli ed effort seguono il
motore; un motore non installato non è selezionabile. La CLI accetta
--engine <id>. Codex gira in sola lettura e la sessione si legge da
thread.started.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
ADR-0002 passa ad Accettata per Claude Code e Codex con l'esito delle prove
reali: id di sessione da thread.started, output JSONL, risposta = ultimo
agent_message, ripresa senza -s e sola lettura via sandbox_mode, -- prima del
prompt. MVP, ROADMAP, INSTALL e README descrivono l'interruttore CLI, la
nuova opzione --engine e il problema del modello predefinito che richiede un
Codex più recente. TESTING.md aggiunge le righe CX, EN e ST-12.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge docs/INSTALL.md con requisiti, comandi per Linux, WSL e Windows,
accesso, verifica e risoluzione dei problemi di PATH. Insiste sul fatto che
il motore va installato nello stesso ambiente dell'app. Collegata da indice
dei doc, README e ADR-0002.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Modello ed effort lasciano il composer e passano in un riquadro a comparsa
aperto dal pulsante in alto a destra, simmetrico a quello della barra
laterale. Il composer resta con campo di testo e pulsante Invia sulla
stessa riga. Eliminati i suggerimenti della schermata iniziale. MVP.md e la
matrice di TESTING.md sono aggiornati di conseguenza.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge ADR-0003 (xUnit, Avalonia.Headless, coverlet, FakeClaude come
doppio di claude, struttura src/tests) e docs/TESTING.md con la regola, le
soglie di copertura e la matrice requisito-test. Ogni criterio di
accettazione dell'MVP è collegato alle righe della matrice. La roadmap ha
la Fase 6 e CLAUDE.md rende obbligatori i test nello stesso commit.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sostituisce WinForms, WebView2 e ui.html con una GUI Avalonia (XAML,
ViewModel, tema chiaro/scuro) e un renderer markdown che trasforma l'albero
di Markdig in controlli. Un solo progetto net10.0 per Windows e Linux, con
publish single-file compresso. L'avvio di claude è in un solo punto
(Core/Claude.cs) condiviso da CLI e GUI. Il nome dell'app viene
dall'AssemblyName; ChatStore migra la cartella dati LlmRun alla nuova.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
MVP.md descrive ora la GUI Avalonia al posto di WinForms/WebView2 e il
protocollo pagina-C# sparisce. ADR-0001 passa ad Accettata con l'esito delle
verifiche (renderer markdown proprio, perché Markdown.Avalonia è per Avalonia
11). Il nome ha un'unica sorgente in docs/README.md, con la checklist di
rinomina e la migrazione della cartella dati. README e CLAUDE.md seguono la
nuova struttura Core/Gui e i due publish single-file.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Introduce docs/adr con ADR-0001 (GUI in solo C# con Avalonia per Windows e
Linux) e ADR-0002 (Codex e Antigravity oltre a Claude Code), entrambi in
stato Proposta. Aggiunge docs/README.md come indice unico con regole SSOT e
checklist di rinomina, perché il nome del progetto non è ancora deciso.
La roadmap ha la nuova Fase 5 e la Fase 4 ora contiene solo i passi, con le
motivazioni spostate negli ADR.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge la Fase 4 alla roadmap (più motori, selezione dalle Impostazioni)
e un rimando nel fuori scope di MVP.md.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Ogni chat è salvata come JSON in %LOCALAPPDATA%\LlmRun\chats (nome file =
id di sessione di claude). La barra laterale elenca le chat, permette di
riaprirle con --resume e di eliminarle. Il messaggio dell'utente è
salvato subito, prima della risposta, e all'avvio si riapre l'ultima
conversazione. Documentazione e roadmap aggiornate.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Tutta la UI passa in ui.html (WebView2): header, schermata iniziale con
suggerimenti, composer a scheda con selettori modello/effort, messaggi
aggiunti al DOM senza ricaricare la pagina, pulsanti Copia, attesa
animata, tema chiaro/scuro di Windows. Gui.cs diventa un host sottile
che dialoga con la pagina via WebMessage. La finestra ha proporzioni
16:10 calcolate sull'area utile dello schermo. Documentazione aggiornata.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sostituisce la GUI a singola richiesta con una chat in stile claude.ai:
conversazione in markdown (Markdig + WebView2) in alto, input in basso,
contesto mantenuto con --session-id / --resume. La GUI ora gira su un
thread STA, necessario a WebView2. Documentazione aggiornata.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>