Repository navigation
v1.6.0
v1.6.0
-
Cronometro live su ogni strumento in esecuzione: accanto al nome del tool il tempo trascorso scorre a decimi di secondo (
0.1s,12.8s, e oltre il minuto1m 14s) e al termine si ferma sulla durata reale della chiamata, in tinta più attenuata. Durante un comando lungo — build, test, installazione di dipendenze — si vede a colpo d'occhio che il lavoro procede, anche con il gruppo di strumenti chiuso, dove il cronometro compare ora accanto al testo di stato. Le cifre sono a larghezza fissa e la colonna del tempo è riservata: nulla si sposta mentre i numeri cambiano. Un solo orologio serve tutte le chiamate della sessione e si spegne quando nessuno strumento è in esecuzione. -
Strumento di audit e ispezione qualitativa delle icone: nuovo script di verifica
npm run check:icons(scripts/check-icons.mjs) per censire tutte le icone del registro$lib/icons, garantire la risoluzione corretta in Lucide, prevenire import diretti non autorizzati e rilevare SVG inline grezzi nei componenti; nuova modale interattiva di ispezione accessibile da «Impostazioni → Aspetto» con anteprima multi-scala (14px, 16px, 20px, 24px), verifica contrasto, copia rapida dell'import e tracciamento dello stato di migrazione. -
Avvio fluido dei task dalla coda: al click su Avvia la riga collassa immediatamente dalla lista della coda e il prompt compare subito come primo messaggio della chat con animazione fluida (sfocatura progressiva, dissolvenza ed espansione d'altezza via
chatReveal), nascondendo i tempi tecnici di spawn del processoomp, handshake RPC e inizializzazione della sessione; se l'avvio richiede più di 400ms compare sotto la bolla l'indicatore discreto «Avvio della nuova sessione...» con effetto shimmer, e in caso di errore o chiusura anomala il prompt si ritira simmetricamente mentre il task rientra in cima alla coda con un lampo visivo. -
Scorciatoia da tastiera Ctrl+Tab (e Ctrl+Shift+Tab) per passare rapidamente al progetto aperto successivo o precedente, con navigazione ciclica coerente con l'ordine della barra progetti e supporto universale sia da chat che da terminale integrato.
-
Visualizzazione unificata delle attività per fasi TODO e subagenti: l'avanzamento dei lavori e i processi in background sono presentati in righe compatte con indicatori di stato chiari e coerenti (completato in verde con spunta, errore in rosso con croce, bloccato in ambra con avviso, abbandonato o interrotto in grigio), anello di caricamento per le attività in corso e dettagli tecnici espandibili su richiesta con un click, senza aperture automatiche invadenti e nel pieno rispetto delle impostazioni di movimento ridotto.
-
Quando nomini un testo dell'interfaccia — «label Dati dell'immobile da ridurre di dimensione», «riduci il testo Totale contributo», il badge citato fra virgolette o backtick — Studio cerca da solo quel testo nel progetto prima di inviare il messaggio e allega all'agente il file e la riga esatti, con due righe di contesto. L'agente parte già dal punto giusto: una lettura mirata, una modifica, una verifica, senza aprire file a caso. La ricerca è locale e a tempo (si ferma entro un quarto di secondo), usa
git grepdove disponibile, salta cartelle comebin,obj,node_modulese.git, ignora i file binari e non esce mai dalla cartella del progetto; se non trova nulla o non riesce, il messaggio parte identico a prima. Insieme al testo viene allegato anche l'elenco compatto dei file modificati nel progetto (solo nomi e stato, nessun diff e nessun contenuto), assente quando non c'è nulla di modificato. -
Interfaccia bilingue italiano/inglese con selettore in «Impostazioni → Generale»: la lingua segue di default quella del sistema operativo e può essere fissata a mano su Italiano o Inglese. Il cambio è immediato e non ricarica la finestra, quindi sessioni dell'agente, terminali e anteprime live restano attivi mentre i testi si riscrivono. Date, orari, numeri e importi seguono la regione dell'utente, e la documentazione utente (README, scorciatoie, changelog) è disponibile nelle due lingue.
-
Rilevamento automatico dell'attesa di input e risposte rapide post-turno via Companion e notifiche OS: estesa l'analisi del turno con modello leggero
smolper riconoscere quando l'agente termina formulando domande, conferme di piani o richieste di decisione senza invocare formalmente il toolask; il progetto passa immediatamente allo stato di attenzione «Chiede risposta», evidenziandosi nella barra progetti e facendo comparire in cima al Companion la card interattiva con la domanda estratta e le opzioni cliccabili, inoltrate direttamente come nuovo prompt alla chat; se l'app è in background, scatta immediatamente la notifica desktop OS con il testo della domanda per consentire all'utente di rispondere entro i 5 minuti preservando la cache hit di Anthropic. -
Modale di sicurezza alla chiusura di un progetto con protezione dei task in esecuzione e in coda: intercetta la chiusura del singolo progetto e avvisa se sono presenti task in coda o un'elaborazione attiva, lasciando scegliere se conservare o eliminare la coda; chiudendo con un task in avvio (dispatching) il task viene riportato in cima a .omp/tasks.json, intatto alla riapertura. La chiusura dell'applicazione invece non fa domande: le code restano nei rispettivi progetti, i task in dispatching tornano in cima alla propria coda e la finestra si chiude subito.
-
Laboratorio prototipi frontend React 19 + Tailwind v4: nuovo spazio GUI dedicato nella colonna centrale di Studio per ideare, confrontare 3-5 varianti di componenti e iterare flussi multischermata con dati simulati in modo isolato e sicuro, operando in concorrenza simultanea con l'agente principale nello stesso progetto.
-
Anteprima interattiva con selezione elementi e annotazioni legate alla revisione: toolbar responsive con preset Desktop (1280x800), Tablet (768x1024) e Mobile (375x667), zoom, ricarica e modalità di ispezione visuale a schermo con redazione automatica di password e token Bearer, e blocco preventivo di annotazioni inviate su revisioni non più attive.
-
Compilazione ed esecuzione offline senza CDN esterna: compilatore locale
esbuild-wasmcon resolver a VFS chiuso, worker thread isolato e catalogo dipendenze fissate (React 19.2.8, Tailwind v4.3.3, Lucide, Radix Dialog, Recharts, Motion) con bundle fidati precompilati in locale per l'avvio immediato senza connessione internet. -
Renderer Chromium gestito con policy di rete attiva e watchdog crash-recovery: processo Chrome for Testing dedicato con profilo temporaneo privo di dati personali, origine virtuale
http://lab.virtualsenza bridge nativo Tauri, intercettazione CDP nel controller che blocca navigazionilocation.hrefe richieste esterne non autorizzate conBlockedByClient, e watchdog con arresto istantaneo dei cicli infiniti in meno di 2 ms e riciclo del target. -
Broker di scrittura confinata su percorsi reali e allowlist tool con rifiuto per difetto (deny-by-default) in estensione autonoma per OMP: blocco di shell (
bash), interpreti (eval), scritture generiche, browser host, debugger e MCP; validazione su percorsi canonici con blocco di traversal.., percorsi assoluti, confini fra prototipi e symlink/junction; preservazione della delega ai subagenti autori che ereditano i medesimi vincoli. -
Revisioni locali per richiesta di modifica con stato atomico dei file, esito e chiusura esplicita (
rendering-ready,verified,interrupted): ripristino non distruttivo di una revisione precedente senza riscrittura della storia e duplicazione del prototipo con registrazione della provenienza (storia e contenuti rimangono fuori da Git nell'archivio locale di Studio). -
Acquisizione del contesto stabile dal progetto con selezione mirata: lettura del working tree effettivo comprese modifiche non committate dell'utente, impronte crittografiche SHA-256 e provenienza, esclusione rigorosa di credenziali e file di segreti, verifica della coerenza a più passaggi contro scritture concorrenti del principale, lettura congelata per i tool di contesto e rilevamento della deriva (drift) con aggiornamento solo su richiesta esplicita dell'utente senza rigenerare il prototipo.
-
Export autonomo e handoff adattivo al principale: esportazione di qualsiasi revisione come progetto React indipendente standard con build Vite + Tailwind v4, e pacchetto di consegna strutturato per l'adattamento da parte dell'agente principale allo stack reale del progetto (anche Svelte 5) senza auto-merge forzato.
-
Retrocompatibilità e migrazione reversibile di
.gitignore: i vecchi prototipi HTML generati dastudio_preview(proto/*.html) restano leggibili e apribili, mentre la regola automatica.gitignoreviene aggiornata aproto/*.htmlper consentire il tracciamento in Git dei nuovi prototipi inproto/<id>/senza toccare le regole scritte dall'utente. -
Composer del Companion con suggerimenti
!per tutti i ruoli configurati e per i modelli più usati tra i progetti, selezionabili da tastiera, e allegati immagine tramite selettore file, incolla o trascinamento con anteprima e rimozione prima del salvataggio. -
Rilevazione dell'arresto per quota esaurita e recupero assistito su GUI, TUI e Companion: rileva in tempo reale quando un agente si ferma per esaurimento quota, crediti o limiti di spesa del provider senza riserve configurate, impostando lo stato di attenzione persistente; propone con un click il cambio verso il prossimo ruolo sano e rilancia il turno fallito tramite
/retrypreservando il contesto ed evitando la riesecuzione non idempotente dei tool già applicati; esteso al Companion con card prioritaria e commutazione automatica da terminale a GUI in un solo click; introdotto avviso preventivo non bloccante «senza riserve» nel composer per modelli privi di catene di fallback. -
Le card progetto nella Companion mostrano sempre tutti i progetti aperti, senza il pulsante «+N altri progetti» che li nascondeva. Il nome del progetto e' ora su una riga dedicata, sempre visibile: quota, stato e contatore coda stanno su una seconda riga sotto il nome, cosi' le informazioni non si sovrappongono e nessun chip puo' schiacciare il nome fino a nasconderlo.
-
La finestra Companion ha una struttura nuova: il campo del nuovo task sta sempre in cima, sempre grande e prende sempre il fuoco, e sotto ogni progetto aperto ha la sua card. La card del progetto che ti fa una domanda si allarga a tutta la finestra e le altre scendono sotto; un progetto al lavoro mostra su una riga cosa sta facendo, uno fermo i prossimi task in coda (tre, poi il residuo), e uno che ha appena finito le prime righe di cio' che ha detto con quanto tempo e' passato. Il nome del progetto apre la finestra principale su quel progetto: «ha finito, fammi vedere cosa ha fatto» non passa piu' dalla coda dei task. Il
+accanto allo stato precompila il campo con la menzione di quel progetto. In modalita' Spotlight la finestra adatta la propria altezza al contenuto, in modalita' Widget resta quella che hai scelto. Rimossi il riepilogo aggregato delle code e la paginazione delle richieste: ogni domanda ha adesso la sua card. -
Aggiornamento icona del thinking effort a standard Lucide: sostituito il vecchio SVG inline rudimentale nello slider del thinking effort (
ReasoningSlider.svelte) con l'icona ufficiale vettoriale ad alta definizioneIconBrain(da@lucide/svelte/icons/brain), dimensionata e stilizzata tramite il token globale--icon-sizecon stroke uniforme e contrasto ottimale. -
«Ha finito» e «fermo, dammi un compito» non sono piu' lo stesso stato: un lavoro concluso resta segnalato come completato finche' non riporti il fuoco su quel progetto, anche quando era il progetto aperto nella finestra principale.
-
Laboratorio prototipi frontend isolato e parcheggiato dietro flag alpha (disattivato per difetto): l'accesso alla superficie del Laboratorio è ora regolato dall'impostazione «Laboratorio prototipi (alpha)» in Impostazioni → Generale; con il flag spento i comandi e la scorciatoia Ctrl+Alt+P rimandano alla configurazione, e il codice del Laboratorio viene caricato tramite import dinamico solo all'apertura effettiva, eliminando l'impatto sul tempo di avvio e sul bundle iniziale.
-
La cronologia della chat comprime soltanto i tool operativi: commenti e spiegazioni dell'agente restano leggibili nel flusso, mentre le domande
askcon le relative risposte rimangono come elementi autonomi e separano i gruppi di lavoro. -
L'attesa dell'agente ha un indicatore nuovo: una griglia di nove punti in cui l'accensione scorre da sinistra a destra, la scritta «Sta pensando» attraversata da un riflesso luminoso e, dopo il primo secondo e mezzo, il tempo trascorso in cifre a larghezza fissa (
0.3s,12.4s,2m 5s). Il cronometro misura l'attesa dell'intero turno, quindi non riparte da zero quando l'agente alterna pensiero, testo e strumenti. La stessa griglia sostituisce il pallino di stato nell'intestazione dei gruppi di strumenti, dove resta sempre visibile e cambia colore invece di comparire e sparire: grigia a lavoro finito, rossa in caso di errore. Quando uno strumento è in esecuzione e il modello non ha dichiarato un intento, l'intestazione ora dice quale strumento sta usando invece di mostrare solo un numero. Con le animazioni disattivate o con la riduzione del movimento di sistema la griglia resta ferma e leggibile e il cronometro continua a scorrere. -
Le sessioni dell'agente avviate da Studio leggono i file in porzioni più ampie (1200 righe invece del valore predefinito) e ricevono una direttiva permanente di economia: raggruppare in una sola risposta le ricerche indipendenti già individuate, cercare il testo letterale prima di aprire i file, leggere solo i file e gli intervalli utili, gestire da sé un lavoro su un singolo file, delegare soltanto quando ci sono almeno due filoni davvero indipendenti (inviati insieme, senza attese a vuoto) e fare una sola verifica mirata alla fine. Il risultato sono meno giri a vuoto prima della prima modifica. Vale solo per i processi avviati da Studio: la configurazione personale in
~/.ompnon viene toccata, e le sessioni già aperte adottano i nuovi valori alla riapertura. -
Avvio di Studio e delle schede terminale più rapido e stabile: eliminato un processo PowerShell bloccante dalla preparazione delle notifiche Windows, sostituito il wrapper PowerShell del terminale con
cmd.exe, parallelizzata la lettura iniziale dei progetti e riutilizzati tema e preferenze già risolti prima del primo fotogramma, evitando la schermata «nessun progetto» e il passaggio visibile della quota dal vecchio anello alla barra configurata. -
Companion ridisegnata con componenti dedicati: domande dell'agente più leggibili, token del composer allineati al design system neutro; in Spotlight la chiusura al blur è disattivata di default (solo Esc, configurabile).
-
Animazione fluida per l'apertura e chiusura della barra laterale: la comparsa e scomparsa della sidebar azionata dall'icona di Pi in alto a sinistra (e dalla scorciatoia Ctrl+Alt+B) è ora animata con transizione fluida del layout a griglia, dissolvenza e scorrimento del contenuto senza scatti o ricalcoli di reflow, con feedback tattile alla pressione dell'icona e rispetto automatico delle preferenze di movimento ridotto.
-
Rendering inline dei token e rimozione del testo duplicato nel Companion: i token riconosciuti (
@progetto,/direttiva,!ruoloo!modello) vengono renderizzati direttamente come pillole semantiche colorate (blu per i progetti, verde per le direttive, viola per ruoli e modelli) dentro l'area di scrittura preservando l'allineamento perfetto del cursore e la modifica fluida del testo; eliminata la duplicazione del prompt e dei tag sotto il campo, lasciando l'area sottostante solo per eventuali avvisi reali o ambiguità. -
Opzioni di configurazione del task sempre visibili e integrate nel layout: rimosso l'accordion comprimibile e il contenitore a scheda del TaskEditor in favore di un flusso naturale direttamente sotto l'area di testo del prompt, con sezioni dedicate per profilo/ruolo, modello specifico, livello di thinking effort e griglia delle direttive con conteggio attivo.
-
Il campo per i task del Companion ha ora la forma di un composer da chat: una sola superficie arrotondata che cresce con il testo (una riga a vuoto, fino a otto), Invio per salvare e Maiusc+Invio per andare a capo, pastiglie cliccabili
@progetto,/direttivae!ruoloal posto del testo di aiuto, e pulsante di invio tondo che gira mentre salva. L'anteprima dell'interpretazione è diventata una striscia sotto il campo invece di una scheda con una scatola dentro, e un progetto non ancora riconosciuto è segnalato come avviso e non come errore. -
La ricerca dei modelli è più tollerante: trattini, punti, barre e spazi non contano più e i termini possono essere scritti in qualsiasi ordine, così «gpt 5.6», «gpt 56» o «gpt sol» trovano tutti
codex-openai/gpt-5.6-sol. Vale nel menu modello del composer, nel selettore modello, nella scheda Catalogo delle impostazioni e nei suggerimenti!del Companion. -
I messaggi di sistema dell'agente non sono più muri di testo con XML in chiaro. Il risultato di un subagente in background diventa una riga compatta con stato, ruolo, durata, peso della risposta e la sua sintesi, e un click apre il transcript completo nel cassetto; i messaggi scambiati tra agenti mostrano mittente, corpo formattato e a cosa rispondono, senza il testo di servizio destinato al modello; i promemoria e le istruzioni interne che
ompscrive per l'agente e non per te restano nascosti, e il nuovo interruttore «Mostra i messaggi interni dell'agente» in Impostazioni → Generale li riporta a schermo come righe compatte quando serve capire cosa sta guidando l'agente. Tre o più avvisi di sistema di fila si raccolgono in una sola riga espandibile. Il promemoria dei todo rimasti aperti non viene più stampato in chat: la striscia dei todo mostra invece un contatore dei solleciti (1/3), che diventa ambra all'ultimo tentativo quando l'agente è in stallo. Lo stesso trattamento vale dentro il cassetto del transcript di un subagente. -
La risposta rapida con testo precompilato (prefill) nella finestra Companion inoltra correttamente la risposta anche senza modifiche manuali, evitando lo stallo dell'agente in attesa di input.
-
Il contesto della conversazione nelle domande della Companion non e' piu' testo grezzo: grassetto, elenchi, titoli, citazioni e blocchi di codice sono resi come nella chat, e il riquadro nasce sulla fine del messaggio invece che sul suo inizio. La parte che serve a rispondere e' la conclusione, non il preambolo; risalire il messaggio resta possibile scorrendo.
-
Raggruppamento dei tool e de-duplicazione dei footer modello nella timeline: le chiamate a tool operativi consecutivi (con i relativi passaggi di thinking/ragionamento interno privi di testo o immagini per l'utente) vengono ora correttamente accorpate in un unico gruppo compatto anziché generare card isolate con footer modello ripetuti a ogni turno; i commenti narrativi e le spiegazioni dell'agente restano leggibili nella timeline principale e il footer con modello e costo ricompare unicamente alla risposta finale.
-
I task eliminati esternamente non risorgono più alla rilettura del progetto: la sincronizzazione da file su disco (watcher, finestra Companion o comando /tasks) sostituisce ora la lista in memoria preservando esclusivamente i task in spedizione non ancora consegnati ad omp, evitando che task cancellati ricompaiano al salvataggio successivo.
-
Gli errori ordinari dell'agente non bloccano più la coda con falsi allarmi di quota: la condizione di blocco quota viene attivata unicamente a fronte di reali esaurimenti di crediti o limiti di spesa comunicati dal provider, e viene azzerata automaticamente all'invio di un nuovo prompt o all'avvio di un turno di lavoro.
-
La modalità di notifica sintetica non mostra più il testo della domanda dell'agente nel centro notifiche o nella schermata di blocco, preservando la riservatezza impostata dall'utente.
-
La scorciatoia Ctrl+Tab per scorrere tra i progetti aperti rispetta i campi di testo, l'editor Monaco e i dialoghi modali, evitando cambi accidentali di progetto durante la digitazione o la conferma.
-
I menu, le descrizioni delle scorciatoie e i popover di stato rispondono immediatamente al cambio lingua nelle Impostazioni senza richiedere il riavvio dell'applicazione.
-
Tutte le azioni e le etichette di stato della finestra Companion sono state localizzate in italiano e in inglese.
-
I processi omp avviati tramite RPC vengono terminati in modo pulito alla chiusura di Studio, prevenendo processi orfani in background.
-
Il fallimento nel caricamento iniziale dei progetti espone ora un avviso visibile a schermo e attiva la modalità di sola lettura protetta, anziché mostrare una finestra vuota ingannevole.
-
La Companion non mostra più in coda un lavoro già svolto. Il task che lasciava la coda per partire veniva ricordato per sempre come «attivo», e la prima interruzione successiva — chiusura del progetto mentre l'agente lavorava, uscita da Studio — lo rimetteva in cima alla coda insieme all'ultimo task lanciato, anche se quel lavoro era finito da ore. Ora il ricordo dura solo la finestra in cui il prompt può davvero perdersi, cioè fino al primo segno di vita del processo omp: se il processo muore prima di riceverlo il task torna in coda come prima, se invece è arrivato in sessione resta nella sua sessione, riprendibile dallo storico, e non riappare fra le cose da fare.
-
Studio non riempie più la cartella
~/.omp/logsdi file di log. Ogni interrogazione aomp(quote, catalogo modelli, versione, controllo aggiornamenti) fa nascere un processo, eompapre un file di log per processo che poi non riesce più a togliere quando il PID viene riciclato dal sistema: sul profilo di prova erano 9.684 file per 32 MB, quasi 3.000 al giorno, di cui 1.762 solo per il pannello delle quote. Ora il log del processo appena consultato viene cancellato subito dopo la lettura, e all'avvio Studio ripassa i file cheompconsidera scaduti da oltre cinque giorni. I log delle sessioni vere dell'agente non vengono toccati. -
Il pannello delle quote interroga
ompuna volta per tutte le finestre e non lo fa più a finestra minimizzata. Prima ogni finestra aperta partiva col proprio timer da 90 secondi, anche di notte: sei finestre significavano sei processi e sei chiamate alle API dei provider ogni volta, con letture quasi simultanee (sul profilo di prova 716 intervalli sotto i 5 secondi in un giorno). Adesso il dato vive un minuto in una cache condivisa, letto una volta sola anche se sei finestre lo chiedono insieme; il pulsante «Aggiorna» resta immediato, con un pavimento di dieci secondi, e al ritorno in primo piano la quota viene riletta subito se è scaduta. -
Un task che non parte non viene più perso. L'avvio dalla coda considerava consegnato il prompt appena la chiamata di invio ritornava: se omp lo rifiutava, o se la sessione non era ancora stata pubblicata, il task usciva comunque dalla coda e restava soltanto una sessione vuota, senza il testo scritto. Ora il task lascia la coda solo a consegna confermata, altrimenti torna in attesa con il motivo a schermo. Se invece il prompt è in attesa della fine dell'insediamento e il processo omp muore prima di riceverlo, il task torna in cima alla coda con prompt, allegati e configurazione, invece di lasciare solo un avviso in chat. Un task in spedizione conta inoltre come lavoro in coda per la chiusura del progetto, che prima lo portava via senza chiedere nulla perché guardava solo i task ancora fermi.
-
Lo storico dei lanci non viene più cancellato dall'altra finestra e non cresce senza limiti. L'elenco che arriva dalla Companion viene fuso con quello locale invece di sostituirlo: una copia più vecchia cancellava il lancio appena registrato, cioè l'unica copia del prompt di un task che ha lasciato la coda. Si conservano i cinquanta lanci più recenti per progetto, con prompt e immagini solo per gli ultimi tre, perché lo store globale dei task viene riscritto per intero a ogni modifica di coda: sul profilo di prova è passato da 3,5 MB a 171 KB.
-
Rileggendo la coda di un progetto dopo una modifica esterna (terminale, comando
/tasks, altra finestra di Studio) i task creati nel frattempo non vengono più scartati: il file resta la fonte, ma un task non ancora salvato rimane in coda invece di sparire. -
Nella scheda Coda del pannello Agente il pulsante «Nuovo task» occupa tutta la larghezza con testo centrato e il badge di stato («OMP sta lavorando», «Sessione OMP non aperta») sta sulla riga sotto, a piena larghezza: prima i due elementi si dividevano una colonna strettissima e l'etichetta del pulsante si spezzava su due righe. Le etichette di stato troppo lunghe vengono ora troncate con i puntini invece di sfondare il chip.
-
La coda della Companion si comanda riga per riga: ogni task in attesa ha il suo pulsante per farlo partire subito e il suo cestino per toglierlo, le code lunghe mostrano i primi tre task e il residuo conteggiato senza scorrimento per non occultare i progetti che stanno lavorando.
-
Il motivo per cui un lavoro non può partire si legge a schermo, in ambra sotto la coda, invece di stare in un suggerimento su un pulsante disabilitato che né il mouse né la tastiera riescono a interrogare. E il pulsante non è più attivo quando lo stato dell'agente è ancora sconosciuto: prima in quel caso il click non produceva nulla, in silenzio.
-
La Companion parla una lingua sola: stato dei progetti, conferma di salvataggio, etichette dei pulsanti finestra e degli allegati passano dalla traduzione come il resto dell'applicazione. Prima, con l'interfaccia in inglese, nello stesso elenco convivevano «Awaiting response» e «Al lavoro».
-
Corretti gli angoli del campo di scrittura nel layout Launcher, che risultavano vivi mentre tutto il resto della finestra è raccordato, e ripristinato il riquadro della scheda di recupero quota, che era senza sfondo né bordo: tre valori di stile riferivano nomi inesistenti e si azzeravano in silenzio.
-
Testi colorati più leggibili nella Companion: stato «al lavoro», badge «Consigliata», conferma di salvataggio, prefissi dei token e intestazioni della cronologia usano ora la tinta pensata per il testo, superando la soglia di contrasto AA che prima mancavano (da 3,45:1 a oltre 5:1).
-
Bersagli di click più grandi dove erano troppo piccoli per essere presi con sicurezza: pulsanti finestra, pastiglie
@ / !, avvio di un task, «+N altri progetti» e rimozione di un'immagine allegata raggiungono i 24px richiesti, senza ingrossare la grafica. -
La coda task spiega perché un lavoro non può partire — mostrando anche la domanda reale che blocca la chat — invece di ignorare il clic; le domande facoltative poste a lavoro concluso non fermano più la coda e le card mantengono titolo, anteprima e indicatori dentro i propri bordi anche con testi lunghi.
-
Il menu dei comandi
/non copre più il testo del task: nell'editor dei task il pannello dei comandi si apriva sopra il campo di scrittura, nascondendolo per intero, e non si riusciva a rileggere quello che si stava scrivendo. Ora il pannello vive nel livello superiore della finestra, si apre sotto il campo, si ribalta sopra quando sotto non c'è spazio e si accorcia da solo nelle finestre basse, scorrendo al proprio interno invece di sbordare. Vale anche per la palette della chat, che non viene più tagliata dai riquadri circostanti. -
Meno furti di fuoco mentre l'agente lavora: il viewport del browser live non si riprende più il fuoco quando Studio è in secondo piano, i modali che compaiono da soli (avviso di aggiornamento, controllo modelli) non spostano più il fuoco su di sé se stai lavorando in un'altra applicazione, e il salto a una riga nell'editor non porta più il cursore in Monaco a finestra non attiva. Aggiunta inoltre una traccia diagnostica che registra ogni cambio di fuoco con l'attività dell'agente in corso, per individuare i casi residui.
-
Digitando nell'editor con un agente attivo, i tasti non vengono più dirottati nel composer della chat: la funzione «type-to-focus» rispetta ora Monaco, il terminale e le altre superfici di scrittura.
-
L'avvio di una seconda istanza dell'applicazione (per esempio da test, build o comandi lanciati da un agente) non ruba più il focus alla finestra in uso dell'utente: invece di forzare Studio in primo piano sopra le altre applicazioni aperte, l'evento viene segnalato in modo discreto con un avviso informativo sulla barra delle applicazioni.
-
La Companion mostra subito i task in coda dei progetti già aperti, anche dopo un avvio o una riapertura: la sincronizzazione viene ripetuta quando compare la finestra, le code già lette non vengono più cancellate da una lettura globale tardiva e le modifiche effettuate dalla finestra principale raggiungono l'altra webview.
-
Il layout della Companion cambia subito: scegliendo un preset in «Impostazioni → Companion» la finestra si ridisegna all'istante, senza chiudere e riaprire Studio. Vale per tutte le impostazioni e per il tema: quello che cambi nella finestra principale arriva alla Companion mentre è aperta.
-
In tutti i cinque layout si può premere su un progetto per aprire e richiudere la sua coda task, con il pulsante «Avvia prossimo»: prima rispondeva solo il layout Cruscotto e negli altri il clic non faceva nulla. Le righe progetto sono ora raggiungibili anche da tastiera (Tab, Invio o Barra spaziatrice) e i layout Inbox e Cruscotto mostrano anch'essi l'elenco dei progetti.
-
Con la finestra fissata l'elenco progetti è completo: l'invito «+N altri progetti — fissa la finestra» non compare più a finestra già fissata, e da finestra effimera quel pulsante ora la fissa davvero invece di sfissarla. Lo stato «fissata» è condiviso fra le due finestre, quindi la pastiglia della barra superiore e l'header della Companion non si contraddicono più.
-
Il layout Cruscotto mostra le richieste di intervento dell'agente: prima erano invisibili proprio nel preset pensato per il monitoraggio, e le domande non si potevano rispondere dalla Companion.
-
Nel layout Launcher la pastiglia «N richieste di attenzione» si richiude con un secondo clic; nel layout Inbox il composer compresso si apre con un clic (o da tastiera) mentre ci sono richieste da smaltire.
-
In modalità Spotlight la maniglia di trascinamento non intercetta più i clic sul primo elemento della finestra (composer del Launcher, prima riga progetto del Compatto).
-
Rinominare un progetto o cambiargli colore si riflette subito nella Companion, che prima restava sul vecchio nome fino al riavvio.
-
Le code dei task non spariscono più chiudendo e riaprendo Studio. All'avvio Studio non leggeva
.omp/tasks.jsondei progetti aperti (la lista progetti arriva dal disco un istante dopo, e nessuno rileggeva le code), quindi alla chiusura salvava una coda vuota sopra il file di ogni progetto, cancellandone il contenuto. Ora la coda di un progetto viene letta prima di poter essere scritta: se la lettura non riesce, il salvataggio viene annullato invece di azzerare il file, un task aggiunto mentre il file è ancora in lettura non viene più perso, e svuotare una coda non la fa più riapparire. Anche l'aggiunta di un task dalla Companion e il comando/tasksdel terminale ora si fermano con un errore invece di sovrascrivere una coda che non sono riusciti a leggere. -
Rimossa l'interruzione accidentale dell'agente con il tasto Esc: premere Esc all'interno di un progetto chiude solo modali, menu o palette e non interrompe più l'elaborazione in corso, che può essere fermata unicamente tramite il pulsante di stop dedicato.
-
Risposta personalizzata e opzione «Altro» nel Companion: premendo l'opzione «Altro (scrivi la tua risposta)» o «Other (type your own)» nella card di risposta rapida del Companion si apre immediatamente il campo per digitare la risposta personalizzata con scorciatoia Invio, senza più inviare la stringa letterale al processo e senza scatenare il dump terminale CLI non formattato (con caratteri
▮e prompt duplicati) come testo di dettaglio della domanda; ripuliti gli artefatti CLI dai messaggi di dettaglio e aggiunta l'etichetta «Consigliata» alle opzioni raccomandate. -
Gli agenti in background che falliscono per esaurimento quota o errore del provider non vengono più mascherati come «Completato»: lo stato del progetto preserva correttamente la condizione di attenzione evitando che l'icona verde di successo tragga in inganno l'utente.
-
La chiusura di progetti e scratchpad dal relativo popover funziona di nuovo: il comando viene inoltrato prima che il pannello venga smontato, preservando anche la conferma per i progetti con task in coda o in esecuzione.
-
Grafica del popover di progetto e sigla: sostituito il vecchio riquadro quadrato a dimensione fissa con un chip geometrico proporzionato identico a quello del cassetto della coda; le sigle personalizzate (come «OMP-S») non vanno più a capo né debordano, e l'intestazione si allinea con spaziatura e altezze coerenti su nome e percorso.
-
Grafica del popover della coda e sigla progetto: sostituito il vecchio pallino rotondo a dimensione fissa con un chip geometrico proporzionato che ospita nitidamente qualsiasi sigla o abbreviazione di progetto (anche personalizzata come "OMP-S") senza andare a capo né sbordare; riorganizzato l'header di ciascun gruppo con allineamento naturale a colonna tra nome del progetto e stato di elaborazione, eliminando l'indentazione fissa disallineata.
-
Raggruppamento delle chiamate tool e de-duplicazione del footer modello nella chat GUI: i commenti narrativi o di spiegazione emessi prima e tra le chiamate agli strumenti (tipici di modelli come Muse Spark o modelli contributor che non usano un canale di thinking dedicato) vengono ora inclusi nell'esecuzione del
ToolGroupcompatto anziché spezzare i tool in card singole isolate; all'interno del gruppo espanso i passaggi testuali vengono visualizzati con formattazione pulita e il badge del modello con relativo costo viene de-duplicato, comparendo solo in fondo alla risposta finale dell'assistente. -
Il Companion mostra di nuovo la domanda dell'agente e permette di risponderla: prima un progetto che chiedeva una risposta compariva con il solo stato «Chiede risposta» e nessuna domanda, perché la richiesta veniva scartata quando l'agente non allegava un messaggio di dettaglio (cioè quasi sempre). Ora la card riporta la domanda, la sua posizione nella sequenza (
1/2), la descrizione di ogni opzione, gli ultimi messaggi della chat con il tasto per vederne di più, e un campo di testo per le richieste a risposta libera. Anche le notifiche di sistema e il popover del progetto mostrano il testo della domanda invece di restare muti. -
L'inserimento rapido dei task nel Companion interpreta localmente progetto, direttive e ruolo mentre si scrive e avvia il modello
smolsolo al salvataggio quando serve, evitando processi continui e l'errore Windows 206 causato da argomenti troppo lunghi. -
Il monitor del Companion mostra ora lo stato effettivo di ogni progetto e, solo per gli agenti al lavoro o in attesa di risposta, la quota del modello e dell'account realmente in uso.
-
I delta delle chiamate agli strumenti (toolcall) durante lo streaming non vengono più scambiati per blocchi di pensiero, eliminando la comparsa di falsi riquadri «Ragionamento · 1 riga» intervallati tra risposte e tool.
-
Colori del Companion ripristinati: pastiglie, avvisi, conferme e bordi accentati usavano nomi di colore inesistenti nel tema e venivano scartati dal browser, lasciando testo del colore ereditato su fondi trasparenti (il progetto mancante appariva come testo rosso nudo e l'avviso in blu senza riquadro).
-
Il suggeritore
@progettoe/direttivadel Companion non viene più tagliato: si apre sotto il campo nel livello superiore della finestra, mentre prima si apriva verso l'alto e finiva fuori dallo schermo o dentro l'area a scorrimento. -
Il punto colorato dei progetti nel Companion ha ora la stessa tinta della barra dei progetti nella finestra principale: la tinta del tema veniva interpretata come gradi HSL e ogni progetto usciva di un altro colore.
-
Il focus non viene più strappato mentre si scrive un prompt: le domande dell'agente arrivate da progetti in background non rubano più il fuoco al composer o al TaskEditor, il type-to-focus globale non dirotta più la digitazione dai controlli di altre superfici, il viewport del browser live riprende il fuoco solo se è andato perso nel vuoto dopo un rimontaggio, e i tasti Esc/Ctrl+Invio premuti fuori dal TaskEditor non lo chiudono più.
-
Le richieste di risposta dell'agente non riportano più Studio in primo piano mentre stai scrivendo in un'altra applicazione o nella Companion: la card riceve il focus solo se la finestra principale è già attiva.
-
Risolto il falso stato di modifica all'apertura dei documenti nell'editor: Monaco ora preserva il BOM UTF-8 (
\uFEFF) e allinea la baseline iniziale al caricamento, evitando la comparsa ingiustificata del pallino di non salvato e del pulsante «Salva» su file appena aperti dal filetree o dai link della GUI. -
La finestra Companion ricorda la dimensione che le hai dato: prima tornava più larga a ogni riapertura. La misura veniva salvata solo nell'istante in cui la fissavi (e comprendeva i bordi invisibili di ridimensionamento, che si sommavano a ogni giro), mentre fissarla dal pulsante nella barra superiore della finestra principale cancellava del tutto la dimensione memorizzata riportandola a 560x520. Ora posizione e dimensione si salvano quando chiudi la finestra e quando esci dall'applicazione, e restano quelle alla riapertura in entrambe le modalità (Spotlight e fissata).
-
La Companion non lampeggia più mentre rispondi a una sequenza di domande nella finestra principale. Lo stato delle attenzioni viaggia con
emit, che consegna anche a chi lo manda: la finestra principale si riapplicava il proprio annuncio e, poiché il passaggio da JSON toglie i campi vuoti che le domandeaskportano con sé, lo giudicava diverso da quello appena pubblicato. Ne seguiva un rimbalzo continuo fra le due finestre: la card veniva ridisegnata decine di volte al secondo, il contenuto saltava su e giù e tornava sempre alla prima domanda. Ora ogni finestra scarta i propri annunci e il confronto considera identici un campo assente e un campo vuoto. -
Salvare un task dalla Companion è immediato anche la prima volta. Il salvataggio aspettava il caricamento completo dei modelli, che avvia
omp models --json(circa due secondi) per un elenco che al task non serve: ora legge solo i ruoli configurati e il catalogo locale, mentre l'elenco completo dei modelli disponibili si carica in sottofondo all'apertura della finestra, dove serve alle menzioni!ruoloe!modello. -
Live stopwatch on every running tool: next to the tool name the elapsed time ticks in tenths of a second (
0.1s,12.8s, and past the minute1m 14s), then freezes on the call's real duration in a dimmer tint. During a long command — build, tests, dependency install — you can tell at a glance that work is progressing, even with the tool group collapsed, where the stopwatch now sits beside the status text. Digits are fixed-width and the time column is reserved: nothing shifts while the numbers change. A single clock serves every call in the session and switches off when no tool is running. -
Icon quality and registry audit tool: new
npm run check:iconsaudit script (scripts/check-icons.mjs) to inventory all icons in the$lib/iconsregistry, ensure proper Lucide resolution, enforce the architectural ban on direct imports, and detect unmigrated raw inline SVGs; interactive inspection modal in "Settings → Appearance" featuring multi-scale previews (14px, 16px, 20px, 24px), contrast verification, quick import copying, and migration tracking. -
Fluid task dispatch from the queue: clicking Run immediately collapses the task row from the queue and smoothly reveals the prompt as the first chat message (progressive blur, fade, and real-height expansion via
chatReveal), masking the technical latency ofompprocess spawning, RPC handshake, and session initialization; if startup takes longer than 400ms a subtle "Launching new session..." activity indicator appears with shimmer effect, and if startup fails or the process exits the prompt retracts symmetrically while the task snaps back to the top of the queue with a visual flash. -
Keyboard shortcut Ctrl+Tab (and Ctrl+Shift+Tab) to quickly switch to the next or previous open project, with cyclic navigation following the project bar order and seamless support from both chat and integrated terminal.
-
Unified task progress display for TODO phases and subagents: work stages and background processes are presented in compact rows with clear and consistent status indicators (green checkmark for completed, red cross for failed, amber warning for blocked, neutral grey for abandoned or aborted), a smooth loading ring for active tasks, and technical details expandable on demand with a click, avoiding intrusive auto-expansion and fully honoring reduced-motion settings.
-
When you name a piece of interface text — "label Dati dell'immobile da ridurre di dimensione", "shrink the Totale contributo text", a badge quoted with quotes or backticks — Studio searches the project for that text itself before sending the message and attaches the exact file and line to the agent, with two lines of context. The agent starts from the right place: one targeted read, one edit, one verification, with no random file browsing. The search is local and time-boxed (it stops within a quarter of a second), uses
git grepwhere available, skips folders such asbin,obj,node_modules, and.git, ignores binary files, and never leaves the project folder; when it finds nothing or fails, the message is sent exactly as before. Alongside the text, a compact list of the project's changed files is attached too (names and status only, no diffs and no file contents), omitted when nothing has changed. -
Bilingual Italian/English interface with a selector in "Settings → General": the language follows the operating system by default and can be pinned to Italian or English. Switching is immediate and never reloads the window, so agent sessions, terminals, and live previews stay alive while the text rewrites itself. Dates, times, numbers, and amounts follow the user's region, and the user documentation (README, shortcuts, changelog) is available in both languages.
-
Automatic detection of input waiting and post-turn quick replies via Companion and OS notifications: extended turn analysis using the lightweight
smolmodel to detect when the agent finishes by asking questions, seeking plan confirmations, or requesting decisions without formally invoking theasktool; the project immediately transitions to the attention state "Needs response", highlighted in the project bar and surfacing an interactive card at the top of the Companion with the extracted question and clickable options, routed directly as a new prompt to the chat; when the app is in the background, an OS desktop notification triggers immediately with the question text so users can reply within 5 minutes, preserving the Anthropic cache hit. -
Safety confirmation modal when closing a project, protecting running and queued tasks: closing a single project warns about queued tasks or an active run and lets you keep or discard the queue; closing during active processing aborts the run and moves the task prompt and settings to the top of
.omp/tasks.json, intact on reopening. Quitting the application asks nothing instead: queues stay with their projects, any interrupted task returns to the top of its queue, and the window closes right away. -
React 19 + Tailwind v4 frontend prototype lab: dedicated GUI space in Studio's central column to design, compare 3-5 component variants, and iterate multi-screen flows with mock data in an isolated and secure sandbox, running concurrently with the main agent in the same project.
-
Interactive preview with element selection and revision-bound annotations: responsive toolbar with Desktop (1280x800), Tablet (768x1024), and Mobile (375x667) presets, zoom, refresh, and on-screen visual inspection mode featuring automatic redaction of passwords and Bearer tokens, alongside preventive blocking of annotations sent on inactive revisions.
-
Offline compilation and execution without external CDNs: local
esbuild-wasmcompiler with closed VFS resolver, isolated worker thread, and pinned dependency catalog (React 19.2.8, Tailwind v4.3.3, Lucide, Radix Dialog, Recharts, Motion) with trusted local precompiled bundles for instant startup without an internet connection. -
Managed Chromium renderer with active network policy and crash-recovery watchdog: dedicated Chrome for Testing process with an ephemeral profile free of personal data, virtual origin
http://lab.virtualwithout native Tauri bridge, CDP interception in the controller blockinglocation.hrefnavigations and unauthorized external requests viaBlockedByClient, and watchdog with instant termination of infinite loops in under 2 ms and target recycling. -
Confined write broker on real paths and deny-by-default tool allowlist as a standalone OMP extension: blocks shells (
bash), runtimes (eval), generic file writes, host browser, debugger, and MCP; enforces canonical path validation preventing..traversal, absolute paths, cross-prototype boundaries, and symlink/junction traversal; preserves delegation to author subagents who inherit the same constraints. -
Local revisions per change request with atomic file state, outcome, and explicit status (
rendering-ready,verified,interrupted): non-destructive rollback to a previous revision without rewriting history and prototype duplication with recorded provenance (history and contents remain outside Git within Studio's local store). -
Stable project context acquisition with targeted selection: reads the effective working tree including uncommitted user changes, SHA-256 cryptographic digests, and provenance; strictly excludes credentials and secret files; multi-pass consistency verification against concurrent writes by the main agent; frozen read for context tools and drift detection with refresh only upon explicit user request without regenerating the prototype.
-
Standalone export and adaptive handoff to main agent: exports any revision as a standard independent React project with Vite + Tailwind v4 build, and provides a structured delivery package for adaptation by the main agent to the project's actual stack (including Svelte 5) without forced auto-merges.
-
Backward compatibility and reversible
.gitignoremigration: legacy HTML prototypes generated bystudio_preview(proto/*.html) remain readable and viewable, while the automated.gitignorerule is updated toproto/*.htmlto enable Git tracking of new prototypes underproto/<id>/without altering user-defined rules. -
Companion composer with
!suggestions for all configured roles and most frequently used models across projects, selectable via keyboard, alongside image attachments via file picker, paste, or drag-and-drop with preview and removal prior to saving. -
Out-of-quota stop detection and assisted recovery across GUI, TUI, and Companion: detects in real time when an agent halts due to exhausted quota, credits, or provider spending limits without configured fallbacks, establishing a persistent attention state; offers a one-click switch to the next healthy role and relaunches the failed turn via
/retrywhile preserving context and avoiding non-idempotent re-execution of already applied tools; extended to the Companion with a priority card and automatic one-click terminal-to-GUI switching; introduces a non-blocking "no reserves" preventive warning in the composer for models lacking fallback chains. -
Project cards in the Companion now always show every open project, without the "+N more projects" button that hid them. The project name sits on its own dedicated row and is always visible: quota chip, state badge, and queue counter live on a second row below the name, so information no longer overlaps and no chip can squeeze the name out of sight.
-
Thinking effort icon upgraded to high-quality Lucide standard: replaced the crude inline SVG in the reasoning slider (
ReasoningSlider.svelte) with the official high-fidelity vectorIconBrain(from@lucide/svelte/icons/brain), tokenized via--icon-sizefor consistent stroke weight and optimal contrast. -
The Companion window has a new structure: the new-task field stays at the top, always large and always focused, and below it every open project has its own card. The card of the project asking you something expands to the full window width and the others move below it; a working project shows what it is doing on one line, an idle one shows the next queued tasks (three, then the remainder), and one that just finished shows the first lines of what it said along with how long ago. Clicking the project name brings the main window forward on that project: "it finished, show me what it did" no longer goes through the task queue. The
+next to the state prefills the field with that project's mention. In Spotlight mode the window fits its height to the content; in Widget mode it keeps the size you chose. Removed the aggregated queue board and the request pagination: every question now has its own card. -
"Finished" and "idle, give me work" are no longer the same state: completed work stays flagged as completed until you bring the focus back to that project, even when it was the project open in the main window.
-
Frontend prototype lab isolated and parked behind an alpha flag (disabled by default): access to the Lab surface is now controlled by the «Prototype lab (alpha)» setting in Settings → General; with the flag disabled, commands and the Ctrl+Alt+P shortcut redirect to settings, and Lab code is loaded via dynamic import only when opened, removing impact on startup time and initial bundle size.
-
The chat timeline now collapses operational tools only: agent comments and explanations remain readable in the conversation, while
askquestions and their answers stay as standalone items that separate work groups. -
The agent's waiting state has a new indicator: a nine-dot grid whose lights sweep from left to right, a "Thinking" label crossed by a moving highlight, and — after the first second and a half — the elapsed time in fixed-width figures (
0.3s,12.4s,2m 5s). The stopwatch measures the whole turn, so it does not restart every time the agent switches between thinking, writing, and running tools. The same grid replaces the status dot in tool group headers, where it stays permanently visible and changes color instead of appearing and disappearing: grey once the work is done, red on failure. When a tool is running and the model declared no intent, the header now names the tool in use instead of showing a bare number. With animations turned off, or with the system's reduced-motion setting, the grid stays still and legible while the stopwatch keeps running. -
Agent sessions started from Studio read files in larger chunks (1200 lines instead of the default) and receive a permanent economy directive: batch already-identified independent searches into a single response, search for the literal text before opening files, read only the useful files and ranges, handle single-file work directly, delegate only when there are at least two genuinely independent workstreams (dispatched together, with no idle waiting), and run a single targeted verification at the end. The result is fewer wasted round trips before the first edit. This applies only to processes started by Studio: your personal configuration in
~/.ompis left untouched, and sessions already open pick up the new values when reopened. -
Faster, steadier Studio and terminal-tab startup: removed a blocking PowerShell process from Windows notification setup, replaced the terminal's PowerShell wrapper with
cmd.exe, parallelized the initial project read, and reused the resolved theme and preferences before the first frame, preventing both the false "no project" screen and the visible quota switch from the old ring to the configured bar. -
Companion redesigned with dedicated subcomponents: more readable agent questions, composer tokens aligned to the neutral design system; Spotlight blur-to-close is off by default (Esc only, configurable).
-
Smooth animation for opening and closing the sidebar: sidebar appearance and dismissal triggered by the Pi icon in the top left (and the
Ctrl+Alt+Bshortcut) is now animated with a smooth grid layout transition, fade, and content slide without stutter or reflow recalculations, featuring tactile feedback when pressing the icon and automatic respect for reduced motion preferences. -
Inline token rendering and removal of duplicate text in Companion: recognized tokens (
@project,/directive,!role, or!model) are rendered directly as colored semantic pills (blue for projects, green for directives, purple for roles and models) inside the writing area, maintaining perfect cursor alignment and smooth text editing; eliminates duplicate prompt and tag displays beneath the field, reserving the bottom area solely for genuine warnings or ambiguities. -
Always-visible task configuration options integrated into layout: removed the collapsible accordion and card container in TaskEditor in favor of a natural flow directly beneath the prompt text area, featuring dedicated sections for profile/role, specific model, thinking effort level, and a directive grid with active counts.
-
Companion task input transformed into a chat composer: a single rounded surface that expands with text (one line when empty, up to eight), Enter to save and Shift+Enter for a new line, clickable
@project,/directive, and!rolepills in place of help text, and a round submit button that spins while saving. The interpretation preview is now a strip beneath the field rather than a card containing a box, and an unrecognized project is flagged as a warning rather than an error. -
More forgiving model search: hyphens, dots, slashes, and spaces are ignored and terms can be entered in any order, so "gpt 5.6", "gpt 56", or "gpt sol" all find
codex-openai/gpt-5.6-sol. Applies to the composer model menu, model picker, Settings Catalog tab, and Companion!suggestions. -
Agent system messages are no longer walls of text with raw XML. Background subagent results become a compact row displaying status, role, duration, response size, and summary, with a click opening the full transcript in the drawer; messages exchanged between agents display sender, formatted body, and what they reply to, omitting service text intended for the model; reminders and internal instructions that
ompwrites for the agent rather than the user remain hidden, and the new "Show agent internal messages" toggle under Settings → General displays them as compact rows when needed to understand what guides the agent. Three or more consecutive system notices collapse into a single expandable row. Unresolved todo reminders are no longer printed in chat; the todo strip instead shows a reminder counter (1/3), turning amber on the final attempt when the agent stalls. The same treatment applies inside the subagent transcript drawer. -
Quick reply with prefilled text in the Companion window properly submits the answer without requiring manual edits, preventing the agent from remaining suspended awaiting input.
-
Conversation context in Companion questions is no longer raw text: bold, lists, headings, quotes, and code blocks are rendered as in the chat, and the box opens on the end of the message instead of its beginning. What you need in order to answer is the conclusion, not the preamble; scrolling back up the message still works.
-
Tool grouping and model footer deduplication in the chat timeline: consecutive operational tool calls (along with their internal thinking/reasoning turns that contain no text or images for the user) are now properly consolidated into a single compact tool group rather than producing isolated cards with repeated model footers at every turn; agent narrative comments and explanations remain readable in the main timeline and the model/cost footer appears only on the final response.
-
Externally deleted tasks no longer resurrect upon project reload: disk file synchronization (watcher, Companion window, or /tasks command) now replaces in-memory lists while preserving only in-flight dispatching tasks, preventing deleted tasks from reappearing on subsequent saves.
-
Generic agent errors no longer freeze the task queue with false quota alerts: quota blocking is now triggered exclusively upon genuine credit or quota exhaustion from the provider, and resets automatically when sending a new prompt or starting a turn.
-
Brief notification mode no longer reveals the agent's question text in the notification center or lock screen, protecting user privacy.
-
The Ctrl+Tab project-switching shortcut respects text fields, Monaco editor, and open modal dialogs, preventing accidental project changes while typing or confirming actions.
-
Settings navigation, shortcut descriptions, and status popovers update immediately when switching languages without requiring an application restart.
-
All actions and status labels in the Companion window are now fully localized in Italian and English.
-
Background omp processes started via RPC are cleanly terminated when Studio exits, preventing orphaned processes.
-
Failures during initial project loading now display a visible error banner and enable protected read-only mode instead of showing a misleading empty state.
-
The Companion no longer shows finished work as still queued. A task that left the queue to start was remembered as "active" forever, and the next interruption — closing the project while the agent was working, quitting Studio — pushed it back to the top of the queue together with the last launched task, even when that work had been done hours earlier. The memory now lasts only for the window in which the prompt can actually be lost, that is until the omp process shows its first sign of life: if the process dies before receiving it the task returns to the queue as before, but once the prompt is in a session it stays in that session, resumable from history, and never reappears among the things to do.
-
Studio no longer fills
~/.omp/logswith log files. Every query toomp(quotas, model catalog, version, update check) spawns a process, andompopens one log file per process that it can no longer clean up once the system recycles the PID: on the test profile that was 9,684 files for 32 MB, almost 3,000 a day, 1,762 of them from the quota panel alone. The log of the process just queried is now deleted right after its output is read, and at startup Studio sweeps the filesompitself considers expired for more than five days. Logs of real agent sessions are left untouched. -
The quota panel queries
omponce for all windows and no longer queries it at all while the window is minimized. Previously every open window ran its own 90-second timer, overnight included: six windows meant six processes and six provider API calls every time, with near-simultaneous reads (716 intervals under 5 seconds in a single day on the test profile). The value now lives for one minute in a shared cache, read once even when six windows ask together; the "Refresh" button stays immediate, with a ten-second floor, and coming back to the foreground re-reads the quota at once when it is stale. -
A task that fails to start is no longer lost. Launching from the queue treated the prompt as delivered as soon as the send call returned: if omp rejected it, or the session had not been published yet, the task left the queue anyway and all that remained was an empty session, without the text you wrote. The task now leaves the queue only on confirmed delivery, otherwise it goes back to waiting with the reason on screen. And when the prompt is waiting for startup to complete and the omp process dies before receiving it, the task returns to the top of the queue with its prompt, attachments, and settings, instead of leaving only a chat notice. A task being dispatched also counts as queued work when closing a project, which previously took it away without asking because it only looked at tasks still at rest.
-
Launch history is no longer wiped by the other window and no longer grows without bound. The list arriving from the Companion is merged with the local one instead of replacing it: an older copy used to delete the launch just recorded here, which is the only copy of the prompt of a task that left the queue. The fifty most recent launches per project are kept, with prompt and images only for the last three, because the global task store is rewritten in full on every queue change: on the test profile it went from 3.5 MB to 171 KB.
-
Re-reading a project queue after an external change (terminal,
/taskscommand, another Studio window) no longer discards tasks created in the meantime: the file remains the source, but a task not yet saved stays in the queue instead of vanishing. -
In the Agent panel's Queue tab the "New task" button now spans the full width with centered text, and the state badge ("OMP is working", "No OMP session") sits on the row below, also full width: previously the two shared one very narrow column and the button label broke across two lines. Over-long state labels are now truncated with an ellipsis instead of bursting out of the chip.
-
The Companion queue is now driven row by row: every waiting task has its own button to run it immediately and its own trash can to remove it, long queues show the first three tasks and the counted remainder without scrolling to avoid obscuring active projects.
-
The reason a job cannot start is readable on screen, in amber below the queue, instead of hiding in a tooltip on a disabled button that neither the pointer nor the keyboard can interrogate. And the button is no longer active while the agent state is still unknown: in that case the click used to do nothing, silently.
-
The Companion speaks one language: project states, save confirmation, window button labels, and attachment labels now go through translation like the rest of the application. Previously, with the interface in English, the same list mixed "Awaiting response" with "Al lavoro".
-
Fixed the square corners on the Launcher layout's writing field, which clashed with the rounded rest of the window, and restored the frame around the quota-recovery card, which had neither background nor border: three style values referenced names that do not exist and silently collapsed.
-
More legible colored text in the Companion: the "working" state, the "Recommended" badge, the save confirmation, token prefixes, and history headers now use the tint meant for text, clearing the AA contrast threshold they previously missed (from 3.45:1 to above 5:1).
-
Larger click targets where they were too small to hit reliably: window buttons, the
@ / !pills, starting a task, "+N more projects", and removing an attached image all reach the required 24px without enlarging the graphics. -
The task queue now explains why a job cannot start — including the actual question blocking the chat — instead of ignoring the click; optional questions asked after completed work no longer stop the queue, and cards keep titles, excerpts, and badges inside their borders even with long text.
-
The
/command menu no longer covers the task text: in the task editor the command panel opened on top of the writing field, hiding it entirely, so you could not reread what you were typing. The panel now lives in the window's top layer, opens below the field, flips above it when there is no room below, and shrinks itself in short windows, scrolling internally instead of overflowing. The chat palette benefits too: surrounding panes no longer clip it. -
Fewer focus steals while the agent works: the live browser viewport no longer takes focus back when Studio is in the background, modals that appear on their own (update notice, model health check) no longer pull focus while you are working in another application, and jumping to a line in the editor no longer moves the caret into Monaco when the window is inactive. A diagnostic trace was also added, recording every focus change alongside the agent activity in progress, to pin down the remaining cases.
-
Typing in the editor while an agent is active no longer redirects keystrokes to the chat composer: the "type-to-focus" shortcut now respects Monaco, the terminal, and other writing surfaces.
-
Launching a second instance of the application (for example from tests, builds, or commands run by an agent) no longer steals focus from the user's active window: instead of forcing Studio to the foreground over other open applications, the event is signaled discreetly with an informational taskbar alert.
-
The Companion immediately displays queued tasks for projects already open, including after startup or reopening: synchronization is repeated whenever the window appears, queues already read are no longer erased by a late global-store read, and changes made in the main window reach the other webview.
-
The Companion layout changes immediately: picking a preset in "Settings → Companion" redraws the window at once, with no need to close and reopen Studio. The same applies to every setting and to the theme: what you change in the main window reaches the Companion while it is open.
-
In all five layouts you can click a project to open and close its task queue, with the "Run next" button: previously only the Dashboard layout responded and clicks did nothing elsewhere. Project rows are now reachable from the keyboard (Tab, Enter, or Space) too, and the Inbox and Dashboard layouts also show the project list.
-
With the window pinned the project list is complete: the "+N more projects — pin the window" hint no longer shows on an already pinned window, and in ephemeral mode that button now really pins it instead of unpinning. The pinned state is shared between both windows, so the top bar chip and the Companion header no longer contradict each other.
-
The Dashboard layout shows the agent's intervention requests: they used to be invisible in the very preset meant for monitoring, and questions could not be answered from the Companion.
-
In the Launcher layout the "N attention requests" pill collapses again on a second click; in the Inbox layout the collapsed composer opens with a click (or from the keyboard) while requests are pending.
-
In Spotlight mode the drag handle no longer swallows clicks on the first element of the window (the Launcher composer, the first project row in Compact).
-
Renaming a project or changing its color is reflected in the Companion right away, which previously kept the old name until restart.
-
Task queues no longer vanish when closing and reopening Studio. At startup Studio never read the open projects'
.omp/tasks.json(the project list arrives from disk a moment later, and nothing re-read the queues), so on exit it saved an empty queue over every project file, wiping its contents. A project's queue is now read before it can be written: if the read fails the save is cancelled instead of blanking the file, a task added while the file is still being read is no longer lost, and clearing a queue no longer brings it back. Adding a task from the Companion and the terminal/taskscommand now fail with an error too, instead of overwriting a queue they could not read. -
Removed accidental agent interruption with the Esc key: pressing Esc inside a project now closes only modals, menus, or palettes and no longer interrupts running execution, which can only be stopped via the dedicated stop button.
-
Custom answer and "Other" option in Companion: clicking "Other (type your own)" in the Companion quick reply card immediately opens the input field for entering a custom reply using the Enter shortcut, no longer sending the literal string to the process and preventing unformatted CLI terminal dumps (with
▮characters and duplicate prompts) from appearing as question detail text; cleaned CLI artifacts from detail messages and added the "Recommended" label to suggested options. -
Background agents failing due to quota exhaustion or provider errors are no longer masked as "Completed": project state correctly preserves the attention condition, preventing the green checkmark icon from misleading the user.
-
Closing projects and scratchpads from project popover works again: command is dispatched before the panel unmounts, preserving confirmation dialogs for projects with queued or running tasks.
-
Project popover styling and badge: replaced legacy fixed-size square box with a proportional geometric chip matching the queue drawer; custom abbreviations (such as "OMP-S") no longer wrap or overflow, and headers align with consistent spacing and heights across name and path.
-
Queue popover styling and project badge: replaced legacy fixed-size circular dot with a proportional geometric chip neatly accommodating any project abbreviation (including custom tags like "OMP-S") without line breaks or overflow; reorganized group headers with clean column alignment between project name and run status, eliminating misaligned fixed indentation.
-
Tool call grouping and model footer deduplication in GUI chat: narrative or explanatory commentary emitted before and between tool calls (typical of models such as Muse Spark or contributor models that do not use a dedicated thinking channel) is now bundled into the compact
ToolGroupexecution rather than breaking tools into isolated individual cards; inside the expanded group, text steps render with clean formatting and the model badge with cost is deduplicated, appearing only at the bottom of the assistant's final response. -
Companion once again displays the agent's question and allows answering: previously, a project requesting a reply displayed only the "Needs response" status without the question, because the request was discarded whenever the agent did not attach a detail message (which was almost always the case). The card now displays the question, its sequence position (
1/2), descriptions for each option, recent chat messages with a button to view more, and a text field for freeform replies. System notifications and the project popover also display the question text instead of remaining blank. -
Fast task input in Companion interprets project, directives, and role locally while typing and invokes the
smolmodel only upon saving when needed, avoiding continuous background processes and the Windows error 206 caused by excessively long command arguments. -
Companion monitor now displays the actual status of each project and, exclusively for agents actively working or awaiting replies, shows the model and account quota currently in use.
-
Toolcall deltas during streaming are no longer mistaken for thinking blocks, eliminating spurious "Thinking · 1 line" boxes between responses and tools.
-
Companion colors restored: pills, warnings, confirmations, and accent borders previously used color names absent from the theme and were discarded by the browser, rendering inherited color text over transparent backgrounds (missing projects appeared as bare red text and warnings as blue text without borders).
-
Companion
@projectand/directivesuggester is no longer clipped: opens below the input field in the top window layer, whereas previously it opened upwards and was cut off by the screen boundary or scroll container. -
Colored project dot in Companion now matches project bar tint in main window: theme tint was previously parsed as HSL degrees, causing each project to render in an unexpected hue.
-
Focus is no longer stolen while typing a prompt: agent questions arriving from background projects no longer steal focus from the composer or TaskEditor, global type-to-focus no longer hijacks keystrokes from controls on other surfaces, live browser viewport reclaims focus only when lost following remounting, and Esc/Ctrl+Enter pressed outside TaskEditor no longer dismisses it.
-
Agent reply requests no longer bring Studio to the foreground while you are typing in another application or in the Companion: the card receives focus only when the main window is already active.
-
Fixed false modified state when opening documents in editor: Monaco now preserves the UTF-8 BOM (
) and aligns initial baseline on load, preventing unjustified dirty indicators and "Save" button visibility on freshly opened files from the filetree or GUI links. -
Companion window remembers its configured size: previously widened upon every reopen. Dimensions were saved only upon pinning (including invisible resize borders that accumulated with each cycle), while pinning via the top bar button in the main window completely cleared saved dimensions back to 560x520. Window position and size now persist when closing the window and quitting the app, persisting upon reopen in both Spotlight and pinned modes.
-
The Companion no longer flashes while you answer a multi-question sequence in the main window. Attention state travels over
emit, which also delivers to the sender: the main window re-applied its own announcement and, since the JSON round-trip drops the empty fields thataskquestions carry, judged it different from the state it had just published. The result was a continuous bounce between the two windows: the card was redrawn dozens of times per second, the content jumped up and down and always fell back to the first question. Each window now discards its own announcements, and the comparison treats a missing field and an empty field as identical. -
Saving a task from the Companion is instant, first time included. The save used to wait for the full model load, which runs
omp models --json(about two seconds) for a list the task does not need: it now reads only the configured roles and the local catalog, while the full list of available models loads in the background when the window opens, where the!roleand!modelmentions need it.