Roadmap escluse su richiesta di vjt: #454 #442 #384 #383 #362 #311 #288 #261 #167 #108 #106 #102 #99 #65 #5 non compaiono qui.
Io propongo, non chiudo. Serve un OK, per bucket o per riga.
- 114 aperte al 2026-08-02.
- 140 chiuse negli ultimi 7 giorni (
closed:>=2026-07-26).
La coda non è stagnante: se ne chiudono venti al giorno. Quello che cresce è il tasso di apertura. Sfoltire migliora la leggibilità della lista, non libera capacità di lavoro. Vale la pena farlo lo stesso, ma senza aspettarsi che sblocchi qualcosa.
Tutte e otto dicono la stessa identica frase: verde in isolamento, rossa sotto full-gate load.
| # | spec |
|---|---|
| #277 | testnet nick-release race, issue195 _vjtReset beforeEach |
| #519 | ux-2-mobile-archive @webkit — sidebar membri si stacca a metà click |
| #520 | freshness-on-activation:71 — riga soppressa passa la premessa Fase 3 |
| #530 | nick-follow-query:48 — relabel NICK del peer |
| #531 | ux-6-a-mobile-members-scroll:108 @webkit — touch-action suspend |
| #534 | channel-directory.spec.ts:61 — GET /messages di troppo su #bofh |
| #539 | 3 timeout assert_receive in GrappaChannelTest |
| #639 | badge scroll-to-bottom #360 — tap 3 contro un re-render |
Proposta: un epic «la suite non è load-stable sotto full gate», le otto diventano righe di evidenza nel corpo e si chiudono come sintomi.
Da NON toccare, anche se sembrano dello stesso gruppo:
- #499 — singleton ETS globale di
NetworkCircuitche sanguina fra i test. Non è un sintomo, è una causa candidata: resta aperta e diventa il primo sospettato dell'epic. - #279 —
EventRouter.route/2emette{:umode_changed, [..]}malformato su un numeric 221 spazzatura. Il titolo dice "flake", ma è un bug vero. - #623 — meccanismo e2e (#581 recover-identity-real, l'IDENTIFY dopo RECOVER non completa). Non è un problema di carico.
- #79 (P0) la selezione testo non parte con la tastiera aperta
- #209 (P0) layout rotto con la tastiera su, PWA iPadOS
- #649 ritorno da app-switch: shell a mezza altezza, tastiera chiusa
Scrivono tutte sulla stessa variabile e lo stesso writer, installViewportHeightTracker. Consolidare è allineato al vincolo dichiarato il 02/08: «non facciamo strati su quel che c'è già, estendere non stratificare, che poi abbiamo consumer che vanno in conflitto». Un writer solo, più trigger.
Commit 4e6368e1 (2026-07-28, «release.yml(#504): install pacman-contrib + publish what built») chiude entrambi i difetti:
- difetto 1:
pacman-contribè nella lista pacchetti del job Arch (release.yml:239); - difetto 2:
publishhaneeds: [deb, arch, rpm]conif: !cancelled()e un commento che cita il difetto per nome (release.yml:617-627).
Prova end-to-end: nella run 30722035698 (v0.9.0, 01/08) il job build + prove Arch pkg è success e publish è success.
Il titolo dice «v0.8.0 pubblicata senza .rpm». Ho controllato gli asset:
v0.8.0 → default.SRCINFO, grappa-0.8.0-1-x86_64.pkg.tar.zst, grappa_0.8.0_amd64.deb, PKGBUILD
v0.9.0 → default.SRCINFO, grappa-0.9.0-1-x86_64.pkg.tar.zst, grappa_0.9.0_amd64.deb, PKGBUILD
Niente .rpm in nessuna delle due. Nella run 30722035698 il job build + prove .rpm (x86_64) è failure mentre publish è success — cioè il comportamento introdotto per #504 difetto 2 (pubblica quello che ha buildato) sta funzionando come progettato, e l'effetto collaterale è che due release di fila sono uscite senza rpm senza che nessuno lo notasse.
Qui c'è una decisione da prendere, non una chiusura: o l'rpm torna bloccante, o serve un segnale esplicito («release parziale») invece del silenzio.
Era «rimetti mix hex.audit come gate bloccante quando cowlib rilascia la patch». La patch è uscita: cowboy 2.18.0 / cowlib 2.19.0, già su hex. In origin/main il lock è ancora cowboy 2.17.0 / cowlib 2.18.0 e mix.exs:290 tiene hex.audit advisory-only.
Esposizione reale comunque nulla: cowboy entra solo via plug_cowboy ← bypass, che in mix.exs:256 è only: :test; in produzione gira Bandit. È igiene, non sicurezza.
| # | perché resta aperta |
|---|---|
| #165 | il pin BAHAMUT_REF non si può togliere: azzurra/bahamut#26 è ancora open |
| #103 | Dockerfile.release:23 è ancora FROM oven/bun:1-alpine, nessun digest |
| #515 | biome è passato a ^2.5.6 ma è sempre floating: il caret è il problema, non la versione |
| #516 | slashCommands.ts:92 ha ancora channel: string: la comma-list resta un type-lie |
- #343 — «/msg verso un canale è rifiutato». Il rifiuto è deliberato e commentato (
slashCommands.ts, rationale #12): senza il rifiutocompose.tsapre una query window fantasma con la chiave del canale, e cic si iscrive solo ai topic dei canali joinati. Per accontentare #343 va toccato il percorso di subscribe, non il parser. O si fa, o si chiude come by-design. - #83 (temi generati da AI) e #401 (traduzione client-side dei messaggi) — le uniche due della lista desideri che non hanno label
roadmap. Se non sono roadmap, o diventano lavoro o si chiudono. - #106 è roadmap quindi fuori lista, ma segnalo comunque:
/stte/dictateesistono già in shottino (e9b704e8,2a46a69f), mentre incicchetto/srcnon compare néSpeechRecognitionnéspeechSynthesis. La issue descrive uno stato che non è più quello reale.