Ghid pentru dezvoltatori
Copia de lucru
Clonați depozitul și citiți AGENTS.md. CI pentru plugin folosește Linux/Windows Node 20; site-ul Node 24. Rădăcina și website/ au instalări separate.
npm ci
npx --no-install playwright install --with-deps chromium
node node_modules/playwright-chromium/cli.js install chromium
npm run build
npm test -- --runInBand
Cele două pachete Playwright pot cere revizii Chromium diferite; o singură instalare nu ajunge. main.js este generat și ignorat de Git. Un bundle local vechi nu validează un commit nou.
Responsabilități
| Responsabilitate | Sursă principală |
|---|---|
| Ciclu de viață, comenzi și integrare cu gazda | src/main.ts |
| Profiluri, metadate de protocol și validare | src/llmProviders.ts |
| Cereri, transporturi, reîncercări și streamuri | src/llmUtils.ts |
| Operații, scheme și subsetul public CLI | src/operations/, src/cliContracts.ts |
| Sarcini de fișiere, cercetare și traducere | src/fileUtils.ts, src/searchUtils.ts, src/translate.ts |
| Acțiuni de flux și panoul lateral | src/workflowButtons.ts, src/ui/NotemdSidebarView.ts |
| Specificații de diagrame și randare | src/diagram/, src/rendering/ |
| Texte UI și limbi | src/i18n/ |
| Ghiduri publice și traduceri | website/docs/, website/i18n/ |
| Reguli de întreținere și dovezi datate | docs/maintainer/ |
Bundle-ul de producție este autonom, cu gazda previzualizării încorporată. O cale separată posibilă pentru gazdă nu este contractul pachetului livrat. Activarea ei cere alinierea împachetării, fișierelor, verificărilor și documentelor.
Schimbare delimitată
- Reproduceți și scrieți întâi testul țintit care eșuează.
- Modificați proprietarul invariantului și validați la limita externă.
- Rulați teste focalizate și complete; păstrați anularea, propagarea erorilor și scrierea durabilă.
- Actualizați sursa engleză și limbile afectate. Planurile, sarcinile și walkthrough-urile cer versiuni complete separate în engleză/chineză sub
docs/. - Verificați schimbările vizuale/nativ exportate în aplicația reală; XML, imaginea sau buildul nu dovedesc editabilitatea ori conectorii atașați.
Adăugați furnizorul în llmProviders.ts, refolosiți transportul compatibil și acoperiți llmProviders.test.ts, llmUtilsProviderSupport.test.ts, README și testarea conexiunii. Păstrați streamingul și răspunsurile întrerupte. Expunerea unei operații cere scheme de intrare/rezultat, context, efecte și etichete de manipulare. Înregistrarea nu înseamnă endpoint public Agent. Agent.
Verificare
npm run build
npm test -- --runInBand
npm run audit:i18n-ui
npm run audit:render-host
npm run lint:regressions -- --base-ref origin/main
git diff --check
Lint compară diagnostice individuale; un total mai mic nu justifică o regresie nouă. Pentru schimbări de căutare locală, rulați npm run benchmark:local-kb și precizați corpusul/mediul. Pentru site folosiți Node 24:
npm --prefix website ci
npm --prefix website run build
npm --prefix website run audit:build
npm run docs:build
În programul 1.9.9, Codex scrie și verifică direct traducerile. Nu executați scripturi vechi de traducere, LM Studio sau servicii de traducere. Instrumentele pot formata, valida și randa textul deja scris.
Obsidian și aplicațiile țintă
Folosiți un vault temporar marcat .notemd-host-verification; scripturile verifică bundle-ul copiat. Separați vault-urile utilizatorului. Încercați atât obsidian help, cât și obsidian-cli help; un instrument absent este indisponibil, nu test reușit al gazdei.
PowerPoint, CircuitikZ și diapozitivele au condiții și artefacte separate. Urmați acceptarea datată și procedura de publicare. Menționați explicit dispozitivele mobile fizice și versiunea minimă neverificate.
Contribuții și publicare
PR-ul descrie problema, comportamentul final, testele și limitele. Raportați reproducerea în Issues. Nu comiteți chei, note private sau fișiere fără legătură. Un singur publisher gestionează versiunile coerente, tagul numeric, sursa curată la tag, notele bilingve, fișierele draft verificate, publicarea și deploy-ul Pages explicit. Nu modificați tagul public. .trellis/ este stare locală de lucru, nu dependență CI.