4178b75 platform: drop EOL Node 18 from engines, add Nuxt engines, test 22+24, pin publish (#174) (#313)
881a168 refactor(frame): collapse initializeB24Frame() poll+booleans into one shared init promise (#142 follow-up) (#307)
530fcf6 fix(frame): initializeB24Frame() no longer strands callers or leaks a frame on failed init (#142) (#306)
8f2b79b security(auth): timeout-bounded frame refreshAuth + non-enumerable SdkError.originalError (#189) (#304)
421fb2c docs(reference): document public tools/ + types/ — common, payloads, object helpers, environment (#125) (#303)
7166c0c docs: security patterns page for event receivers (#84) + skill install methods (#124) (#302)
28ac84f docs(frame): re-audit frame/pull pages — fix 4 drifts + refresh audited (#299) (#301)
a0e01a6 docs: pin-b24sdk-examples-to-tags convention (#120) + cross-link logging page in CHANGELOG (#72) (#300)
9924322 docs: drive homepage Cookbook + catalogue from the content collection (#105) (#298)
09439dc refactor(tools): document Text/Type/Browser/useFormatter, fix getUniqId & isTypedArray (#292)
9de8255 docs: filtering reference (#77), setRestrictionManagerParams scope gotcha (#82), redaction-contract jsdoc (#73) (#294)
93170e6 security(http): redact credentials in the post/response success log (#69) (#287)
4671ea8 docs(jsdoc) + types: fill @todo docs (#154) and type request-side filters (#153) (#280)
66cb378 docs: defer legacy REST surface removal to 3.0.0 + migration guide (#278)
639cca4 chore(release): v2.0.0 (#275)
de1b2e1 fix(http): suppress telemetry for positional task.* on v3 too — hoist the carve-out to AbstractHttp (#207)
8118155 build: first-class CommonJS build with external deps (#258) (#268)
252cbd2 fix(batch): key array-mode batch errors by command position (#255) (#267)
52df35a docs(v3): OpenAPI method-discovery guide + nextCursor clarification (#264)
b71a8cf docs: refresh audited dates for tool pages, drop duplicate YAML key (#260)
ccf9618 refactor(batch): hoist soft-error guard to AbstractProcessing (#228) + soft-code coverage/doc (#230)
d9c5f00 docs: fix CI strict docs-lint — refresh audited dates and stale v3 content
609d211 Merge remote-tracking branch 'origin/main' into claude/wizardly-archimedes-w3n7v1
a30fe85 fix(v3): address PR #259 review (9 reviewers) — guards, docs, tests
380606e fix(batch): address review of BatchRefV3 ($ref/$refArray helpers)
8bdd8f0 feat(batch): v3 $ref / $refArray helpers (BatchRefV3)
758b312 fix(v3): address review of the aggregate action
20812da feat(v3): aggregate action (sum/avg/min/max/count/countDistinct)
1870780 fix(filter): address review of FilterV3 (immutability, build validation, docs)
2128da1 feat(jssdk): add CommonJS support via dual ESM/CJS exports (#257)
89270b8 fix(v3): address review of the v3-allowlist removal (CI test, docs, coverage)
e018928 refactor(v3)!: remove the hardcoded v3 method allowlist; server is the source of truth
c58e50c fix(v3): address review of native tail helpers (DESC, select, docs)
27e3d61 fix(pull,http): dedupe CHANNEL_ID (#238) + cap post/catchError error-body log (#236)
9312612 security(pull): clear the cached pull config on destroy() (#242)
aa2b53c deps: bump minimark from 0.2.0 to 1.0.0 (#234)
2575a9a security(logging): redact credential surfaces outside the HTTP layer (#43)
235a755 security(oauth): send token-refresh credentials in the POST body, not the URL query (#149) (#239)
a585a75 security(redact): expand credential keys, case-insensitive matching, query-string scrubbing (#151, #229) (#235)
e84a5ce chore: quick-wins content/process batch — #131, #170, #175 (#231)
e82ee6d fix(http): soft-error batch returns a Result instead of crashing prepareResponse (#145) (#227)
4c76989 fix(http): preserve real error code on retry exhaustion + getStats/headers/query immutability (#143, #144) (#224)
253acd6 fix(pull): PullClient.destroy() removes listeners, cancels all timers, stops the watch loop (#141) (#221)
9f191f7 ci(docs): two anti-drift guards — #96 filesystem-driven page list, #216 v3 action/method check (#219)
e42cf11 docs(site): add 28 missing pages to the /raw prerender list + enable Examples in llms.txt (#165) (#218)
30debff docs+skills: fix v3 API accuracy — #163 broken call snippets, #164 phantom aggregate action (#215)
509d42b docs(llms-txt): remove the unused Nuxt-config link (#202)
2ca5f4e fix(actions): cursorIdKey for list helpers — decouple request cursor from response id (#191)
0e23675 chore(docs-lint): track only source-code link targets for audit freshness (#190)
9d6c6c1 fix(http): retry once on a 401 expired_token / invalid_token; coalesce refreshes (#188)
b833b69 feat(core): keyed error accessors on Result — getErrorsByKey / getErrorMessagesByKey (#187)
91ea9f5 docs(frame): clarify parent.setTitle scope — #pagetitle vs browser tab (#186)
1076ef6 fix(docs): restore ::code-example rendering (#138)
a1a19d3 refactor(docs): adapt server routes to b24jssdk (#137)
Дрейф upstream → нужна синхронизация
Автоотчёт от
sync-upstream.yml. Перевод — руками поAGENTS-SYNC-RUNBOOK.md.4fe82085a4a585c467cc83acde35f871f5317f244178b75747cae4f5bacddb8cb9d6f4cb3432faae🆕 Новые файлы content — принести + перевести
✏️ Изменены уже переведённые — ручной merge по блокам (§3 раннербука)
🧩 app/server/modules — проверить видимые UI-строки (§4)
⚙️ nuxt.config.ts / package.json — ОСТОРОЖНО, защищённые зоны (§5–§7)
Upstream-коммиты в docs/ (4fe8208..4178b75)
После синхронизации: в sync-PR в последней строке указать
Upstream: 4178b75747cae4f5bacddb8cb9d6f4cb3432faae,а в
.github/.upstream-sync-baselineзаписать4178b75747cae4f5bacddb8cb9d6f4cb3432faae(это станет точкой отсчёта).