తెలిసిన ఆశ్చర్యాలు
ఏజెంట్ల తప్పులకు కారణమైన, ఈ రిపాజిటరీకి ప్రత్యేకమైన గందరగోళ అంశాలను ఈ ఫైల్ నమోదు చేస్తుంది.
ఎంట్రీ ప్రమాణాలు
కింది అన్నీ నిజమైనప్పుడు మాత్రమే ఎంట్రీని చేర్చండి:
- ఇది ఈ రిపాజిటరీకే ప్రత్యేకమైనది (సాధారణ సలహా కాదు).
- భవిష్యత్తు ఏజెంట్లకు ఇది మళ్లీ ఎదురయ్యే అవకాశం ఉంది.
- దీనికి అనుసరించదగిన నిర్దిష్ట పరిష్కారం ఉంది.
సందేహం ఉంటే, ఎంట్రీ చేర్చే ముందు డెవలపర్ను అడగండి.
ఎంట్రీ టెంప్లేట్
### [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
ఎంట్రీలు
Vercel యాప్ ప్రొడక్షన్ డొమైన్లు తిరిగి Git master డిప్లాయ్మెంట్లకు మళ్లిపోవచ్చు
- తేదీ: 2026-04-28
- పరిశీలించినవారు: Tommaso + Codex
- సందర్భం: Bitsocial Web యాప్ డైరెక్టరీలో Seedit మరియు 5chan యాప్ మిర్రర్లను ధృవీకరిస్తున్నప్పుడు.
- ఆశ్చర్యకరమైన విషయం: Vercelలోని
seeditమరియు5chanప్రాజెక్ట్లకుgitProviderOptions.createDeployments = "enabled"ఉండటంతో, ప్రొడక్షన్ యాప్ మిర్రర్లు రిలీజ్ ఆర్టిఫ్యాక్ట్లను మాత్రమే అందించాలని రెపో విధానం ఆశించినప్పటికీ, GitHubmasterపుష్లు ప్రొడక్షన్ డొమైన్లకు ప్రమోట్ అయ్యేవి. - ప్రభావం:
about/src/lib/apps-data.tsలోindex.htmlహాష్ నమోదైన GitHub రిలీజ్ ZIPకు బదులుగా ప్రొడక్షన్ డొమైన్లు తాజా డెవలప్మెంట్ కమిట్ను అందిస్తాయి కాబట్టి, యాప్ డైరెక్టరీలోని ధృవీకరించిన మిర్రర్ బ్యాడ్జ్లు తప్పుగా మారవచ్చు. - ఉపశమనం: మిర్రర్ ధృవీకరణ మెటాడేటాను చేర్చే ముందు లేదా తాజాకరించే ముందు,
vercel api /v9/projects/<project-id>తో Vercel ప్రాజెక్ట్ను తనిఖీ చేసిgitProviderOptions.createDeployments = "disabled"అని నిర్ధారించుకోండి. రిలీజ్ ZIP కంటెంట్నుvercel deploy --prebuilt --prodతో డిప్లాయ్ చేయండి, డెవలప్మెంట్ డిప్లాయ్మెంట్ల కోసంseedit-omega.vercel.appలేదా5chan-omega.vercel.appవాడండి. - స్థితి: ధృవీకరించబడింది
లాంచర్ HTTPSను బలవంతం చేయకపోతే Portless 0.11 పాత ప్రాక్సీ స్థితినే తిరిగి వాడుతుంది
- తేదీ: 2026-04-28
- పరిశీలించినవారు: Tommaso + Codex
- సందర్భం: సాధారణ
yarn startఫ్లోను పాతhttp://bitsocial.localhost:1355ప్రాక్సీ URL నుండి అప్గ్రేడ్ చేస్తున్నప్పుడు. కొత్త కానానికల్ చిరునామాhttps://bitsocial.localhost. - ఆశ్చర్యకరమైన విషయం:
portless@0.11.1ఇన్స్టాల్ అయి ఉన్నప్పటికీ, Portless ఇప్పటికే ఉన్న~/.portless/proxy.port = 1355HTTP ప్రాక్సీనే తిరిగి వాడి, పాత:1355URLనే చూపేది. - ప్రభావం: ప్యాకేజీ వెర్షన్లను, డాక్యుమెంటేషన్ను నవీకరించడం సరిపోదు; ఒక కంట్రిబ్యూటర్ యంత్రంలో పాత Portless స్థితి నడుస్తుంటే
yarn startఇప్పటికీ పాత URLనే ప్రకటించి వాడగలదు. - ఉపశమనం: యాప్ మార్గాలను నమోదు చేయడానికి ముందే స్టార్ట్ స్క్రిప్ట్లు Portless HTTPS ప్రాక్సీని
443పోర్ట్లో స్పష్టంగా ప్రారంభించేలా ఉంచండి; అప్పుడు రన్టైమ్ ఫ్లో నిల్వ ఉన్న1355స్థితిని వారసత్వంగా తీసుకోకుండా దాని నుండి బయటపడుతుంది. - స్థితి: ధృవీకరించబడింది
Portless కానానికల్ లోకల్ యాప్ URLను మారుస్తుంది
- తేదీ: 2026-03-18
- పరిశీలించినవారు: Codex
- సందర్భం: బ్రౌజర్ ధృవీకరణ, స్మోక్ ఫ్లోలు
- ఆశ్చర్యకరమైన విషయం: డిఫాల్ట్ లోకల్ URL సాధారణ Vite పోర్ట్ కాదు. రెపో Portless ద్వారా
https://bitsocial.localhostఅందించాలని ఆశిస్తుంది, కాబట్టిlocalhost:3000లేదాlocalhost:5173తనిఖీ చేస్తే తప్పు యాప్ కనిపించవచ్చు లేదా అసలేమీ కనిపించకపోవచ్చు. - ప్రభావం: డెవ్ సర్వర్ ఆరోగ్యంగా ఉన్నా బ్రౌజర్ తనిఖీలు విఫలం కావచ్చు లేదా తప్పు లక్ష్యాన్ని ధృవీకరించవచ్చు.
- ఉపశమనం: ముందుగా
https://bitsocial.localhostవాడండి. ప్రత్యక్ష Vite పోర్ట్ నిజంగా అవసరమైనప్పుడు మాత్రమేPORTLESS=0 corepack yarn startతో దాన్ని దాటవేయండి. - స్థితి: ధృవీకరించబడింది
Commitizen హుక్లు నాన్-ఇంటరాక్టివ్ కమిట్లను అడ్డుకుంటాయి
- తేదీ: 2026-03-18
- పరిశీలించినవారు: Codex
- సందర్భం: ఏజెంట్ నడిపే కమిట్ వర్క్ఫ్లోలు
- ఆశ్చర్యకరమైన విషయం:
git commitHusky ద్వారా Commitizenను ప్రారంభించి, ఇంటరాక్టివ్ TTY ఇన్పుట్ కోసం వేచి ఉంటుంది; దీంతో నాన్-ఇంటరాక్టివ్ ఏజెంట్ షెల్లు స్తంభించిపోతాయి. - ప్రభావం: మామూలు కమిట్ జరగాల్సిన చోట ఏజెంట్లు అనంతంగా ఆగిపోవచ్చు.
- ఉపశమనం: ఏజెంట్ చేసే కమిట్ల కోసం
git commit --no-verify -m "message"వాడండి. మనుషులు యథాప్రకారంcorepack yarn commitలేదాcorepack yarn exec czవాడవచ్చు. - స్థితి: ధృవీకరించబడింది
Yarn classic బారిన పడకుండా ఉండాలంటే Corepack తప్పనిసరి
- తేదీ: 2026-03-19
- పరిశీలించినవారు: Codex
- సందర్భం: ప్యాకేజీ మేనేజర్ను Yarn 4కు మార్చడం
- ఆశ్చర్యకరమైన విషయం: యంత్రంలో ఇప్పటికీ గ్లోబల్ Yarn classic ఇన్స్టాల్
PATHలో ఉంది, కాబట్టి సాదాyarnనడిపితే పిన్ చేసిన Yarn 4కు బదులుగా v1 వచ్చే అవకాశం ఉంది. - ప్రభావం: డెవలపర్లు అనుకోకుండా రెపో ప్యాకేజీ-మేనేజర్ పిన్నింగ్ను దాటవేసి, వేరే ఇన్స్టాల్ ప్రవర్తనను లేదా వేరే లాక్ఫైల్ అవుట్పుట్ను పొందవచ్చు.
- ఉపశమనం: షెల్ ఆదేశాల కోసం
corepack yarn ...వాడండి, లేదా ముందుగాcorepack enableనడిపి సాదాyarnపిన్ చేసిన Yarn 4కు మ్యాప్ అయ్యేలా చేయండి. - స్థితి: ధృవీకరించబడింది
స్థిర Portless యాప్ పేర్లు Bitsocial Web వర్క్ట్రీల మధ్య ఢీకొంటాయి
- తేదీ: 2026-03-30
- పరిశీలించినవారు: Codex
- సందర్భం: ఒక Bitsocial Web వర్క్ట్రీ ఇప్పటికే Portless ద్వారా సర్వ్ చేస్తుండగా మరో వర్క్ట్రీలో
yarn startప్రారంభించడం - ఆశ్చర్యకరమైన విషయం: ప్రతి వర్క్ట్రీలోనూ అక్షరాలా
bitsocialఅనే Portless యాప్ పేరును వాడితే, వెనుక ఉన్న పోర్ట్లు వేరైనా మార్గమే ఢీకొంటుంది;bitsocial.localhostఅప్పటికే నమోదై ఉండటంతో రెండో ప్రాసెస్ విఫలమవుతుంది. - ప్రభావం: సమాంతర బ్రాంచ్లు సురక్షితంగా సహజీవనం చేయడమే Portless ఉద్దేశమైనా, సమాంతర Bitsocial Web బ్రాంచ్లు ఒకదానికొకటి అడ్డుపడతాయి.
- ఉపశమనం: Portless ప్రారంభాన్ని
scripts/start-dev.mjsవెనుకే ఉంచండి; ఇది కానానికల్ కేసు బయట బ్రాంచ్-ఆధారిత*.bitsocial.localhostమార్గాన్ని వాడుతుంది, అలాగే సాదాbitsocial.localhostపేరు అప్పటికే ఆక్రమితమై ఉంటే బ్రాంచ్-ఆధారిత మార్గానికి మారుతుంది. - స్థితి: ధృవీకరించబడింది
డాక్స్ ప్రివ్యూ గతంలో పోర్ట్ 3001ను హార్డ్-కోడ్ చేసేది
- తేదీ: 2026-03-30
- పరిశీలించినవారు: Codex
- సందర్భం: ఇతర లోకల్ రెపోలు, ఏజెంట్లతో పాటు
yarn startనడపడం - ఆశ్చర్యకరమైన విషయం: రూట్ డెవ్ ఆదేశం డాక్స్ వర్క్స్పేస్ను
docusaurus start --port 3001తో నడిపేది, కాబట్టి ప్రధాన యాప్ అప్పటికే Portlessను వాడుతున్నా, మరో ప్రాసెస్3001ను ఆక్రమించి ఉంటే మొత్తం డెవ్ సెషన్ విఫలమయ్యేది. - ప్రభావం: బూట్ అయిన వెంటనే
yarn startవెబ్ ప్రాసెస్ను చంపేసేది, డాక్స్ పోర్ట్ ఘర్షణ కారణంగా సంబంధం లేని లోకల్ పనికి కూడా అంతరాయం కలిగేది. - ఉపశమనం: డాక్స్ ప్రారంభాన్ని
yarn start:docsవెనుకే ఉంచండి; ఇది ఇప్పుడు Portlessతో పాటుscripts/start-docs.mjsను వాడి, ఇచ్చిన ఖాళీ పోర్ట్ను గౌరవిస్తుంది లేదా నేరుగా నడిపినప్పుడు తర్వాత అందుబాటులో ఉన్న పోర్ట్కు మారుతుంది. - స్థితి: ధృవీకరించబడింది
డాక్స్ Portless హోస్ట్నేమ్ స్థిరంగా హార్డ్-కోడ్ చేయబడి ఉండేది
- తేదీ: 2026-04-03
- పరిశీలించినవారు: Codex
- సందర్భం: ఒక వర్క్ట్రీ ఇప్పటికే Portless ద్వారా డాక్స్ సర్వ్ చేస్తుండగా, రెండో Bitsocial Web వర్క్ట్రీలో
yarn startనడపడం - ఆశ్చర్యకరమైన విషయం:
start:docsఇప్పటికీ అక్షరాలాdocs.bitsocial.localhostహోస్ట్నేమ్ను నమోదు చేసేది; about యాప్ తన సొంత హోస్ట్నేమ్కు Portless మార్గ ఘర్షణలను తప్పించుకోవడం నేర్చుకున్నప్పటికీyarn startవిఫలమయ్యేది. - ప్రభావం: డాక్స్ ప్రాసెస్ ముందుగా నిష్క్రమించడంతో
concurrentlyమిగిలిన సెషన్ను చంపేసేది, కాబట్టి సమాంతర వర్క్ట్రీలు రూట్ డెవ్ ఆదేశాన్ని నమ్మకంగా వాడలేకపోయేవి. - ఉపశమనం: డాక్స్ ప్రారంభాన్ని
scripts/start-docs.mjsవెనుకే ఉంచండి; ఇది ఇప్పుడు about యాప్ లాగే బ్రాంచ్-ఆధారిత Portless హోస్ట్నేమ్ను రూపొందించి, ఆ భాగస్వామ్య పబ్లిక్ URLను/docsడెవ్ ప్రాక్సీ లక్ష్యంలోకి ఇంజెక్ట్ చేస్తుంది. - స్థితి: ధృవీకరించబడింది
వర్క్ట్రీ షెల్లు రెపో పిన్ చేసిన Node వెర్షన్ను తప్పిపోవచ్చు
- తేదీ: 2026-04-03
- పరిశీలించినవారు: Codex
- సందర్భం:
.claude/worktrees/*వంటి Git వర్క్ట్రీలలో లేదా పక్కనే ఉన్న వర్క్ట్రీ చెక్అవుట్లలోyarn startనడపడం - ఆశ్చర్యకరమైన విషయం: రెపో
.nvmrcలో22.12.0ను పిన్ చేసినా, కొన్ని వర్క్ట్రీ షెల్లుnodeమరియుyarn nodeను Homebrew Node25.2.1కు మ్యాప్ చేసేవి; దీంతోyarn startడెవ్ లాంచర్లను తప్పు రన్టైమ్లో నిశ్శబ్దంగా నడపగలదు. - ప్రభావం: ప్రధాన చెక్అవుట్కు, వర్క్ట్రీలకు మధ్య డెవ్-సర్వర్ ప్రవర్తన మారిపోతుంది; బగ్లను తిరిగి సృష్టించడం కష్టమవుతుంది, రెపో ఆశించే Node 22 టూల్చెయిన్ ఉల్లంఘనకు గురవుతుంది.
- ఉపశమనం: డెవ్ లాంచర్లను
scripts/start-dev.mjs,scripts/start-docs.mjsవెనుకే ఉంచండి; ప్రస్తుత షెల్ తప్పు వెర్షన్లో ఉంటే ఇవి ఇప్పుడు.nvmrcNode బైనరీ కింద తిరిగి అమలవుతాయి. అయినా షెల్ సెటప్nvm useకే ప్రాధాన్యం ఇవ్వాలి. - స్థితి: ధృవీకరించబడింది
రీఫ్యాక్టర్ తర్వాత మిగిలిన docs-site/ అవశేషాలు డాక్స్ సోర్స్ లేకపోవడాన్ని కప్పిపుచ్చవచ్చు
- తేదీ: 2026-04-01
- పరిశీలించినవారు: Codex
- సందర్భం: Docusaurus ప్రాజెక్ట్ను
docs-site/నుండిdocs/కు తరలించిన తర్వాత మెర్జ్-అనంతర మోనోరెపో శుభ్రత - ఆశ్చర్యకరమైన విషయం: ట్రాక్ చేసే రెపో
docs/కు మారిన తర్వాత కూడా పాతdocs-site/ఫోల్డర్ డిస్క్లో మిగిలి,i18n/వంటి పాతబడిన కానీ ముఖ్యమైన ఫైల్లను ఉంచుకోగలదు. దీంతో రీఫ్యాక్టర్ లోకల్గా నకిలీగా కనిపిస్తుంది, ట్రాక్ చేసిన డాక్స్ అనువాదాలు నిజానికిdocs/లోకి తరలలేదన్న విషయాన్ని కప్పిపుచ్చవచ్చు. - ప్రభావం: ఏజెంట్లు పాత ఫోల్డర్ను “చెత్త” అనుకుని తొలగించి, డాక్స్ అనువాదాల ఏకైక లోకల్ కాపీని పోగొట్టుకోవచ్చు; లేదా చనిపోయిన
docs-site/మార్గాన్నే సూచించే స్క్రిప్ట్లను సవరిస్తూ ఉండిపోవచ్చు. - ఉపశమనం:
docs/నే ఏకైక కానానికల్ డాక్స్ ప్రాజెక్ట్గా పరిగణించండి. లోకల్గా మిగిలినdocs-site/అవశేషాలను తొలగించే ముందు,docs/i18n/వంటి ట్రాక్ చేసిన సోర్స్ను పునరుద్ధరించి,docs-siteను సూచించడం ఆపేలా స్క్రిప్ట్లను, హుక్లను నవీకరించండి. - స్థితి: ధృవీకరించబడింది
బహుళ-లొకేల్ డాక్స్ ప్రివ్యూ ధృవీకరణ సమయంలో RAM వాడకాన్ని ఒక్కసారిగా పెంచవచ్చు
- తేదీ: 2026-04-01
- పరిశీలించినవారు: Codex
- సందర్భం:
yarn start:docsతో పాటు Playwright వాడి డాక్స్ i18n, లొకేల్ రూటింగ్, Pagefind ప్రవర్తనను సరిచేయడం - ఆశ్చర్యకరమైన విషయం: డిఫాల్ట్ డాక్స్ ప్రివ్యూ మోడ్ ఇప్పుడు సర్వ్ చేయకముందే పూర్తి బహుళ-లొకేల్ డాక్స్ బిల్డ్ను, Pagefind ఇండెక్సింగ్ను చేస్తుంది; ఆ ప్రాసెస్ను అనేక Playwright లేదా Chrome సెషన్లతో పాటు నడుపుతూ ఉంచితే, సాధారణ Vite లేదా ఒకే-లొకేల్ Docusaurus డెవ్ లూప్ కంటే చాలా ఎక్కువ RAM ఖర్చవుతుంది.
- ప్రభావం: యంత్రం మెమరీ కొరతకు గురికావచ్చు, బ్రౌజర్ సెషన్లు క్రాష్ కావచ్చు, మధ్యలో ఆగిపోయిన రన్లు పాత డాక్స్ సర్వర్లను లేదా హెడ్లెస్ బ్రౌజర్లను వదిలేసి అవి మెమరీని వాడుతూనే ఉండవచ్చు.
- ఉపశమనం: లొకేల్ మార్గాలను లేదా Pagefindను ధృవీకరించాల్సిన అవసరం లేని డాక్స్ పని కోసం
DOCS_START_MODE=live yarn start:docsకు ప్రాధాన్యం ఇవ్వండి. అనువదించిన మార్గాలను లేదా Pagefindను నిజంగా పరీక్షించాల్సినప్పుడే డిఫాల్ట్ బహుళ-లొకేల్ ప్రివ్యూను వాడండి. ఒకే Playwright సెషన్ను ఉంచండి, కొత్తవి తెరిచే ముందు పాత బ్రౌజర్ సెషన్లను మూసివేయండి, ధృవీకరణ ముగిశాక అవసరం లేకపోతే డాక్స్ సర్వర్ను ఆపేయండి. - స్థితి: ధృవీకరించబడింది
translate-docs.py డాక్స్ లొకేల్లను సగం అనువాదంతో లేదా విరిగిన లింక్ లక్ష్యాలతో వదిలేయవచ్చు
- తేదీ: 2026-04-06
- పరిశీలించినవారు: Codex
- సందర్భం:
yarn start:docsఇంగ్లీష్ వివరాల పేజీలను సర్వ్ చేసినప్పుడు లేదా లొకేల్ అవుట్పుట్ను బిల్డ్ చేయలేకపోయినప్పుడు, లొకలైజ్డ్ డాక్స్ మార్గాలను, కంటెంట్ను సరిచేయడం - ఆశ్చర్యకరమైన విషయం: డాక్స్ అనువాద పైప్లైన్లో ఒకేసారి రెండు రెపో-నిర్దిష్ట వైఫల్య రూపాలు ఉన్నాయి:
tr(...)కాల్లు తాను పార్స్ చేయలేని రూపాల్లో ఉన్నప్పుడుscripts/translate-docs.pyDocsHomeసందేశాల్లో చిన్న భాగాన్ని మాత్రమే వెలికితీసేది, అలాగేdocs/i18n/**కింద అనువదించిన మార్క్డౌన్లో లింక్ లక్ష్యాల లోపల యంత్రానువాద స్లగ్లు లేదాZXQPLACEHOLDERఅవశేషాలు ఉండేవి. - ప్రభావం: లొకలైజ్డ్ హోమ్పేజీలు నిశ్శబ్దంగా ఇంగ్లీష్కు మళ్లిపోవచ్చు, లొకలైజ్డ్ వివరాల పేజీలు అనువాదం కానట్టు కనిపించవచ్చు, సోర్స్ డాక్స్ సరిగ్గా ఉన్నా పూర్తి
yarn docs:buildవిరిగిన లొకేల్ లింక్ల వల్ల విఫలం కావచ్చు. - ఉపశమనం: డాక్స్ అనువాదాలను మార్చిన తర్వాత లేదా లొకేల్ ఫైల్లను మళ్లీ రూపొందించిన తర్వాత, ఎప్పుడూ రెపో రూట్ నుండి
yarn docs:buildనడపండి,docs/i18n/**మార్క్డౌన్లోZXQPLACEHOLDERఉందేమో వెతకండి, అనువదించిన లింక్లు అనువదించిన URL మార్గాలకు కాక/apps/5chan/వంటి కానానికల్ డాక్ స్లగ్లనే సూచిస్తున్నాయని ధృవీకరించండి.DocsHomeకాపీ మారితే,scripts/translate-docs.pyఇప్పటికీ అన్నిdocs.home.*సందేశాలను వెలికితీస్తుందని నిర్ధారించుకోండి. - స్థితి: ధృవీకరించబడింది
About సైట్ no-JS తనిఖీలు స్వతంత్ర SSR ప్రివ్యూను కాక Portless మార్గాన్నే వాడాలి
- తేదీ: 2026-04-12
- పరిశీలించినవారు: Codex
- సందర్భం: బ్రాంచ్ వర్క్ట్రీ నుండి
about/సైట్కు no-JS మద్దతును ధృవీకరించడం - ఆశ్చర్యకరమైన విషయం: స్వతంత్ర SSR ప్రివ్యూ ఆరోగ్యంగా కనిపిస్తున్నా, అసలైన బ్రాంచ్-ఆధారిత Portless మార్గం ఇంకా తప్పు యాప్ షెల్ను లేదా పాత ప్రాసెస్ను సర్వ్ చేస్తుండవచ్చు. ఈ రెపోలో నిజమైన లోకల్ ఒప్పందం
yarn startఇచ్చే Portless హోస్ట్నేమ్, తాత్కాలికంగా నిలబెట్టిన ప్రివ్యూ సర్వర్ కాదు. - ప్రభావం: no-JS మద్దతు పనిచేస్తోందని ఏజెంట్లు తప్పుగా చెప్పవచ్చు, లేదా
*.bitsocial.localhostమీద మాత్రమే కనిపించే రిగ్రెషన్లను గమనించకపోవచ్చు. - ఉపశమనం:
about/బ్రౌజర్ ధృవీకరణ కోసం ఎప్పుడూyarn startలేదాyarn start:aboutతో అసలైన లోకల్ సర్వర్ను ప్రారంభించి, ముందుగా బ్రాంచ్-ఆధారిత Portless URLనే పరీక్షించండి. Portless హోస్ట్నేమ్ పాతదిగా అనిపిస్తే, మళ్లీ పరీక్షించే ముందు పాత ప్రాసెస్ను పరిశీలించి ఆపేయండి. - స్థితి: ధృవీకరించబడింది
yarn build:verify మరియు yarn doctorకు chain/ కనిపించేది కాదు
- తేదీ: 2026-07-05
- పరిశీలించినవారు: Codex
- సందర్భం:
chain.bitsocial.netకోసం స్వతంత్ర Vite యాప్ అయినchain/వర్క్స్పేస్ను మోనోరెపోలో చేర్చిన తర్వాత, chain/-మాత్రమే ఉన్న డిఫ్ను ధృవీకరించడం. - ఆశ్చర్యకరమైన విషయం:
scripts/verify-build.mjsకేవలంabout/,docs/,stats/మార్గ ప్రిఫిక్స్లను మాత్రమే గుర్తించేది, కాబట్టి రూట్package.jsonలోbuild:chainఅప్పటికే ఉన్నా, chain/-మాత్రమే ఉన్న డిఫ్ "No targeted build checks matched the current diff" అని ప్రింట్ చేసి ఏ బిల్డ్నూ నడపకుండా ఉండేది. దీనికి వేరుగా,yarn doctorreact-doctor about -yకు హార్డ్-కోడ్ అయి ఉండటంతోchain/srcకింద React మార్పులకు React Doctor కవరేజ్ అస్సలు లభించేది కాదు. - ప్రభావం: chain మార్పులను ధృవీకరించే ఏజెంట్లు
yarn build:verifyను నమ్మకుండా నేరుగాyarn build:chainపిలవాలని ముందే తెలిసి ఉండాల్సి వచ్చేది, అలాగేchain/srcలోని React సమస్యలు (ఎఫెక్ట్లు, హుక్లు, డెడ్ కోడ్)yarn doctorకు కనిపించకుండా పోయేవి. - ఉపశమనం:
scripts/verify-build.mjsలో ఇప్పుడుabout/కోసం ఉన్నదానికి సమానమైనchain/బ్రాంచ్ ఉంది, అలాగేdoctorమరియుdoctor:verboseఇప్పుడు ఒకే పిలుపులోreact-doctor --project about,chain -yనడుపుతాయి. ఒకటికి మించిన ప్రాజెక్ట్లతో--projectకలిపినప్పుడు--scoreనిశ్శబ్దంగా ఏమీ ప్రింట్ చేయదు కాబట్టిdoctor:scoreaboutకే పరిమితంగా ఉంది; chain స్కోర్ కావాలంటేyarn react-doctor --project about,chain --verbose -y(లేదా--json) వాడండి. - స్థితి: ధృవీకరించబడింది
బ్రౌజర్ P2P సురక్షిత WebSockets మీద నడుస్తుంది; pkc-js డిఫాల్ట్గా WebRTC, WebTransportలను నిరాకరిస్తుంది
- తేదీ: 2026-08-02
- పరిశీలించినవారు: Claude
- సందర్భం: Bitsocial బ్రౌజర్ P2P ఎలా పనిచేస్తుందో వివరించే ల్యాండింగ్-పేజీ, డాక్స్ కాపీని రాయడం
- ఆశ్చర్యకరమైన విషయం:
@pkcprotocol/pkc-jsడిఫాల్ట్గా ఒక కనెక్షన్ గేటర్ను పంపుతుంది; అది బ్రౌజర్లో WebRTC, WebTransport డయల్లను తిరస్కరిస్తుంది —dist/browser/helia/dial-transport-filter.jsDENIED_DIAL_TRANSPORTS_BY_DEFAULT = ["webrtc", "webrtc-direct", "webtransport"]అని ఎగుమతి చేస్తుంది. దీనికి కారణం దాని సోర్స్ కామెంట్లోనే ఉంది: బ్రౌజర్లో ఆ ట్రాన్స్పోర్ట్లు పొడవైన, తరచూ విఫలమయ్యే కనెక్షన్-స్థాపన మార్గాలను (STUN/ICE, certhash రొటేషన్) జోడించి లోడ్లను నెమ్మదిస్తాయి; WebSocket మాత్రం నేరుగా, నమ్మకంగా పనిచేస్తుంది. బ్లాగ్లోని P2P స్టేటస్ ప్యానెల్లో ప్రతి లైవ్ పీర్ "Secure WebSocket" అని చూపిస్తుంది. ఈ గేటర్node_modulesలో ఉంటుంది కాబట్టి రెపోలో దాని గురించి ఎలాంటి సూచనా ఉండదు. - ప్రభావం: సాంకేతికంగా నమ్మశక్యంగా అనిపించే కానీ తప్పు అయిన పబ్లిక్ కాపీని రాయడం చాలా సులభం — ఉదాహరణకు, 2026 మార్చిలో WebTransport బ్రౌజర్ Baselineకు చేరడమే Bitsocial బ్రౌజర్ P2Pను సాధ్యం చేసిందని చెప్పడం. డెవలపర్ గమనించకముందే ఆ వాదన ల్యాండింగ్ పేజీలోకి, పోలిక పట్టికలోకి, రెండు డాక్స్ పేజీల్లోకి చేరిపోయింది. పబ్లిక్ పేజీల్లోని తప్పుడు ఆర్కిటెక్చర్ వాదనలను సైట్ లక్ష్యంగా పెట్టుకున్న డెవలపర్ ప్రేక్షకులే సరిగ్గా తనిఖీ చేస్తారు.
- ఉపశమనం: libp2p లేదా బ్రౌజర్ ప్లాట్ఫారమ్ సూత్రప్రాయంగా దేనికి మద్దతిస్తుందో చూసి Bitsocial ఏ ట్రాన్స్పోర్ట్లను వాడుతుందో ఎప్పుడూ ఊహించవద్దు. ప్రస్తుత నిరాకరణ జాబితా కోసం
node_modules/@pkcprotocol/pkc-js/dist/browser/helia/dial-transport-filter.jsచూడండి,about/src/కింద ఎలాంటిconnectionGaterఓవర్రైడ్ లేదని నిర్ధారించుకోండి, ఏ పబ్లిక్ వాదన చేసే ముందైనా బ్లాగ్లోని "P2P status" ప్యానెల్లో లైవ్ ట్రాన్స్పోర్ట్ లేబుళ్లను చదవండి. బ్రౌజర్ పబ్లిషింగ్ను నిజంగా సాధ్యం చేసిన అప్స్ట్రీమ్ మార్పు@libp2p/gossipsub15.0.21 (2026 మే)లోని gossipsub మోనోటానిక్-seqno పరిష్కారం; pkc-js ప్రస్తుతం 16.0.4 పంపుతోంది. - స్థితి: ధృవీకరించబడింది
అనువదించని డాక్స్ పేజీ నుండి ఇచ్చిన సాపేక్ష ./page.md లింక్లు ప్రతి లొకలైజ్డ్ బిల్డ్ను విచ్ఛిన్నం చేస్తాయి
- తేదీ: 2026-08-02
- పరిశీలించినవారు: Claude
- సందర్భం:
./peer-to-peer-protocol.md,./apps/5chan.mdద్వారా ఇప్పటికే ఉన్న డాక్స్కు లింక్ చేసే కొత్త ఇంగ్లీష్-మాత్రమే పేజీdocs/browser-p2p.mdను చేర్చడం - ఆశ్చర్యకరమైన విషయం:
docs/i18n/<lang>/docusaurus-plugin-content-docs/current/కింద ప్రతి లొకేల్ డాక్స్ ట్రీని ప్రతిబింబిస్తుంది. ఆ ప్రతిబింబాల్లో లేని కొత్త పేజీ ఇంగ్లీష్ ఫాల్బ్యాక్ ద్వారా ప్రతి లొకేల్లోనూ రెండర్ అవుతుంది, కానీ దాని సాపేక్ష మార్క్డౌన్ లింక్లు ఇక పరిష్కారం కావు — Docusaurus/ar/browser-p2p/peer-to-peer-protocol.md/అని ఉత్పత్తి చేసి "Docusaurus found broken links!" అంటూ బిల్డ్ను విఫలం చేస్తుంది. ముఖ్యంగా,yarn build:verifyమరియుyarn docs:build:verifyenను మాత్రమే బిల్డ్ చేసి శుభ్రంగా పాస్ అవుతాయి; పూర్తిyarn docs:buildమాత్రమే దీన్ని బయటపెడుతుంది, అదీ అక్షర క్రమంలో మొదటి లొకేల్ (ar) దగ్గరే ఆగిపోతుంది. - ప్రభావం: ఒక డాక్స్ మార్పు వేగవంతమైన లోకల్ తనిఖీలన్నిటినీ దాటి కూడా ప్రొడక్షన్ బహుళ-లొకేల్ బిల్డ్ను విరగ్గొట్టవచ్చు. పైగా ఆ వైఫల్యం మార్పుతో సంబంధం లేనట్టు కనిపిస్తుంది, ఎందుకంటే ఎర్రర్ రచయిత ఎప్పుడూ తాకని లొకేల్ మార్గాన్ని పేర్కొంటుంది.
- ఉపశమనం:
docs/i18n/**లోకి ప్రతిబింబించని ఏ డాక్స్ పేజీలోనైనా, సాపేక్ష.mdలింక్లకు బదులుగా రూట్-సాపేక్ష లింక్లను (/peer-to-peer-protocol/,/apps/5chan/) వాడండి; Docusaurus వాటికి లొకేల్ను తనంతట తానే జోడిస్తుంది.docs/build-your-own-client.mdఇప్పటికే ఉన్న ఉదాహరణ. డాక్స్ పేజీని చేర్చే లేదా దానికి లింక్ చేసే ఏ మార్పునైనా అప్పగించే ముందు, కేవలంbuild:verifyకాకుండా పూర్తిyarn docs:buildనడపండి. - స్థితి: ధృవీకరించబడింది
update-translations.jsను about/ నుండే నడపాలి; సమాంతర రన్లు నిశ్శబ్దంగా కీలను కోల్పోతాయి
- తేదీ: 2026-08-02
- పరిశీలించినవారు: Claude
- సందర్భం:
translateనైపుణ్యం ద్వారా 26 అనువదించిన i18next కీలను మొత్తం 36 లొకేల్లకు వర్తింపజేయడం - ఆశ్చర్యకరమైన విషయం: ఒకే స్క్రిప్ట్లో రెండు వేర్వేరు ఉచ్చులు. మొదటిది,
scripts/update-translations.jsతన లక్ష్యాన్నిpath.join(process.cwd(), "public", "translations")గా పరిష్కరిస్తుంది, కానీ ఈ రెపో అనువాదాలనుabout/public/translationsలో ఉంచుతుంది. రెపో రూట్ నుండి డాక్యుమెంట్ చేసిన ఆదేశాన్ని నడిపితే ప్రతిసారీ "Translations directory not found" అంటూ విఫలమవుతుంది —docs/agent-playbooks/translations.mdnode scripts/update-translations.js ...అని చూపిస్తుంది, అది రెపో-రూట్ ఆదేశంలా అనిపిస్తుంది. రెండోది, ప్రతి పిలుపూ మొత్తం 36 లొకేల్ ఫైల్ల మీద రీడ్-మాడిఫై-రైట్ చేస్తుంది, కాబట్టి రెండు పిలుపులు ఒకేసారి నడిస్తే అవి ఒకదానినొకటి తుడిచేస్తాయి, ఎలాంటి ఎర్రర్ లేకుండానే ఒక కీ మాయమవుతుంది.translateనైపుణ్యం స్పష్టంగా 4 వరకు సబ్ఏజెంట్లను ఒకేసారి సృష్టించమని చెబుతుంది, వాటిలో ప్రతి ఒక్కటీ ఈ స్క్రిప్ట్ను పిలుస్తుంది. - ప్రభావం: రెపో-రూట్ రూపం స్పష్టంగా విఫలమై ఒక పూర్తి ప్రయత్నాన్ని వృథా చేస్తుంది. సమాంతరత సమస్య మాత్రం నిశ్శబ్దంగా విఫలమవుతుంది: యాదృచ్ఛిక లొకేల్ల నుండి కీలు మాయమవుతాయి, అయినా డిఫ్ నమ్మశక్యంగానే కనిపిస్తుంది.
- ఉపశమనం: దీన్ని
cd about && node ../scripts/update-translations.js --key <key> --map <abs-path> --writeరూపంలో నడపండి. అనువాదక సబ్ఏజెంట్లను ఎప్పుడూ లొకేల్ ఫైల్లను ఒకేసారి రాయనివ్వవద్దు — వారు కేవలం డిక్షనరీ JSON ఫైల్లను మాత్రమే ఇవ్వాలి, ఆ తర్వాత పేరెంట్ ఏజెంట్ ప్రతి కీని వరుసగా వర్తింపజేయాలి. వర్తింపజేసిన తర్వాత, ప్రతి కీ ఇంగ్లీష్ కాని 35 లొకేల్లన్నిటిలో ఉందని, ఏ విలువా ఇంగ్లీష్ సోర్స్తో బైట్-సమానంగా లేదని ప్రోగ్రామాటిక్గా ధృవీకరించండి. - స్థితి: ధృవీకరించబడింది