- Spegnimento
- 19 agosto 2026 alle ore 08:10 UTC
- Autore
- kamo
- Impegno
- 13c7bf4
I quattro schermi della base di conoscenza sono stati l'ultimo nell'app ancora indossando il vecchio Guarda, e tre di loro hanno dichiarato cose che non erano vere. /kb ha mostrato "Pinned Articles" da un endpoint che ha inviato righe pin con il articolo spogliato da @JsonIgnore — la sezione non è mai apparso per Chiunque. Sotto di esso, "Recent Articles" è stato il primo dieci nodi dell'articolo albero, in ordine albero, ciascuno timbrato PUBBLICATO con una data vuota: né recente né necessariamente pubblicato. L'albero accanto a loro è crollato su ogni navigazione, perché ogni ramo ha mantenuto il proprio usoState. Un'idea porta la ricostruzione: IL RAIL è IL FILTER. Il conteggio di una tegola e il lista si apre entrambi provengono da partiteFilter nel modello, quindi una lettura piastrelle 4 apre esattamente quelle 4. Non c'è una seconda fila di chip che ribadisce la stessa predica in parole diverse, in attesa di disaccordo. Intorno a esso: ricerca che match titolo, indirizzo e corpo e segni che ha colpito (la vecchia scatola debounced 500ms chiedere a un server che ha cercato il contenutoPlainText solo, quindi digitando il titolo esatto di un articolo non ha restituito nulla), un albero che ricorda quello che si aperto e può essere ridimensionato, faccia su ogni scheda dalla directory membro, e a Needs Attenzione pannello — recensioni che hanno aspettato, bozze andato tranquillo, pubblicato articoli che nessuno ha toccato in un quarto. /kb/resources è stato un dialogo modale reso piatto su un percorso, con open={true} e un onClose che ha navigato via. È una biblioteca ora: una rotaia che pesa quello che l'organizzazione sta memorizzando e raddoppia come il filtro tipo, piastrelle con facce reali per video e file piuttosto che una griglia di scatole grigie identiche, drop-anywhere upload with real per-file progress (fetch non può segnalare progresso, quindi un video 40MB sembrava esattamente un'icona 4KB), e rinominando posto invece di un modale lanciato da un piè di pagina. L'inserto-media dell'editor picker è ora le stesse piastrelle, lo stesso pannello di dettaglio e lo stesso usoKbMedia gancio in una finestra di dialogo — un kit, due superfici, in modo che non possono derivare. /kb/reviews era una lista di titoli. Un recensore poteva vedere che quattro cose erano aspettare e nient'altro — non chi li ha scritti, non quanto tempo si erano seduti là, non quello che hanno detto — e decidere significa aprire ogni articolo, scorrere a un pannello in basso, e tornare indietro. Peggio di tutti un fetch fallito reso come "Nessun articolo in attesa di revisione": la coda si è rivelata chiara su una giorno potrebbe non essere stato. Ora la coda porta l'età di ogni articolo, e dimensione; l'articolo siede accanto a esso; e i pulsanti verdetto sono accanto a quello si applicano a. /kb/new era una forma che non ha detto nulla a un autore. Il campo slug ha detto "Auto-generato dal titolo" e quindi consente di salvare un slug il server rifiuta con un 400 dopo l'articolo è scritto. Le opzioni rientrate del genitore con due spazi, che l'HTML crolla, così ogni opzione sembrava di alto livello. E tutte e tre le caselle di visibilità potrebbero essere spuntate con l'allenamento AI lasciato fuori, che silenziosamente significa che nessuno lo vede da nessuna parte. Il compositore risponde a questi tre domande prima del lavoro piuttosto che dopo il rifiuto, e offre Save progetto accanto Crea e invia. Fissati lungo la strada, tutti loro visibili: - KbStatusBadge ha spedito quattro parole in inglese hardcoded e quattro hex hardcoded coppie — una console spagnola ha detto "Draft" in una tavolozza grigio no white-label potrebbe muoversi. - KbPinButton catturato èPinned una volta, quindi una pagina che impara il suo stato pin dopo il primo render (ogni pagina qui) ha mostrato un perno sagomato sopra un pinned articolo per sempre; una richiesta fallita ha lasciato il set di ricerca pin. - L'articolo legge l'articolo. incriminato, un campo KbArticolo non ha. - mediaId è stato dichiarato numero attraverso i quattro tipi di nodo editor e estrarreMediaIdsFromJson, mentre KB MEDIA.UID è un UUID e i valori hanno sono sempre state stringhe. È sopravvissuta solo perché nulla ha mai fatto aritmetica su uno; un singolo Numero(mediaId) sarebbe stato un NaN silenzioso. - KbMediaResource.uid aveva la stessa bugia. - Le richieste dei media hanno corso: una risposta di ricerca anticipata lenta potrebbe atterrare dopo un veloce più tardi uno e riverniciare la griglia per una query nessuno stava guardando. Le regole pure vivono in app/lib/kbConsole.ts e app/lib/kbMedia.ts con 52 test, perché vitest qui raccoglie solo .test.ts — una regola scritta all'interno di una .tsx è una regola senza test. Che cosa codificano in tutto: un sconosciuto non è mai a zero. Una data mancante dura piuttosto che diventare l'epoca, un le vernici di stato non riconosciute neutre piuttosto che verde, una coda vuota non ha elemento più vecchio piuttosto che uno zero-day e una risorsa il cui uso conta mai arrivato avverte invece di promettere che è inutilizzato.