- Spegnimento
- 7 agosto 2026 alle ore 02:41 UTC
- Autore
- kamo
- Impegno
- 80bc041
Aprire... Condividi su Google "Stato sconosciuto: Per ogni membro. listMyAssignments ha inviato l'intero secchio come un valore CSV. Una virgola in una query VALUE deve viaggiare come %2C e APIService — il gateway condiviso ogni /api/docs/** call crosss — concatena l'URI già codificato e la query in un semplice String e le mani che String a RestTemplate.exchange. RestTemplate tratta un URL di stringa come URI TEMPLATE e per cento lo codifica un tempo SECOND: %2C è diventato %252C. DocsService decodificato una volta, ottenuto il %2C letterale indietro, e parseStatuses diviso su una virgola che non c'era più — così l'intero secchio ha fallito valoreOf come uno token run-together. La porta non è volutamente toccata. Porta /api/docs/**, /api/security/** e ogni altro servizio; cambiare la sua codifica cambierebbe semantica per ogni chiamante sulla piattaforma subito, e chiamanti che passano crudo personaggi riservati sopravvivono solo a causa di quel re-encode. Scritto per E' stato un piacere. (gitignored). Il carattere riservato esce dal filo invece: - statusCsvFor -> stati Per, restituire la stringa[] piuttosto che un CSV unito. La forma CSV aveva esattamente un chiamante, quindi entrambe le forme non valevano la pena di tenere. - listMyAssignments aggiunge un `status` param per valore. Una stringa CSV tramandata da qualsiasi futuro chiamante è SPLIT qui piuttosto che passare attraverso, quindi la vecchia forma non può tornare silenziosamente. I nomi di stato sono solo [A-Z ], che rende il La seconda porta codifica un no-op su di loro. - Il contratto del percorso proxy è scritto: mergeForwardedQuery aggiunge coppia per coppia, così ripeti sopravvivere, e non deve mai crollare di nuovo in un CSV. apiProxyQuery.test.ts ora spills che — chiavi iterating invece di coppie sarebbe silenziosamente ri-rompere questa pagina. I test affermano l'URL che effettivamente lascia il browser: param ripetuti, no '%' ovunque nella query, una divisione CSV piuttosto che inoltrata, il singolo-status EXECUTION INCOMPLETE sonda invariata, i token vuoti sono calati e ogni stato questo l'app può inviare sopravvivere a un giro. DocsService accetta entrambe le forme attraverso una regola parseStatuses (vedi il suo commit di corrispondenza), quindi URL contrassegnati da segnalibri e la griglia HR status=EXECUTED non sono interessati. tsc --noEmit clean; 873 test, 0 guasti; successiva costruzione riesce.