Tunnetut yllätykset
Tähän tiedostoon kootaan tälle repolle ominaiset sekaannuskohdat, jotka ovat aiheuttaneet agenttien virheitä.
Merkinnän kriteerit
Lisää merkintä vain, jos kaikki seuraavat pitävät paikkansa:
- Se koskee nimenomaan tätä repoa (ei ole yleisluontoinen neuvo).
- Se toistuu todennäköisesti myös tulevilla agenteilla.
- Sille on olemassa konkreettinen ohje, jota voi seurata.
Jos olet epävarma, kysy kehittäjältä ennen merkinnän lisäämistä.
Merkinnän malli
### [Short title]
- **Date:** YYYY-MM-DD
- **Observed by:** agent name or contributor
- **Context:** where/when it happened
- **What was surprising:** concrete unexpected behavior
- **Impact:** what went wrong or could go wrong
- **Mitigation:** exact step future agents should take
- **Status:** confirmed | superseded
Merkinnät
Vercel-sovellusten tuotantodomainit voivat ajautua takaisin Gitin master-julkaisuihin
- Päivämäärä: 2026-04-28
- Havainnut: Tommaso + Codex
- Konteksti: Seedit- ja 5chan-sovelluspeilien tarkistaminen Bitsocial Webin sovellushakemistossa.
- Yllättävää oli: Vercel-projekteilla
seeditja5chanoli asetusgitProviderOptions.createDeployments = "enabled", joten GitHubinmaster-haaraan tehdyt pushit ylennettiin tuotantodomaineihin, vaikka repon linjaus edellyttää, että tuotannon sovelluspeilit tarjoavat vain julkaisuartefakteja. - Vaikutus: Sovellushakemiston varmennettujen peilien merkinnät voivat muuttua valheellisiksi, koska tuotantodomainit tarjoavat uusimman kehityscommitin sen sijaan, että ne tarjoaisivat GitHub-julkaisun ZIP-paketin, jonka
index.html-tiiviste on kirjattu tiedostoonabout/src/lib/apps-data.ts. - Ratkaisu: Ennen peilien varmennustietojen lisäämistä tai päivittämistä tarkista Vercel-projekti komennolla
vercel api /v9/projects/<project-id>ja varmista, ettägitProviderOptions.createDeployments = "disabled". Julkaise julkaisu-ZIP:n sisältö komennollavercel deploy --prebuilt --prodja käytä kehitysjulkaisuihin osoitteitaseedit-omega.vercel.apptai5chan-omega.vercel.app. - Tila: vahvistettu
Portless 0.11 käyttää uudelleen vanhaa välityspalvelintilaa, ellei käynnistin pakota HTTPS:ää
- Päivämäärä: 2026-04-28
- Havainnut: Tommaso + Codex
- Konteksti: Tavanomaisen
yarn start-kulun päivittäminen vanhasta välityspalvelinosoitteestahttp://bitsocial.localhost:1355osoitteeseenhttps://bitsocial.localhost. - Yllättävää oli: Vaikka
portless@0.11.1oli asennettuna, Portless käytti uudelleen olemassa olevaa HTTP-välityspalvelinta~/.portless/proxy.port = 1355ja tulosti vanhan:1355-osoitteen. - Vaikutus: Pakettiversioiden ja dokumentaation päivittäminen ei riitä;
yarn startvoi yhä mainostaa ja käyttää vanhaa osoitetta, jos kehittäjällä on käynnissä vanhaa Portless-tilaa. - Ratkaisu: Pidä käynnistysskriptit sellaisina, että ne käynnistävät Portlessin HTTPS-välityspalvelimen nimenomaisesti portissa
443ennen sovellusreittien rekisteröintiä, jotta ajonaikainen kulku siirtyy pois tallennetusta1355-tilasta sen sijaan, että perisi sen. - Tila: vahvistettu
Portless muuttaa paikallisen sovelluksen kanonisen osoitteen
- Päivämäärä: 2026-03-18
- Havainnut: Codex
- Konteksti: Selaintarkistukset ja savutestikulut
- Yllättävää oli: Oletusarvoinen paikallinen osoite ei ole tavanomainen Vite-portti. Repo odottaa osoitetta
https://bitsocial.localhostPortlessin kautta, joten osoitteidenlocalhost:3000tailocalhost:5173tarkistaminen voi osua väärään sovellukseen tai ei mihinkään. - Vaikutus: Selaintarkistukset voivat epäonnistua tai kohdistua väärään kohteeseen, vaikka kehityspalvelin toimisi moitteettomasti.
- Ratkaisu: Käytä osoitetta
https://bitsocial.localhostensisijaisesti. Ohita se komennollaPORTLESS=0 corepack yarn startvain, kun tarvitset nimenomaisesti suoraa Vite-porttia. - Tila: vahvistettu
Commitizen-koukut estävät ei-interaktiiviset commitit
- Päivämäärä: 2026-03-18
- Havainnut: Codex
- Konteksti: Agenttivetoiset commit-työnkulut
- Yllättävää oli:
git commitkäynnistää Commitizenin Huskyn kautta ja jää odottamaan interaktiivista TTY-syötettä, mikä jumittaa ei-interaktiiviset agenttikuoret. - Vaikutus: Agentit voivat jäädä jumiin loputtomiin sen aikana, minkä pitäisi olla tavallinen commit.
- Ratkaisu: Käytä agenttien tekemiin commiteihin komentoa
git commit --no-verify -m "message". Ihmiset voivat edelleen käyttää komentojacorepack yarn committaicorepack yarn exec cz. - Tila: vahvistettu
Corepack on välttämätön, jotta vältetään Yarn classic
- Päivämäärä: 2026-03-19
- Havainnut: Codex
- Konteksti: Paketinhallinnan siirtyminen Yarn 4:ään
- Yllättävää oli: Koneella on edelleen globaali Yarn classic -asennus polussa
PATH, joten pelkkäyarnvoi viitata versioon 1 kiinnitetyn Yarn 4:n sijaan. - Vaikutus: Kehittäjät voivat vahingossa ohittaa repon paketinhallinnan kiinnityksen ja saada erilaisen asennuskäyttäytymisen tai poikkeavan lukkotiedoston.
- Ratkaisu: Käytä komentotulkissa muotoa
corepack yarn ...tai aja ensincorepack enable, jolloin pelkkäyarnviittaa kiinnitettyyn Yarn 4 -versioon. - Tila: vahvistettu
Kiinteät Portless-sovellusnimet törmäävät Bitsocial Webin worktreiden välillä
- Päivämäärä: 2026-03-30
- Havainnut: Codex
- Konteksti:
yarn start-komennon ajaminen yhdessä Bitsocial Web -worktreessä, kun toinen worktree jo tarjosi sivustoa Portlessin kautta - Yllättävää oli: Kirjaimellisen Portless-sovellusnimen
bitsocialkäyttäminen joka worktreessä saa itse reitin törmäämään, vaikka taustaportit olisivat eri, joten toinen prosessi epäonnistuu, koskabitsocial.localhoston jo rekisteröity. - Vaikutus: Rinnakkaiset Bitsocial Web -haarat voivat estää toisiaan, vaikka Portlessin on tarkoitus antaa niiden toimia turvallisesti rinnakkain.
- Ratkaisu: Pidä Portlessin käynnistys tiedoston
scripts/start-dev.mjstakana. Se käyttää nyt haarakohtaista*.bitsocial.localhost-reittiä kanonisen tapauksen ulkopuolella ja siirtyy haarakohtaiseen reittiin, kun paljas nimibitsocial.localhoston jo varattu. - Tila: vahvistettu
Dokumentaation esikatselu kovakoodasi aiemmin portin 3001
- Päivämäärä: 2026-03-30
- Havainnut: Codex
- Konteksti:
yarn start-komennon ajaminen muiden paikallisten repojen ja agenttien rinnalla - Yllättävää oli: Juuritason kehityskomento ajoi dokumentaatiotyötilaa komennolla
docusaurus start --port 3001, joten koko kehitysistunto epäonnistui aina, kun jokin toinen prosessi omisti jo portin3001— vaikka pääsovellus käytti jo Portlessia. - Vaikutus:
yarn startsaattoi lopettaa web-prosessin heti sen käynnistyttyä ja keskeyttää muuta paikallista työtä pelkän dokumentaatioportin törmäyksen takia. - Ratkaisu: Pidä dokumentaation käynnistys komennon
yarn start:docstakana. Se käyttää nyt Portlessia ja tiedostoascripts/start-docs.mjs, joka huomioi sille annetun vapaan portin tai siirtyy seuraavaan vapaaseen porttiin, kun se ajetaan suoraan. - Tila: vahvistettu
Dokumentaation Portless-isäntänimi oli kovakoodattu
- Päivämäärä: 2026-04-03
- Havainnut: Codex
- Konteksti:
yarn start-komennon ajaminen toissijaisessa Bitsocial Web -worktreessä, kun toinen worktree jo tarjosi dokumentaatiota Portlessin kautta - Yllättävää oli:
start:docsrekisteröi edelleen kirjaimellisen isäntänimendocs.bitsocial.localhost, jotenyarn startsaattoi epäonnistua, vaikka about-sovellus osasi jo välttää Portless-reittien törmäykset oman isäntänimensä osalta. - Vaikutus: Rinnakkaiset worktreet eivät voineet luotettavasti käyttää juuritason kehityskomentoa, koska dokumentaatioprosessi päättyi ensin ja
concurrentlylopetti sen jälkeen loput istunnosta. - Ratkaisu: Pidä dokumentaation käynnistys tiedoston
scripts/start-docs.mjstakana. Se johtaa nyt saman haarakohtaisen Portless-isäntänimen kuin about-sovellus ja syöttää tämän jaetun julkisen osoitteen/docs-kehitysvälityspalvelimen kohteeksi. - Tila: vahvistettu
Worktreen komentotulkeilta voi jäädä huomaamatta repon kiinnitetty Node-versio
- Päivämäärä: 2026-04-03
- Havainnut: Codex
- Konteksti:
yarn start-komennon ajaminen Git-worktreissä, kuten.claude/worktrees/*tai sisarhakemistoihin luoduissa worktree-kopioissa - Yllättävää oli: Osa worktree-komentotulkeista ratkaisi komennot
nodejayarn nodeHomebrew'n Node-versioon25.2.1, vaikka repo kiinnittää version22.12.0tiedostossa.nvmrc. Näinyarn startsaattoi ajaa kehityskäynnistimet huomaamatta väärällä ajoympäristöllä. - Vaikutus: Kehityspalvelimen käyttäytyminen voi poiketa pääkopion ja worktreiden välillä, mikä vaikeuttaa vikojen toistamista ja rikkoo repon oletetun Node 22 -työkaluketjun.
- Ratkaisu: Pidä kehityskäynnistimet tiedostojen
scripts/start-dev.mjsjascripts/start-docs.mjstakana. Ne käynnistävät itsensä nyt uudelleen.nvmrc-tiedoston mukaisella Node-binäärillä, kun nykyinen komentotulkki on väärässä versiossa. Komentotulkin asetuksissa kannattaa silti suosia komentoanvm use. - Tila: vahvistettu
docs-site/-jäänteet voivat peittää puuttuvan dokumentaatiolähteen refaktoroinnin jälkeen
- Päivämäärä: 2026-04-01
- Havainnut: Codex
- Konteksti: Monorepon siivous yhdistämisen jälkeen, kun Docusaurus-projekti siirrettiin hakemistosta
docs-site/hakemistoondocs/ - Yllättävää oli: Vanha
docs-site/-kansio voi jäädä levylle mukanaan vanhentuneita mutta tärkeitä tiedostoja, kuteni18n/, vaikka versioitu repo on siirtynyt hakemistoondocs/. Se saa refaktoroinnin näyttämään paikallisesti kahdennetulta ja voi peittää sen, ettei versioituja dokumentaation käännöksiä koskaan siirretty hakemistoondocs/. - Vaikutus: Agentit voivat poistaa vanhan kansion "roskana" ja menettää vahingossa ainoan paikallisen kopion dokumentaation käännöksistä, tai jatkaa sellaisten skriptien muokkaamista, jotka osoittavat yhä kuolleeseen
docs-site/-polkuun. - Ratkaisu: Kohtele hakemistoa
docs/ainoana kanonisena dokumentaatioprojektina. Ennen paikallistendocs-site/-jäänteiden poistamista palauta versioitu lähde, kutendocs/i18n/, ja päivitä skriptit ja koukut niin, etteivät ne enää viittaa hakemistoondocs-site. - Tila: vahvistettu
Monikielinen dokumentaation esikatselu voi kasvattaa muistinkulutusta varmistuksen aikana
- Päivämäärä: 2026-04-01
- Havainnut: Codex
- Konteksti: Dokumentaation i18n:n, kieliversioreitityksen ja Pagefindin käyttäytymisen korjaaminen komennolla
yarn start:docssekä Playwrightilla - Yllättävää oli: Dokumentaation esikatselun oletustila tekee nykyään täyden monikielisen koonnin ja Pagefind-indeksoinnin ennen tarjoilua, ja tuon prosessin pitäminen käynnissä usean Playwright- tai Chrome-istunnon rinnalla voi kuluttaa selvästi enemmän muistia kuin tavallinen Vite- tai yhden kieliversion Docusaurus-kehityssilmukka.
- Vaikutus: Kone voi käydä muistista tiukille, selainistunnot voivat kaatua, ja keskeytyneet ajot voivat jättää jälkeensä vanhentuneita dokumentaatiopalvelimia tai headless-selaimia, jotka jatkavat muistin kuluttamista.
- Ratkaisu: Kun dokumentaatiotyö ei vaadi kieliversioreittien tai Pagefindin tarkistamista, suosi komentoa
DOCS_START_MODE=live yarn start:docs. Käytä oletusarvoista monikielistä esikatselua vain, kun sinun täytyy validoida käännettyjä reittejä tai Pagefindia. Pidä käynnissä yksi Playwright-istunto, sulje vanhat selainistunnot ennen uusien avaamista ja pysäytä dokumentaatiopalvelin varmistuksen jälkeen, jos et enää tarvitse sitä. - Tila: vahvistettu
translate-docs.py voi jättää dokumentaation kieliversiot puolittain käännetyiksi tai rikkoa linkkien kohteita
- Päivämäärä: 2026-04-06
- Havainnut: Codex
- Konteksti: Käännettyjen dokumentaatioreittien ja sisällön korjaaminen sen jälkeen, kun
yarn start:docstarjosi englanninkielisiä yksityiskohtasivuja tai kieliversioiden koonti epäonnistui - Yllättävää oli: Dokumentaation käännösputkessa oli kaksi repokohtaista vikatilaa yhtä aikaa:
scripts/translate-docs.pypoimi vain pienen osanDocsHome-viesteistä, kuntr(...)-kutsut käyttivät muotoja joita se ei osannut jäsentää, ja hakemistondocs/i18n/**käännetty markdown saattoi sisältää konekäännettyjä slugeja taiZXQPLACEHOLDER-jäänteitä linkkien kohteissa. - Vaikutus: Käännetyt etusivut voivat hiljaisesti pudota takaisin englantiin, käännetyt yksityiskohtasivut voivat näyttää kääntämättömiltä, ja koko
yarn docs:buildvoi kaatua rikkinäisiin kieliversiolinkkeihin, vaikka lähdedokumentaatio olisi kunnossa. - Ratkaisu: Aja dokumentaation käännösten muuttamisen tai kieliversiotiedostojen uudelleenluonnin jälkeen aina
yarn docs:buildrepon juuresta, käy hakemistondocs/i18n/**markdown läpiZXQPLACEHOLDER-jäänteiden varalta ja varmista, että käännetyt linkit osoittavat edelleen kanonisiin dokumentaatioslugeihin, kuten/apps/5chan/, eivätkä käännettyihin URL-polkuihin. JosDocsHome-tekstit muuttuivat, varmista ettäscripts/translate-docs.pypoimii yhä kaikkidocs.home.*-viestit. - Tila: vahvistettu
About-sivuston no-JS-tarkistukset on tehtävä Portless-reitin kautta, ei erillisellä SSR-esikatselulla
- Päivämäärä: 2026-04-12
- Havainnut: Codex
- Konteksti:
about/-sivuston no-JS-tuen tarkistaminen haaran worktreestä - Yllättävää oli: Erillinen SSR-esikatselu voi näyttää terveeltä, vaikka varsinainen haarakohtainen Portless-reitti tarjoaisi yhä väärää sovelluskuorta tai vanhempaa prosessia. Tässä repossa todellinen paikallinen sopimus on
yarn start-komennon Portless-isäntänimi, ei tilapäinen esikatselupalvelin. - Vaikutus: Agentit voivat virheellisesti väittää no-JS-tuen toimivan tai jättää huomaamatta regressioita, jotka näkyvät vain osoitteessa
*.bitsocial.localhost. - Ratkaisu: Käynnistä
about/-sivuston selaintarkistuksia varten aina todellinen paikallinen palvelin komennollayarn starttaiyarn start:aboutja testaa ensin haarakohtaista Portless-osoitetta. Jos Portless-isäntänimi vaikuttaa vanhentuneelta, tutki ja pysäytä vanha prosessi ennen uudelleentestausta. - Tila: vahvistettu
chain/ jäi näkymättömiin komennoilta yarn build:verify ja yarn doctor
- Päivämäärä: 2026-07-05
- Havainnut: Codex
- Konteksti: Pelkkää chain/-hakemistoa koskevan muutoksen tarkistaminen sen jälkeen, kun
chain/-työtila (itsenäinen Vite-sovellus osoitteellechain.bitsocial.net) lisättiin monorepoon. - Yllättävää oli:
scripts/verify-build.mjstunnisti vain polkuetuliitteetabout/,docs/jastats/, joten pelkkä chain/-muutos tulosti "No targeted build checks matched the current diff" eikä ajanut lainkaan koontia, vaikkabuild:chainoli jo olemassa juuritason tiedostossapackage.json. Tästä erilläänyarn doctoroli kovakoodattu muotoonreact-doctor about -y, joten hakemistonchain/srcReact-muutokset jäivät täysin React Doctorin katveeseen. - Vaikutus: Chain-muutoksia tarkistavien agenttien piti tietää kutsua suoraan komentoa
yarn build:chainsen sijaan, että olisivat luottaneet komentoonyarn build:verify, ja hakemistonchain/srcReact-ongelmat (efektit, hookit, kuollut koodi) jäivät komennoltayarn doctorhuomaamatta. - Ratkaisu: Tiedostossa
scripts/verify-build.mjson nytchain/-haara, joka vastaaabout/-haaraa, jadoctorsekädoctor:verboseajavat nyt yhdellä kutsulla komennonreact-doctor --project about,chain -y.doctor:scorekoskee edelleen vain projektiaabout, koska--scoretulostaa hiljaisesti tyhjää, kun se yhdistetään useampaan projektiin viittaavaan--project-valintaan; käytä komentoayarn react-doctor --project about,chain --verbose -y(tai--json), jos tarvitset chainin pistemäärän. - Tila: vahvistettu
Selain-P2P toimii suojattujen WebSocket-yhteyksien varassa; pkc-js estää oletuksena WebRTC:n ja WebTransportin
- Päivämäärä: 2026-08-02
- Havainnut: Claude
- Konteksti: Laskeutumissivun ja dokumentaation tekstien kirjoittaminen siitä, miten Bitsocialin selain-P2P toimii
- Yllättävää oli:
@pkcprotocol/pkc-jssisältää oletusarvoisen yhteyksien portinvartijan, joka hylkää WebRTC- ja WebTransport-yhteydenotot selaimessa —dist/browser/helia/dial-transport-filter.jsvie ulos arvonDENIED_DIAL_TRANSPORTS_BY_DEFAULT = ["webrtc", "webrtc-direct", "webtransport"]. Lähdekoodin kommentti kertoo syyn: selaimessa nuo siirtotavat lisäävät pitkiä ja usein epäonnistuvia yhteydenmuodostuspolkuja (STUN/ICE, certhash-rotaatio), jotka hidastavat latauksia, kun taas WebSocket on suora ja luotettava. Jokainen elävä vertainen blogin P2P-tilapaneelissa näyttää merkinnän "Secure WebSocket". Portinvartija sijaitsee hakemistossanode_modules, joten mikään repossa ei vihjaa sen olemassaolosta. - Vaikutus: On hyvin helppoa kirjoittaa teknisesti uskottavaa mutta virheellistä julkista tekstiä — esimerkiksi antaa Bitsocialin selain-P2P:n mahdollistamisesta kunnia sille, että WebTransport saavutti selainten Baseline-tason maaliskuussa 2026. Tuo väite ehti laskeutumissivulle, vertailutaulukkoon ja kahdelle dokumentaatiosivulle ennen kuin kehittäjä huomasi sen. Julkisilla sivuilla olevat virheelliset arkkitehtuuriväitteet tarkistaa juuri se kehittäjäyleisö, jolle sivusto on suunnattu.
- Ratkaisu: Älä koskaan päättele Bitsocialin käyttämiä siirtotapoja siitä, mitä libp2p tai selainalusta periaatteessa tukee. Tarkista nykyinen estolista tiedostosta
node_modules/@pkcprotocol/pkc-js/dist/browser/helia/dial-transport-filter.js, varmista ettei hakemistossaabout/src/oleconnectionGater-ohitusta, ja lue blogin "P2P status" -paneelin elävät siirtotapamerkinnät ennen kuin esität julkisia väitteitä. Ylävirran muutos, joka tosiasiassa avasi selainjulkaisun, oli gossipsubin monotonisen seqnon korjaus paketissa@libp2p/gossipsub15.0.21 (toukokuu 2026); pkc-js sisältää tällä hetkellä version 16.0.4. - Tila: vahvistettu
Suhteelliset ./page.md-linkit kääntämättömältä dokumentaatiosivulta rikkovat jokaisen käännetyn koonnin
- Päivämäärä: 2026-08-02
- Havainnut: Claude
- Konteksti: Uuden, vain englanninkielisen sivun
docs/browser-p2p.mdlisääminen; se linkitti olemassa oleviin dokumentteihin muodoilla./peer-to-peer-protocol.mdja./apps/5chan.md - Yllättävää oli: Jokainen kieliversio hakemistossa
docs/i18n/<lang>/docusaurus-plugin-content-docs/current/peilaa dokumentaatiopuun. Uusi sivu, jota noissa peileissä ei ole, näkyy silti jokaisessa kieliversiossa englanninkielisenä varasisältönä, mutta sen suhteelliset markdown-linkit eivät enää ratkea — Docusaurus tuottaa polun/ar/browser-p2p/peer-to-peer-protocol.md/ja kaataa koonnin virheeseen "Docusaurus found broken links!". Olennaista on, ettäyarn build:verifyjayarn docs:build:verifykokoavat vain kieliversionenja menevät puhtaasti läpi; vain täysiyarn docs:buildpaljastaa ongelman, ja se keskeytyy aakkosjärjestyksessä ensimmäiseen kieliversioon (ar). - Vaikutus: Dokumentaatiomuutos voi läpäistä kaikki nopeat paikalliset tarkistukset ja rikkoa silti monikielisen tuotantokoonnin. Virhe näyttää myös liittymättömältä muutokseen, koska virheilmoitus mainitsee kieliversiopolun, johon tekijä ei ole koskenut.
- Ratkaisu: Käytä jokaisella dokumentaatiosivulla, jota ei ole peilattu hakemistoon
docs/i18n/**, juuritason linkkejä (/peer-to-peer-protocol/,/apps/5chan/) suhteellisten.md-linkkien sijaan; Docusaurus lisää niihin kieliversioetuliitteen automaattisesti.docs/build-your-own-client.mdon tästä olemassa oleva esimerkki. Aja täysiyarn docs:build— ei pelkkäbuild:verify— ennen kuin luovutat muutoksen, joka lisää dokumentaatiosivun tai linkittää siihen. - Tila: vahvistettu
update-translations.js on ajettava hakemistosta about/, ja rinnakkaiset ajot hukkaavat avaimia hiljaisesti
- Päivämäärä: 2026-08-02
- Havainnut: Claude
- Konteksti: 26 käännetyn i18next-avaimen vieminen kaikkiin 36 kieliversioon
translate-taidon avulla - Yllättävää oli: Samassa skriptissä on kaksi erillistä ansaa. Ensinnäkin
scripts/update-translations.jsratkaisee kohteensa muodossapath.join(process.cwd(), "public", "translations"), mutta tässä repossa käännökset sijaitsevat hakemistossaabout/public/translations. Dokumentoidun komennon ajaminen repon juuresta epäonnistuu joka kerta virheeseen "Translations directory not found" —docs/agent-playbooks/translations.mdnäyttää muodonnode scripts/update-translations.js ..., joka luetaan repon juuren komennoksi. Toiseksi jokainen ajo on luku-muokkaus-kirjoitus kaikkien 36 kieliversiotiedoston yli, joten kaksi samanaikaista ajoa ylikirjoittavat toisensa ja yksi avain katoaa ilman virheilmoitusta.translate-taito ohjeistaa nimenomaisesti käynnistämään jopa neljä aliagenttia rinnakkain, ja jokainen niistä kutsuisi tätä skriptiä. - Vaikutus: Repon juuresta ajettu muoto epäonnistuu näkyvästi ja hukkaa kokonaisen kierroksen. Rinnakkaisuusongelma epäonnistuu hiljaisesti: avaimia katoaa satunnaisista kieliversioista, ja diff näyttää silti uskottavalta.
- Ratkaisu: Aja se muodossa
cd about && node ../scripts/update-translations.js --key <key> --map <abs-path> --write. Älä koskaan anna kääntäjä-aliagenttien kirjoittaa kieliversiotiedostoja rinnakkain — anna niiden tuottaa vain sanakirja-JSON-tiedostoja ja vie sitten jokainen avain sarjassa pääagentista. Varmista viennin jälkeen ohjelmallisesti, että jokainen avain löytyy kaikista 35 ei-englanninkielisestä kieliversiosta eikä yksikään arvo ole tavulleen identtinen englanninkielisen lähteen kanssa. - Tila: vahvistettu