Kjente overraskelser
Denne filen holder oversikt over repo-spesifikke forvirringspunkter som har ført til agentfeil.
Kriterier for oppføring
Legg bare til en oppføring hvis alt dette stemmer:
- Den er spesifikk for dette repoet (ikke generelle råd).
- Den vil sannsynligvis dukke opp igjen for framtidige agenter.
- Den har et konkret tiltak som lar seg følge.
Er du i tvil, spør utvikleren før du legger til en oppføring.
Mal for oppføring
### [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
Oppføringer
Produksjonsdomener for Vercel-apper kan drive tilbake til deployer fra Git master
- Dato: 2026-04-28
- Observert av: Tommaso + Codex
- Kontekst: Verifisering av appspeilene for Seedit og 5chan i appkatalogen på Bitsocial Web.
- Det overraskende: Vercel-prosjektene
seeditog5chanhaddegitProviderOptions.createDeployments = "enabled", så push tilmasterpå GitHub ble forfremmet til produksjonsdomenene, selv om repo-policyen forventer at appspeil i produksjon utelukkende serverer utgivelsesartefakter. - Konsekvens: Merkene for verifiserte speil i appkatalogen kan bli usanne, fordi produksjonsdomenene serverer siste utviklingscommit i stedet for GitHub-utgivelsens ZIP, der hashen til
index.htmler registrert iabout/src/lib/apps-data.ts. - Tiltak: Før du legger til eller oppdaterer metadata for speilverifisering, sjekk Vercel-prosjektet med
vercel api /v9/projects/<project-id>og bekreft atgitProviderOptions.createDeployments = "disabled". Deploy innholdet i utgivelses-ZIP-en medvercel deploy --prebuilt --prod, og brukseedit-omega.vercel.appeller5chan-omega.vercel.apptil utviklingsdeployer. - Status: confirmed
Portless 0.11 gjenbruker gammel proxy-tilstand med mindre starteren tvinger fram HTTPS
- Dato: 2026-04-28
- Observert av: Tommaso + Codex
- Kontekst: Oppgradering av den vanlige
yarn start-flyten fra den gamle proxy-URL-enhttp://bitsocial.localhost:1355tilhttps://bitsocial.localhost. - Det overraskende: Selv med
portless@0.11.1installert gjenbrukte Portless den eksisterende HTTP-proxyen fra~/.portless/proxy.port = 1355og skrev ut den gamle:1355-URL-en. - Konsekvens: Det holder ikke å oppdatere pakkeversjoner og dokumentasjon;
yarn startkan fortsatt annonsere og bruke den gamle URL-en når en bidragsyter har gammel Portless-tilstand kjørende. - Tiltak: Sørg for at oppstartsskriptene uttrykkelig starter Portless sin HTTPS-proxy på port
443før apprutene registreres, slik at kjøreflyten migrerer bort fra lagret1355-tilstand i stedet for å arve den. - Status: confirmed
Portless endrer den kanoniske lokale app-URL-en
- Dato: 2026-03-18
- Observert av: Codex
- Kontekst: Nettleserverifisering og røyktester
- Det overraskende: Standard lokal URL er ikke den vanlige Vite-porten. Repoet forventer
https://bitsocial.localhostvia Portless, så å sjekkelocalhost:3000ellerlocalhost:5173kan treffe feil app, eller ingenting i det hele tatt. - Konsekvens: Nettlesersjekker kan feile eller validere feil mål selv når dev-serveren er sunn.
- Tiltak: Bruk
https://bitsocial.localhostførst. Omgå den bare medPORTLESS=0 corepack yarn startnår du uttrykkelig trenger en direkte Vite-port. - Status: confirmed
Commitizen-hooks blokkerer ikke-interaktive commits
- Dato: 2026-03-18
- Observert av: Codex
- Kontekst: Agentdrevne commit-arbeidsflyter
- Det overraskende:
git commitutløser Commitizen via Husky og venter på interaktiv TTY-inndata, noe som henger i ikke-interaktive agentskall. - Konsekvens: Agenter kan stoppe opp på ubestemt tid under det som skulle vært en helt vanlig commit.
- Tiltak: Bruk
git commit --no-verify -m "message"for commits laget av agenter. Mennesker kan fortsatt brukecorepack yarn commitellercorepack yarn exec cz. - Status: confirmed
Corepack er nødvendig for å unngå Yarn classic
- Dato: 2026-03-19
- Observert av: Codex
- Kontekst: Migrering av pakkebehandler til Yarn 4
- Det overraskende: Maskinen har fortsatt en global installasjon av Yarn classic på
PATH, så det å kjøreyarnuten videre kan treffe v1 i stedet for den pinnede Yarn 4-versjonen. - Konsekvens: Utviklere kan ved et uhell omgå repoets pinning av pakkebehandler og få annen installasjonsatferd eller andre lockfile-utdata.
- Tiltak: Bruk
corepack yarn ...i skallkommandoer, eller kjørcorepack enableførst slik atyarnuten videre treffer den pinnede Yarn 4-versjonen. - Status: confirmed
Faste Portless-appnavn kolliderer på tvers av Bitsocial Web-worktrees
- Dato: 2026-03-30
- Observert av: Codex
- Kontekst: Kjøring av
yarn starti én Bitsocial Web-worktree mens en annen worktree allerede serverte via Portless - Det overraskende: Å bruke det bokstavelige Portless-appnavnet
bitsociali hver worktree gjør at selve ruten kolliderer, selv når de bakenforliggende portene er forskjellige, så den andre prosessen feiler fordibitsocial.localhostallerede er registrert. - Konsekvens: Parallelle Bitsocial Web-brancher kan blokkere hverandre, selv om Portless er ment å la dem sameksistere trygt.
- Tiltak: Hold Portless-oppstarten bak
scripts/start-dev.mjs, som nå bruker en branch-basert*.bitsocial.localhost-rute utenfor det kanoniske tilfellet, og som faller tilbake til en branch-basert rute når det nakne navnetbitsocial.localhostallerede er opptatt. - Status: confirmed
Forhåndsvisningen av dokumentasjonen hardkodet tidligere port 3001
- Dato: 2026-03-30
- Observert av: Codex
- Kontekst: Kjøring av
yarn startsamtidig med andre lokale repoer og agenter - Det overraskende: Dev-kommandoen på rotnivå kjørte docs-workspacet med
docusaurus start --port 3001, så hele dev-økten feilet så snart en annen prosess allerede eide3001, selv om hovedappen allerede brukte Portless. - Konsekvens:
yarn startkunne drepe web-prosessen rett etter oppstart og avbryte urelatert lokalt arbeid på grunn av en portkollisjon i dokumentasjonen. - Tiltak: Hold docs-oppstarten bak
yarn start:docs, som nå bruker Portless plussscripts/start-docs.mjsfor å respektere en injisert ledig port, eller falle tilbake til neste ledige port når den kjøres direkte. - Status: confirmed
Portless-vertsnavnet for dokumentasjonen var hardkodet
- Dato: 2026-04-03
- Observert av: Codex
- Kontekst: Kjøring av
yarn starti en sekundær Bitsocial Web-worktree mens en annen worktree allerede serverte dokumentasjonen via Portless - Det overraskende:
start:docsregistrerte fortsatt det bokstavelige vertsnavnetdocs.bitsocial.localhost, såyarn startkunne feile selv om about-appen allerede visste hvordan den skulle unngå Portless-rutekollisjoner for sitt eget vertsnavn. - Konsekvens: Parallelle worktrees kunne ikke bruke dev-kommandoen på rotnivå på en pålitelig måte, fordi docs-prosessen avsluttet først og
concurrentlyderetter drepte resten av økten. - Tiltak: Hold docs-oppstarten bak
scripts/start-docs.mjs, som nå utleder det samme branch-baserte Portless-vertsnavnet som about-appen, og injiserer den delte offentlige URL-en inn i målet for dev-proxyen på/docs. - Status: confirmed
Worktree-skall kan bomme på repoets pinnede Node-versjon
- Dato: 2026-04-03
- Observert av: Codex
- Kontekst: Kjøring av
yarn starti Git-worktrees som.claude/worktrees/*eller sidestilte worktree-utsjekker - Det overraskende: Enkelte worktree-skall løste
nodeogyarn nodetil Homebrew-Node25.2.1, selv om repoet pinner22.12.0i.nvmrc, såyarn startkunne stille og rolig kjøre dev-starterne på feil kjøretidsmiljø. - Konsekvens: Dev-serverens atferd kan drive fra hverandre mellom hovedutsjekken og worktrees, noe som gjør feil vanskelige å reprodusere og bryter med Node 22-verktøykjeden repoet forventer.
- Tiltak: Hold dev-starterne bak
scripts/start-dev.mjsogscripts/start-docs.mjs, som nå starter seg selv på nytt under Node-binæren fra.nvmrcnår gjeldende skall har feil versjon. Skalloppsett bør fortsatt foretrekkenvm use. - Status: confirmed
Rester av docs-site/ kan skjule manglende dokumentasjonskilde etter refaktoreringen
- Dato: 2026-04-01
- Observert av: Codex
- Kontekst: Opprydding i monorepoet etter merge, da Docusaurus-prosjektet ble flyttet fra
docs-site/tildocs/ - Det overraskende: Den gamle mappen
docs-site/kan bli liggende igjen på disk med utdaterte, men viktige filer somi18n/, også etter at det sporede repoet gikk over tildocs/. Det får refaktoreringen til å se duplisert ut lokalt, og kan skjule at sporede dokumentasjonsoversettelser aldri ble flyttet inn idocs/. - Konsekvens: Agenter kan slette den gamle mappen som «søppel» og ved et uhell miste den eneste lokale kopien av dokumentasjonsoversettelsene, eller fortsette å redigere skript som fortsatt peker på den døde stien
docs-site/. - Tiltak: Behandle
docs/som det eneste kanoniske dokumentasjonsprosjektet. Før du sletter lokale rester avdocs-site/, gjenopprett sporet kildemateriale somdocs/i18n/og oppdater skript og hooks slik at de slutter å referere tildocs-site. - Status: confirmed
Flerspråklig forhåndsvisning av dokumentasjonen kan gi RAM-topper under verifisering
- Dato: 2026-04-01
- Observert av: Codex
- Kontekst: Retting av i18n, lokale-ruting og Pagefind-atferd i dokumentasjonen med
yarn start:docspluss Playwright - Det overraskende: Standardmodusen for forhåndsvisning av dokumentasjonen gjør nå en full flerspråklig docs-build pluss Pagefind-indeksering før den begynner å servere, og å holde den prosessen i live ved siden av flere Playwright- eller Chrome-økter kan bruke mye mer RAM enn en vanlig Vite-loop eller en Docusaurus-dev-loop for én lokale.
- Konsekvens: Maskinen kan gå tom for minne, nettleserøkter kan krasje, og avbrutte kjøringer kan etterlate utdaterte docs-servere eller headless nettlesere som fortsetter å bruke minne.
- Tiltak: For dokumentasjonsarbeid som ikke trenger verifisering av lokale-ruter eller Pagefind, foretrekk
DOCS_START_MODE=live yarn start:docs. Bruk bare den flerspråklige standardforhåndsvisningen når du må validere oversatte ruter eller Pagefind. Hold deg til én enkelt Playwright-økt, lukk gamle nettleserøkter før du åpner nye, og stopp docs-serveren etter verifisering hvis du ikke trenger den lenger. - Status: confirmed
translate-docs.py kan etterlate docs-lokaler halvoversatt eller med ødelagte lenkemål
- Dato: 2026-04-06
- Observert av: Codex
- Kontekst: Retting av lokaliserte dokumentasjonsruter og innhold etter at
yarn start:docsserverte engelske detaljsider eller ikke klarte å bygge lokale-utdata - Det overraskende: Oversettelsespipelinen for dokumentasjonen hadde to repo-spesifikke feilmoduser samtidig:
scripts/translate-docs.pyhentet bare ut en liten delmengde avDocsHome-meldingene nårtr(...)-kall brukte former den ikke klarte å parse, og oversatt markdown underdocs/i18n/**kunne inneholde maskinoversatte slugger ellerZXQPLACEHOLDER-artefakter inne i lenkemål. - Konsekvens: Lokaliserte hjemmesider kan stille og rolig falle tilbake til engelsk, lokaliserte detaljsider kan se uoversatte ut, og en full
yarn docs:buildkan feile på ødelagte lokale-lenker selv om kildedokumentasjonen er gyldig. - Tiltak: Etter endringer i dokumentasjonsoversettelser eller regenerering av lokale-filer, kjør alltid
yarn docs:buildfra repo-roten, søk gjennom markdown underdocs/i18n/**etterZXQPLACEHOLDER, og bekreft at oversatte lenker fortsatt peker til kanoniske dokumentslugger som/apps/5chan/i stedet for oversatte URL-stier. Hvis teksten iDocsHomeer endret, bekreft atscripts/translate-docs.pyfortsatt henter ut alledocs.home.*-meldinger. - Status: confirmed
No-JS-sjekker for about-siden må bruke Portless-ruten, ikke en frittstående SSR-forhåndsvisning
- Dato: 2026-04-12
- Observert av: Codex
- Kontekst: Verifisering av no-JS-støtte for siden
about/fra en branch-worktree - Det overraskende: En frittstående SSR-forhåndsvisning kan se sunn ut mens den faktiske branch-baserte Portless-ruten fortsatt serverer feil app-skall eller en eldre prosess. I dette repoet er den reelle lokale kontrakten Portless-vertsnavnet fra
yarn start, ikke en ad hoc forhåndsvisningsserver. - Konsekvens: Agenter kan feilaktig hevde at no-JS-støtten fungerer, eller overse regresjoner som bare viser seg på
*.bitsocial.localhost. - Tiltak: For nettleserverifisering av
about/, start alltid den ekte lokale serveren medyarn startelleryarn start:aboutog test den branch-baserte Portless-URL-en først. Ser et Portless-vertsnavn utdatert ut, undersøk og stopp den gamle prosessen før du tester på nytt. - Status: confirmed
chain/ var usynlig for yarn build:verify og yarn doctor
- Dato: 2026-07-05
- Observert av: Codex
- Kontekst: Verifisering av en diff som bare berørte chain/, etter at workspacet
chain/(frittstående Vite-app forchain.bitsocial.net) ble lagt til i monorepoet. - Det overraskende:
scripts/verify-build.mjsgjenkjente bare stiprefikseneabout/,docs/ogstats/, så en diff som bare berørte chain/ skrev ut "No targeted build checks matched the current diff" og kjørte ingen build i det hele tatt, selv ombuild:chainallerede fantes ipackage.jsonpå rotnivå. I tillegg varyarn doctorhardkodet tilreact-doctor about -y, så React-endringer underchain/srcfikk null dekning fra React Doctor. - Konsekvens: Agenter som verifiserte chain-endringer måtte vite at de skulle kalle
yarn build:chaindirekte i stedet for å stole påyarn build:verify, og React-problemer ichain/src(effekter, hooks, død kode) ble ikke oppdaget avyarn doctor. - Tiltak:
scripts/verify-build.mjshar nå en gren forchain/som speiler grenen forabout/, ogdoctor/doctor:verbosekjører nåreact-doctor --project about,chain -yi ett enkelt kall.doctor:scoregjelder fortsatt bareabout, fordi--scorestille og rolig skriver ut ingenting når det kombineres med--projectfor mer enn ett prosjekt; brukyarn react-doctor --project about,chain --verbose -y(eller--json) hvis du trenger en score for chain. - Status: confirmed
Browser-P2P kjører på sikre WebSockets; pkc-js avviser WebRTC og WebTransport som standard
- Dato: 2026-08-02
- Observert av: Claude
- Kontekst: Skriving av tekst til landingsside og dokumentasjon om hvordan Bitsocial browser-P2P fungerer
- Det overraskende:
@pkcprotocol/pkc-jsleveres med en standard tilkoblingsvokter som avviser WebRTC- og WebTransport-oppkall i nettleseren —dist/browser/helia/dial-transport-filter.jseksportererDENIED_DIAL_TRANSPORTS_BY_DEFAULT = ["webrtc", "webrtc-direct", "webtransport"]. Kommentaren i kilden oppgir grunnen: i nettleseren legger disse transportene til lange og ofte mislykkede løp for å opprette forbindelse (STUN/ICE, rotasjon av certhash) som gjør innlastingen tregere, mens WebSocket er direkte og pålitelig. Hver aktive peer i P2P-statuspanelet på bloggen viser "Secure WebSocket". Vokteren ligger inode_modules, så ingenting i repoet antyder at den finnes. - Konsekvens: Det er svært lett å skrive teknisk plausibel, men usann offentlig tekst — for eksempel å gi WebTransport sin ankomst til Baseline i nettleserne i mars 2026 æren for at Bitsocial browser-P2P ble mulig. Den påstanden rakk å bli publisert på landingssiden, i sammenligningstabellen og på to dokumentasjonssider før utvikleren oppdaget den. Feilaktige arkitekturpåstander på offentlige sider blir kontrollert av nøyaktig det utviklerpublikummet nettstedet retter seg mot.
- Tiltak: Aldri utled hvilke transporter Bitsocial bruker fra hva libp2p eller nettleserplattformen støtter i prinsippet. Sjekk
node_modules/@pkcprotocol/pkc-js/dist/browser/helia/dial-transport-filter.jsfor gjeldende avvisningsliste, bekreft at ingen overstyring avconnectionGaterfinnes underabout/src/, og les de aktive transportetikettene i panelet "P2P status" på bloggen før du fremsetter offentlige påstander. Oppstrømsendringen som faktisk åpnet for publisering fra nettleseren, var fiksen for monoton seqno i gossipsub i@libp2p/gossipsub15.0.21 (mai 2026); pkc-js leverer for tiden 16.0.4. - Status: confirmed
Relative ./page.md-lenker fra en uoversatt dokumentasjonsside ødelegger hver lokaliserte build
- Dato: 2026-08-02
- Observert av: Claude
- Kontekst: Å legge til en ny engelskspråklig side,
docs/browser-p2p.md, som lenket til eksisterende dokumentasjon med./peer-to-peer-protocol.mdog./apps/5chan.md - Det overraskende: Hver lokale under
docs/i18n/<lang>/docusaurus-plugin-content-docs/current/speiler dokumentasjonstreet. En ny side som mangler i disse speilene blir likevel rendret i alle lokaler via engelsk fallback, men de relative markdown-lenkene løses ikke lenger opp — Docusaurus genererer/ar/browser-p2p/peer-to-peer-protocol.md/og feiler buildet med "Docusaurus found broken links!". Det avgjørende er atyarn build:verifyogyarn docs:build:verifybare byggerenog går rent gjennom; bare en fullyarn docs:buildavdekker problemet, og den avbryter på den første lokalen alfabetisk (ar). - Konsekvens: En dokumentasjonsendring kan passere alle raske lokale sjekker og likevel ødelegge den flerspråklige produksjonsbuilden. Feilen ser dessuten urelatert ut til endringen, siden feilmeldingen navngir en lokale-sti forfatteren aldri har rørt.
- Tiltak: På dokumentasjonssider som ikke er speilet inn i
docs/i18n/**, bruk rot-relative lenker (/peer-to-peer-protocol/,/apps/5chan/) i stedet for relative lenker med.md; Docusaurus setter lokale-prefikset foran automatisk.docs/build-your-own-client.mder det eksisterende eksempelet. Kjør en fullyarn docs:build— ikke barebuild:verify— før du overleverer en endring som legger til eller lenker til en dokumentasjonsside. - Status: confirmed
update-translations.js må kjøres fra about/, og samtidige kjøringer mister nøkler i stillhet
- Dato: 2026-08-02
- Observert av: Claude
- Kontekst: Å ta i bruk 26 oversatte i18next-nøkler på tvers av alle 36 lokaler via ferdigheten
translate - Det overraskende: To separate feller i det samme skriptet. For det første løser
scripts/update-translations.jsmålet sitt sompath.join(process.cwd(), "public", "translations"), mens dette repoet holder oversettelsene iabout/public/translations. Å kjøre den dokumenterte kommandoen fra repo-roten feiler hver eneste gang med "Translations directory not found" —docs/agent-playbooks/translations.mdvisernode scripts/update-translations.js ..., som leses som en kommando kjørt fra repo-roten. For det andre er hvert kall en les-endre-skriv-runde over alle 36 lokale-filer, så to kall som kjører samtidig overskriver hverandre, og en nøkkel forsvinner uten feilmelding. Ferdighetentranslateinstruerer uttrykkelig om å starte opptil 4 underagenter samtidig, og hver av dem ville kalle skriptet. - Konsekvens: Formen som kjøres fra repo-roten feiler høylytt og kaster bort en hel runde. Samtidighetsproblemet feiler i stillhet: nøkler forsvinner fra vilkårlige lokaler, og diffen ser fortsatt plausibel ut.
- Tiltak: Kjør den som
cd about && node ../scripts/update-translations.js --key <key> --map <abs-path> --write. La aldri oversetter-underagenter skrive lokale-filer samtidig — la dem bare produsere ordbok-JSON-filer, og ta deretter i bruk hver nøkkel serielt fra foreldreagenten. Etter at nøklene er tatt i bruk, verifiser programmatisk at hver nøkkel finnes i alle 35 ikke-engelske lokaler, og at ingen verdi er byte-identisk med den engelske kilden. - Status: confirmed