Skip to content

chore(upstream): порт v2.1.3 — 33 в порт, 122 на решение #207

Open

Description

@kobzevvv

Апстрим v2.1.3 → наш форк (gpt-mem/opencode-mem, main)

  • Апстрим: anomalyco/opencode @ bb25a2f
  • База форка: 843a6c5
  • Коммитов в диапазоне: 211 (разобрано 200)

Итог

Класс Коммитов Что значит
PORT 33 Берём в порт в форк: ядро/CLI/TUI/сервер/SDK/плагины, баги, производительность, экономия токенов, безопасность
ASK 122 Требует решения человека: изменяет наши файлы расхождения, обязательные файлы или то, чего у нас быть не должно, либо задевает схему БД/миграции
SKIP 45 Мимо: файлы из пропускных путей (нативное приложение, веб, сайты, деплой, CI)

Наш профиль

(коротко: что держим — терминальный агент без нативного приложения и без веба,
экономия токенов: усечение вывода инструментов + компактификация, наши фишки: детектор doom-loop, кросс-платформенный спаунер, миграции без леджера масок и идемпотентные;
чего не держим: нативное приложение (packages/app, packages/desktop), веб (packages/web, packages/session-ui, packages/gui-extensions), деплойные и публикационные workflow апстрима)

PORT — что берём в порт (33 коммита)

Подробный список см. в комментарии с полным отчётом.

ASK — на решение человека (122 коммита)

Подробный список см. в комментарии с полным отчётом.

SKIP — мимо (45 коммитов)

Нативное приложение, веб, консоль, статистика, CI/деплой, документация, обновления зависимостей.

Как портировать

  1. Прочитать файл upstream-collected/v2.1.3.json и профиль upstream-policy.json.
  2. Разобрать изменения по трём классам (PORT/ASK/SKIP).
  3. Выполнить этап 2 (сборка порта) для классов PORT и ASK (вопросы ASK решаются человеком).
  4. Обновить форк gpt-mem/opencode-mem: интегрировать PORT-изменения, решить ASK-пункты, убрать SKIP-файлы.

Решение по классу ASK

  • Тянуть / не тянуть: (см. комментарий с полным отчётом)

Чек-лист

  • Проверить, что все PORT-файлы перенесены в форк
  • Разобраться со всеми ASK-пунктами (человеком)
  • Убрать все SKIP-файлы из форка
  • Выполнить тестовый пайплайн
  • Создать PR с порт-файлами

Полный отчёт с деталями по каждому коммиту будет опубликован в комментарии ниже.

Activity

  1. kobzevvv commented on Oct 22, 2026

    @kobzevvv
    CollaboratorAuthor

    Апстрим v2.1.3 → наш форк (gpt-mem/opencode-mem, main)

    • Апстрим: anomalyco/opencode @ bb25a2f
    • База форка: 843a6c5
    • Коммитов в диапазоне: 211 (разобрано 200)

    Итог

    Класс Коммитов Что значит
    PORT 33 Берём в порт в форк: ядро/CLI/TUI/сервер/SDK/плагины, баги, производительность, экономия токенов, безопасность
    ASK 122 Требует решения человека: изменяет наши файлы расхождения, обязательные файлы или то, чего у нас быть не должно, либо задевает схему БД/миграции
    SKIP 45 Мимо: файлы из пропускных путей (нативное приложение, веб, сайты, деплой, CI)

    Наш профиль

    (коротко: что держим — терминальный агент без нативного приложения и без веба,
    экономия токенов: усечение вывода инструментов + компактификация, наши фишки: детектор doom-loop, кросс-платформенный спаунер, миграции без леджера масок и идемпотентные;
    чего не держим: нативное приложение (packages/app, packages/desktop), веб (packages/web, packages/session-ui, packages/gui-extensions), деплойные и публикационные workflow апстрима)

    PORT — что берём в порт

    PR Коммит Что Почему Файлы
    #56205 c77e748d refactor(schema): move session list cursor into schema (anomalyco#56205) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/cli/src/acp/service.ts, packages/client/script/build.ts, packages/client/src/effect/api/api.ts, packages/core/src/session.ts, packages/protocol/src/groups/session.ts, packages/protocol/test/session-cursor.test.ts, packages/schema/src/session.ts, packages/schema/test/contract-hygiene.test.ts, packages/schema/test/session-cursor.test.ts, packages/server/src/handlers/session.ts
    #56243 1cb7bcad refactor(core): page session lists in core (anomalyco#56243) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session.ts, packages/core/src/session/error.ts, packages/core/test/session-list.test.ts, packages/server/src/handlers/session.ts
    #56264 bc5fa1cc feat(plugin): expose session list (anomalyco#56264) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/plugin/host.ts, packages/core/test/plugin/host.ts, packages/core/test/plugin/session-list.test.ts, packages/plugin/src/effect/session.ts, packages/plugin/src/promise/adapter.ts, packages/plugin/src/promise/session.ts, services/www/src/docs/content/build/plugins/effect.mdx, services/www/src/docs/content/build/plugins/index.mdx
    #56504 c38d83c0 fix(protocol): accept idle in the message type filter (anomalyco#56504) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/client/src/effect/api/api.ts, packages/client/src/promise/generated/types.ts, packages/protocol/openapi.json, packages/protocol/src/groups/message.ts, packages/server/test/message.test.ts, services/www/openapi.json, services/www/public/openapi.json
    #56937 18f4363d chore: regenerate openapi spec (anomalyco#56937) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/protocol/openapi.json, services/www/openapi.json, services/www/public/openapi.json
    #53759 fa9da987 feat(core): restore session archiving (anomalyco#53759) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/client/src/effect/api/api.ts, packages/client/src/effect/generated/client.ts, packages/client/src/promise/generated/client.ts, packages/client/src/promise/generated/types.ts, packages/client/src/solid/data.ts, packages/core/src/session.ts, packages/core/src/session/info.ts, packages/core/src/session/message-updater.ts, packages/core/src/session/projector.ts, packages/core/src/session/session.ts, packages/core/src/session/store.ts, packages/core/test/session-archive.test.ts, packages/protocol/src/groups/session.ts, packages/schema/src/session-event.ts, packages/schema/src/session.ts, packages/schema/test/event-manifest.test.ts, packages/server/src/handlers/session.ts, packages/server/test/session-update.test.ts
    #57091 fd658923 fix(core): summarize the whole conversation during compaction (anomalyco#57091) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/compaction.ts, packages/core/test/session-compaction.test.ts, packages/core/test/session-runner.test.ts, services/www/src/docs/content/compaction.mdx
    #54410 a5bf1716 fix(core): keep the instruction baseline on committed revert (anomalyco#54410) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/instruction-state.ts, packages/core/src/session/projector.ts, packages/core/test/session-projector.test.ts, packages/core/test/session-runner.test.ts, specs/v2/session.md
    #56888 31dc7621 feat(voice): add Gemini Live ephemeral token support (anomalyco#56888) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/ai/src/experimental/realtime.ts, packages/ai/test/realtime.test.ts, packages/core/src/voice.ts, packages/core/test/voice.test.ts
    #57255 49f52ff2 feat(schema): add streamUsage compatibility to turn off stream_options (anomalyco#57255) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/ai/src/protocols/openai-chat.ts, packages/ai/src/providers/cohere.ts, packages/ai/src/schema/options.ts, packages/ai/test/provider/openai-chat.test.ts, packages/client/src/promise/generated/types.ts, packages/core/test/config/provider.test.ts, packages/protocol/openapi.json, packages/schema/src/model-compatibility.ts, services/www/openapi.json, services/www/public/openapi.json
    #57148 5a36ee78 fix(core): broadcast models.dev catalog refreshes server-wide (anomalyco#57148) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/models-dev.ts, packages/core/test/models.test.ts
    #57416 89d996c2 fix(core): keep locations with running sessions or background jobs (anomalyco#57416) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/job.ts, packages/core/src/location-activity.ts, packages/core/src/session/execution.ts, packages/core/src/session/run-coordinator.ts, packages/core/test/browser-idle.test.ts, packages/core/test/location-activity.test.ts
    #57146 a9fa57b7 feat(core): typed free-limit error with reset time (anomalyco#57146) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/ai/src/provider-error.ts, packages/ai/src/schema/errors.ts, packages/client/src/effect/api/api.ts, packages/client/src/promise/generated/types.ts, packages/core/src/session/to-session-error.ts, packages/core/test/session-error.test.ts, packages/schema/src/session-error.ts, packages/schema/test/session-error.test.ts
    #57467 86a0950c feat(tui): show free-limit notice, recall prompt, and skip failure toast (anomalyco#57467) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/tui/src/feature-plugins/system/notifications.ts, packages/tui/src/routes/session/index.tsx, packages/tui/test/app-lifecycle.test.tsx, packages/tui/test/cli/cmd/tui/notifications.test.ts
    #57471 adcda1b8 feat(tui): restore animated Go upsell modal on free usage limit (anomalyco#57471) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/tui/src/component/dialog-go-upsell.tsx, packages/tui/src/component/go-upsell-art.ts, packages/tui/src/routes/session/index.tsx, packages/tui/test/app-lifecycle.test.tsx, packages/tui/test/component/go-upsell-art.test.tsx
    #57589 80b87629 fix(core): forward retryAfterMs across provider session errors (anomalyco#57589) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/ai/src/route/executor.ts, packages/ai/src/schema/errors.ts, packages/ai/test/executor.test.ts, packages/core/src/session/to-session-error.ts, packages/core/test/session-error.test.ts
    #57594 dbe08ddc fix(tui): only show location unavailable when the server reports it missing (anomalyco#57594) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/tui/src/context/location.tsx
    #51939 5c526266 fix(core): generate titles at the lowest model variant (anomalyco#51939) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/context.ts, packages/core/test/session-title.test.ts
    #57626 15adc3d9 fix(core): send only changed entries in instruction updates (anomalyco#57626) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/mcp/instructions.ts, packages/core/src/reference/instructions.ts, packages/core/src/skill/instructions.ts, packages/core/test/mcp-instructions.test.ts, packages/core/test/reference-instructions.test.ts, packages/core/test/skill/instructions.test.ts
    #57648 d2812d14 fix(core): tighten session title prompt (anomalyco#57648) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/plugin/agent.ts, packages/core/src/session/title.ts, packages/core/test/session-runner.test.ts
    #57194 79fd8063 feat(server): list experimental voice models (anomalyco#57194) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/ai/src/experimental.ts, packages/ai/src/experimental/realtime.ts, packages/ai/test/realtime.test.ts, packages/client/src/effect/api/api.ts, packages/client/src/effect/generated/client.ts, packages/client/src/promise/generated/client.ts, packages/client/src/promise/generated/types.ts, packages/client/test/promise.test.ts, packages/core/src/voice.ts, packages/core/test/voice.test.ts, packages/protocol/openapi.json, packages/protocol/src/groups/voice.ts, packages/server/src/handlers/voice.ts, packages/server/test/voice.test.ts, services/www/openapi.json, services/www/public/openapi.json
    #57810 870ab9dc fix(core): let configured provider baseURL override catalog model endpoints (anomalyco#57810) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/config/plugin/provider.ts, packages/core/test/config/provider.test.ts
    #57826 93bf0024 refactor(core): reuse shared isRecord and stringify helpers (anomalyco#57826) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/aisdk.ts, packages/core/src/config/plugin/skill-file.ts, packages/core/src/formatter/builtins.ts, packages/core/src/plugin/provider/github-copilot.ts, packages/core/src/session/runner/publish-llm-event.ts, packages/core/src/tool/runtime.ts, packages/core/src/v1/config/provider-options.ts
    #57822 9c8e9e4b refactor(core): remove unused NamedError, ConfigErrorV1, and iife helpers (anomalyco#57822) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/plugin/provider/cloudflare-workers-ai.ts, packages/core/src/util/error.ts, packages/core/src/util/iife.ts, packages/core/src/v1/config/error.ts
    #57823 0c8e7a96 fix(core): preserve Permission.Error in FileAccess.Interface (anomalyco#57823) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/file-access.ts
    #57825 bddf5346 refactor(core): remove redundant DeepMutable wrappers and casts in integration, agent, and plugin host (anomalyco#57825) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/agent.ts, packages/core/src/integration.ts, packages/core/src/plugin/host.ts
    #57891 a7a508b8 refactor(ai-sdk): decode JSON body record in one pass and tighten option types (anomalyco#57891) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/aisdk.ts, packages/core/test/aisdk.test.ts
    #57889 2e5a4dee refactor(core): tighten pty, plugin, question, and snapshot types and checks (anomalyco#57889) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/plugin.ts, packages/core/src/pty.ts, packages/core/src/snapshot.ts, packages/core/src/tool/plugin/question.ts
    #57887 e98ab915 refactor(core): drop redundant String casts on Model.Ref in to-llm-message (anomalyco#57887) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/runner/to-llm-message.ts
    #57946 7012c9db refactor(core): avoid redundant payload decoding in session inbox and prompt (anomalyco#57946) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/inbox.ts, packages/core/src/session/message-updater.ts, packages/core/src/session/prompt.ts
    #57945 c87f6b71 fix(core): validate compaction keepID with SessionMessage.ID schema (anomalyco#57945) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/session/history.ts, packages/core/src/session/projector.ts, packages/core/test/session-compaction.test.ts
    #57910 6a5f15ad fix(core): ignore unsupported agent colors (anomalyco#57910) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/test/config/agent.test.ts, packages/schema/src/config/agent.ts
    #57949 1b1ad488 refactor(core): drop dead checks and redundant branding in tool plugins and mcp (anomalyco#57949) Ядро/CLI/TUI/сервер/плагины, баги, производительность, экономия токенов packages/core/src/mcp/index.ts, packages/core/src/tool/mcp.ts, packages/core/src/tool/plugin/read.ts, packages/core/src/tool/plugin/subagent.ts, packages/core/test/tool-read.test.ts

    ASK — на решение человека

    PR Коммит Что Почему Файлы
    без PR 4e95dacd sync release versions for v2.0.32 [skip ci] touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence CHANGELOG.md, bun.lock, package.json, packages/ai/package.json, packages/app/package.json, packages/cli/package.json, packages/client/package.json, packages/codemode/package.json, packages/console/app/package.json, packages/console/function/package.json, packages/core/package.json, packages/desktop/package.json, packages/function/package.json, packages/gui-extensions/package.json, packages/http-recorder/package.json, packages/httpapi-codegen/package.json, packages/latex/package.json, packages/merman/package.json, packages/plugin-browser/package.json, packages/plugin/package.json, packages/plugins/figma/package.json, packages/protocol/package.json, packages/schema/package.json, packages/sdk/package.json, packages/server/package.json, packages/session-ui/package.json, packages/simulation/package.json, packages/stats/app/package.json, packages/stats/core/package.json, packages/stats/server/package.json, packages/theme/package.json, packages/tui/package.json, packages/ui/package.json, packages/util/package.json, packages/web/package.json, sdks/vscode/package.json, services/update/package.json
    #56262 07bbd0fd chore(ci): pause WinGet submission until packages are accepted (anomalyco#56262) no_matching_scope script/publish.ts
    #56272 543b42ec test(cli): remove flaky managed service environment test (anomalyco#56272) touches_our_divergence; touches_our_divergence packages/cli/test/service.test.ts
    без PR 7e1bc917 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #56234 512165ce fix(tui): share dialog width instead of one resize listener per row (anomalyco#56234) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-select.tsx, packages/tui/test/cli/tui/dialog-select.test.tsx
    #56301 ae6a7061 docs(console): remove Muse Spark 1.3 Contributor Free (anomalyco#56301) no_matching_scope services/www/src/docs/content/console/models.mdx
    #56286 4a530281 fix(ai): tolerate unknown and untyped stream events (anomalyco#56286) no_matching_scope packages/ai/src/protocols/anthropic-messages.ts, packages/ai/src/protocols/cohere-chat.ts, packages/ai/src/protocols/google-interactions.ts, packages/ai/src/protocols/open-responses.ts, packages/ai/src/protocols/shared.ts, packages/ai/test/provider/anthropic-messages.test.ts, packages/ai/test/provider/cohere.test.ts, packages/ai/test/provider/google-vertex-interactions.test.ts, packages/ai/test/provider/open-responses-errors.test.ts, packages/ai/test/provider/openai-responses.test.ts
    #56307 22e771f5 fix(util): retry broken-pipe transport failures (anomalyco#56307) touches_our_divergence; touches_our_divergence packages/util/src/retry.ts
    #56226 a801306d chore(infra): remove dead honeycomb monitoring and log processor (anomalyco#56226) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, infra/console.ts, infra/monitoring.ts, infra/secret.ts, packages/console/app/src/routes/honeycomb/webhook.ts, packages/console/function/package.json, packages/console/function/src/log-processor.ts, packages/console/function/sst-env.d.ts, packages/console/function/tsconfig.json, sst-env.d.ts, sst.config.ts
    #56370 a49f1791 chore(infra): remove honeycomb and random providers (anomalyco#56370) touches_our_divergence; touches_our_divergence .github/workflows/deploy.yml, sst.config.ts
    без PR 8c173a8f chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #56497 86c7f7c8 fix(core): retry buffered generations with shared policy (anomalyco#56497) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/generate.ts, packages/core/src/model-retry.ts, packages/core/src/session/generate.ts, packages/core/src/session/runner/retry.ts, packages/core/test/generate.test.ts, packages/core/test/session-generate.test.ts, packages/core/test/session-runner-retry.test.ts
    #56300 23359e9f chore: upgrade typecheck to TypeScript 7.0.2 (anomalyco#56300) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; migration_or_schema; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, package.json, packages/ai/package.json, packages/ai/tsconfig.json, packages/app/e2e/tsconfig.json, packages/app/package.json, packages/app/tsconfig.json, packages/cli/package.json, packages/cli/tsconfig.json, packages/client/package.json, packages/client/tsconfig.json, packages/codemode/package.json, packages/codemode/tsconfig.json, packages/console/app/package.json, packages/containers/tsconfig.json, packages/core/package.json, packages/core/src/database/migration.ts, packages/core/tsconfig.json, packages/core/tsconfig.tests.json, packages/desktop/package.json, packages/gui-extensions/package.json, packages/http-recorder/package.json, packages/http-recorder/test/tsconfig.json, packages/http-recorder/tsconfig.json, packages/httpapi-codegen/package.json, packages/httpapi-codegen/tsconfig.json, packages/latex/package.json, packages/latex/tsconfig.json, packages/merman/package.json, packages/merman/tsconfig.json, packages/plugin-browser/package.json, packages/plugin-browser/tsconfig.json, packages/plugin/package.json, packages/plugin/tsconfig.json, packages/plugins/figma/package.json, packages/plugins/figma/tsconfig.json, packages/protocol/package.json, packages/protocol/tsconfig.json, packages/schema/package.json, packages/schema/tsconfig.json, packages/script/tsconfig.json, packages/sdk/package.json, packages/sdk/tsconfig.json, packages/server/package.json, packages/server/tsconfig.json, packages/session-ui/package.json, packages/session-ui/performance/markdown-lifetime/ui-styles.d.ts, packages/simulation/package.json, packages/simulation/tsconfig.json, packages/stats/app/package.json, packages/stats/core/package.json, packages/stats/server/package.json, packages/theme/package.json, packages/theme/tsconfig.json, packages/tui/package.json, packages/tui/src/component/terminal-pane.tsx, packages/tui/tsconfig.json, packages/ui/package.json, packages/util/package.json, packages/util/tsconfig.json, script/lint-changed.ts, script/profile-typecheck.ts, services/changelog/package.json, services/files/package.json, services/update/package.json, tsconfig.json
    без PR 594af423 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #56532 579b86fc docs(console): align card fee and billing wording with the billing page (anomalyco#56532) no_matching_scope services/www/src/docs/content/console/go.mdx, services/www/src/docs/content/console/models.mdx
    #56568 8f7b0120 docs(www): format yield* in Effect snippets (anomalyco#56568) no_matching_scope services/www/src/docs/content/build/client/effect.mdx, services/www/src/docs/content/build/plugins/effect.mdx, services/www/src/docs/content/build/plugins/effect/rpc.mdx
    #56588 49be0c53 docs(www): fix contradictions and typos in the v2 docs (anomalyco#56588) no_matching_scope services/www/src/docs/content/agents.mdx, services/www/src/docs/content/cli/commands.mdx, services/www/src/docs/content/cli/theme.mdx, services/www/src/docs/content/cli/web.mdx, services/www/src/docs/content/config.mdx, services/www/src/docs/content/console/go.mdx, services/www/src/docs/content/index.mdx, services/www/src/docs/content/themes.mdx
    #56592 e4b2afcf fix(www): scroll wide docs tables and label the docs search (anomalyco#56592) no_matching_scope services/www/astro.config.ts, services/www/src/docs/components/DocsHeader.astro, services/www/src/docs/rehype-table-scroll.ts
    без PR 4745089e chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #56321 3bdab634 fix(core): report shell exit only after output is captured (anomalyco#56321) touches_our_divergence; must_keep; touches_our_divergence packages/core/src/shell.ts
    #55597 49e9786b fix(core): bound skill discovery and watches (anomalyco#55597) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/config/plugin/compatibility.ts, packages/core/src/config/plugin/skill-scan.ts, packages/core/src/config/plugin/skill.ts, packages/core/src/config/watch.ts, packages/core/src/skill.ts, packages/core/test/config/config.test.ts, packages/core/test/config/skill.test.ts, packages/core/test/config/watch.test.ts, packages/util/src/fs-util.ts, packages/util/src/glob.ts, services/www/src/docs/content/skills.mdx
    #55817 63c1a27a fix(core): tolerate sandboxed filesystem denials during location boot (anomalyco#55817) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/cli/src/server-process.ts, packages/core/src/config/plugin/instruction.ts, packages/core/src/filesystem.ts, packages/core/test/config/config.test.ts, packages/core/test/instruction-discovery.test.ts, packages/core/test/util/fs-util.test.ts, packages/util/src/fs-util.ts
    #56669 60a5a6ca fix(ai): treat null Responses stream fields as absent (anomalyco#56669) no_matching_scope packages/ai/src/protocols/open-responses.ts, packages/ai/src/protocols/shared.ts, packages/ai/test/provider/openai-compatible-responses.test.ts
    #56364 214fb7fd docs(console): add harness setup guides (anomalyco#56364) no_matching_scope services/www/src/docs/content/console/go.mdx, services/www/src/docs/content/console/harnesses/claude-code.mdx, services/www/src/docs/content/console/harnesses/codex.mdx, services/www/src/docs/content/console/harnesses/hermes.mdx, services/www/src/docs/content/console/harnesses/index.mdx, services/www/src/docs/content/console/harnesses/pi.mdx, services/www/src/docs/content/console/harnesses/raycast.mdx, services/www/src/docs/content/console/index.mdx, services/www/src/docs/lib/navigation.ts
    без PR da9d436c chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #56818 802f2d8e chore(ci): run Cloudflare deploys on Blacksmith runners (anomalyco#56818) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence .github/workflows/deploy-changelog.yml, .github/workflows/deploy-files.yml, .github/workflows/deploy-posts.yml, .github/workflows/deploy-update.yml, .github/workflows/deploy-www.yml, .github/workflows/deploy.yml
    #56841 9c2611b4 chore(ci): verify Cloudflare token rotation (anomalyco#56841) no_matching_scope
    #56839 501b15af docs: point README install methods at V2 (anomalyco#56839) touches_our_divergence; touches_our_divergence README.ar.md, README.bn.md, README.br.md, README.bs.md, README.da.md, README.de.md, README.es.md, README.fr.md, README.gr.md, README.it.md, README.ja.md, README.ko.md, README.md, README.no.md, README.pl.md, README.ru.md, README.th.md, README.tr.md, README.uk.md, README.vi.md, README.zh.md, README.zht.md
    без PR afc68054 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #56905 8c9c85c2 fix(core): log providers removed by policy (anomalyco#56905) touches_our_divergence; touches_our_divergence packages/core/src/config/plugin/policy.ts
    #56659 fede5ddd feat(core): edit saved permissions (anomalyco#56659) touches_our_divergence; touches_our_divergence packages/client/src/effect/api/api.ts, packages/client/src/effect/generated/client.ts, packages/client/src/promise/generated/client.ts, packages/client/src/promise/generated/types.ts, packages/core/src/permission/saved.ts, packages/core/test/permission.test.ts, packages/protocol/src/errors.ts, packages/protocol/src/groups/permission.ts, packages/server/src/handlers/permission.ts, packages/server/test/permission-saved.test.ts
    #55494 31718397 fix(nix): ship the root script/ dir to the CLI build (anomalyco#55494) no_matching_scope nix/node_modules.nix
    #56889 ceaef658 fix(nix): preserve root dependency peer context (anomalyco#56889) no_matching_scope nix/hashes.json, nix/node_modules.nix
    без PR ba06ff9e chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #55988 cec70f3e test(gui-extensions): wait for worker rpc handlers to start before aborting (anomalyco#55988) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/gui-extensions/src/microsoft-office/worker-rpc.fixture.ts, packages/gui-extensions/src/microsoft-office/worker-rpc.test.ts
    без PR f394d9d4 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57060 a15de38e fix(merman): treat apostrophes in flowchart labels as text (anomalyco#57060) no_matching_scope packages/merman/src/flowchart/flowchart.test.ts, packages/merman/src/flowchart/parser.ts
    #55339 c7ddff77 chore: OpenTUI 0.6.5 (anomalyco#55339) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, bunfig.toml, package.json, packages/cli/dev/tui.ts, packages/cli/src/services/update-preflight.tsx, packages/cli/src/ui/timeline.tsx, packages/latex/src/markdown.test.ts, packages/merman/src/test/markdown.test.ts, packages/plugin/package.json, packages/simulation/src/frontend/renderer.ts, packages/simulation/src/frontend/simulation.ts, packages/simulation/test/recording.test.ts, packages/theme/src/tui/syntax.ts, packages/tui/bunfig.toml, packages/tui/package.json, packages/tui/src/app.tsx, packages/tui/src/component/fade-in-text.tsx, packages/tui/src/component/masked-text.ts, packages/tui/src/component/one-cell-spinner.tsx, packages/tui/src/component/patch-diff.tsx, packages/tui/src/component/prompt/autocomplete.tsx, packages/tui/src/component/prompt/index.tsx, packages/tui/src/component/register-spinner.ts, packages/tui/src/component/retry-provider.tsx, packages/tui/src/component/session-tabs.tsx, packages/tui/src/component/shimmer-text.tsx, packages/tui/src/component/spinner-renderable.ts, packages/tui/src/component/spinner.tsx, packages/tui/src/component/title-shimmer.tsx, packages/tui/src/context/program-status.ts, packages/tui/src/context/session-tabs.tsx, packages/tui/src/context/theme.tsx, packages/tui/src/editor.ts, packages/tui/src/feature-plugins/system/diff-viewer-file-tree.tsx, packages/tui/src/feature-plugins/system/diff-viewer.tsx, packages/tui/src/mini/footer.form.tsx, packages/tui/src/mini/footer.permission.tsx, packages/tui/src/mini/footer.prompt.tsx, packages/tui/src/mini/footer.subagent.tsx, packages/tui/src/mini/footer.ts, packages/tui/src/mini/footer.view.tsx, packages/tui/src/mini/mono.ts, packages/tui/src/mini/prompt.editor.ts, packages/tui/src/mini/prompt.shared.ts, packages/tui/src/mini/runtime.lifecycle.ts, packages/tui/src/mini/scrollback.shared.ts, packages/tui/src/mini/scrollback.surface.ts, packages/tui/src/mini/scrollback.writer.tsx, packages/tui/src/mini/theme.ts, packages/tui/src/prompt/directory-completion.ts, packages/tui/src/prompt/display.ts, packages/tui/src/prompt/history.tsx, packages/tui/src/prompt/mention.ts, packages/tui/src/prompt/part.ts, packages/tui/src/routes/session/composer/subagents-tab.tsx, packages/tui/src/routes/session/group-view.tsx, packages/tui/src/routes/session/index.tsx, packages/tui/src/routes/session/message-parts.tsx, packages/tui/src/routes/session/thinking-syntax.ts, packages/tui/src/ui/spinner.ts, packages/tui/src/util/renderer.ts, packages/tui/test/app-lifecycle.test.tsx, packages/tui/test/cli/tui/diff-viewer.test.tsx, packages/tui/test/compact-admission.test.tsx, packages/tui/test/completion-notices.test.tsx, packages/tui/test/component/retry-provider.test.tsx, packages/tui/test/component/shimmer-text.test.tsx, packages/tui/test/component/spinner-renderable.test.tsx, packages/tui/test/context/program-status.test.ts, packages/tui/test/copy-session-id.test.tsx, packages/tui/test/editor.test.ts, packages/tui/test/fixture/app.ts, packages/tui/test/fixture/fixture.ts, packages/tui/test/fixture/plugin/native-resources/tui.tsx, packages/tui/test/markdown-streaming.test.tsx, packages/tui/test/mini/footer.test.ts, packages/tui/test/mini/footer.view.test.tsx, packages/tui/test/mini/prompt.editor.test.ts, packages/tui/test/mini/prompt.shared.test.ts, packages/tui/test/mini/scrollback.surface.test.ts, packages/tui/test/mini/theme.test.ts, packages/tui/test/new-session-id.test.tsx, packages/tui/test/plugin-keymap.test.tsx, packages/tui/test/plugin-markdown.test.tsx, packages/tui/test/plugin-native-resources.test.tsx, packages/tui/test/preload.ts, packages/tui/test/prompt-offset.test.tsx, packages/tui/test/prompt-paste.test.tsx, packages/tui/test/prompt/autocomplete.test.ts, packages/tui/test/prompt/display.test.ts, packages/tui/test/prompt/history.test.ts, packages/tui/test/prompt/mention.test.ts, packages/tui/test/prompt/part.test.ts, packages/tui/test/session-activity-anchor.test.tsx, packages/tui/test/session-backfill-disclosure.test.tsx, packages/tui/test/session-group-navigation.test.tsx, packages/tui/test/session-home.test.tsx, packages/tui/test/session-mount-budget.test.tsx, packages/tui/test/session-terminal-availability.test.tsx, packages/tui/test/session-wheel-focus.test.tsx, packages/tui/test/stats.view.test.tsx, packages/tui/test/theme/v2/resolve.test.ts, packages/tui/test/ui/link.test.tsx, packages/tui/test/util/renderer.test.ts, packages/tui/test/util/selection-keys.test.ts, script/upgrade-opentui.ts, services/www/src/docs/content/build/plugins/cli.mdx
    без PR 815de995 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #56982 ce15cd88 fix(core): report removed running shells as killed (anomalyco#56982) touches_our_divergence; must_keep; touches_our_divergence packages/core/src/shell.ts
    #57119 367c8fbe test(core): bound advance by real time instead of steps (anomalyco#57119) touches_our_divergence; touches_our_divergence .opencode/skills/unit-tests/SKILL.md, packages/core/test/lib/clock.ts
    #57062 86ac38ad fix(tui): keep mini waiting when session.wait loses its transport (anomalyco#57062) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/mini/stream-v2.transport.ts, packages/tui/test/mini/stream-v2.transport.test.ts
    #50248 b56e2537 fix(cli): keep mini session waits alive (anomalyco#50248) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/cli/src/mini.ts, packages/cli/test/fixture/mini-wait.ts, packages/cli/test/mini-timeout.test.ts
    #55149 52a10f57 fix(tui): keep long-pending requests past Bun's fetch deadline (anomalyco#55149) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/cli/src/mini.ts, packages/cli/src/run/run.ts, packages/tui/src/app.tsx, packages/tui/src/component/prompt/index.tsx, packages/tui/test/prompt-shell-failure.test.tsx, packages/util/src/no-timeout-fetch.test.ts, packages/util/src/no-timeout-fetch.ts
    #57165 157ad7f2 docs: link Learn AI Coding course (anomalyco#57165) no_matching_scope services/www/src/docs/content/index.mdx
    #57154 f36cda5b fix(tui): show keyboard focus in export options (anomalyco#57154) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-export-options.tsx, packages/tui/test/component/dialog-export-options.test.tsx
    #57175 b154f6ac fix(core): stop polling DigitalOcean routers (anomalyco#57175) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/plugin/provider/digitalocean.ts, packages/core/test/plugin/provider-digitalocean.test.ts
    #56245 92242b55 feat(core): enable persistent PTYs on Windows (anomalyco#56245) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, bunfig.toml, packages/cli/package.json, packages/cli/script/opencode-pty.ts, packages/cli/src/node/target.ts, packages/cli/test/node-assets.test.ts, packages/cli/test/service.test.ts, packages/core/package.json, packages/core/src/persistent-pty/binary.bun.ts, packages/core/src/persistent-pty/binary.node.ts, packages/server/package.json, packages/server/test/fetch.test.ts
    #57188 c193810f docs(console): document personal API keys (anomalyco#57188) no_matching_scope services/www/src/docs/content/console/api/index.mdx, services/www/src/docs/content/console/api/inference.mdx, services/www/src/docs/content/console/harnesses/claude-code.mdx, services/www/src/docs/content/console/harnesses/codex.mdx, services/www/src/docs/content/console/harnesses/hermes.mdx, services/www/src/docs/content/console/harnesses/index.mdx, services/www/src/docs/content/console/harnesses/pi.mdx, services/www/src/docs/content/console/harnesses/raycast.mdx
    #56983 d9fe53e9 fix(core): keep the image budget cut stable so the prompt cache survives (anomalyco#56983) touches_our_divergence; touches_our_divergence packages/core/src/session/model-request.ts, packages/core/test/session-model-request.test.ts
    #57181 41016abf fix(core): publish sdk.plugin.updated globally across locations (anomalyco#57181) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/plugin/sdk.ts, packages/core/test/plugin/supervisor.test.ts
    #57151 de19af92 fix(tui): open /models on the current model and keep the server's model order (anomalyco#57151) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/component/dialog-model.tsx, packages/tui/test/cli/cmd/tui/model-options.test.ts
    #54090 1b2c720c fix(core): drop undefined permission metadata values before publishing requests (anomalyco#54090) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/permission.ts, packages/core/test/permission.test.ts
    без PR c718e6b9 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #57201 d2c4c38b fix(core): only poll Console config while connected (anomalyco#57201) touches_our_divergence; touches_our_divergence packages/core/src/plugin/provider/opencode.ts
    #56947 8f7db12b feat: restore the todowrite tool behind an experimental flag (anomalyco#56947) migration_or_schema; touches_our_divergence; must_keep; migration_or_schema; touches_our_divergence packages/client/src/promise/generated/types.ts, packages/core/src/config/normalize.ts, packages/core/src/database/v1-migration.bun.ts, packages/core/src/plugin/internal.ts, packages/core/src/tool/plugin/todo.ts, packages/core/src/tool/todowrite.txt, packages/core/test/config/normalization.test.ts, packages/core/test/tool-todo.test.ts, packages/core/test/v1-migration.test.ts, packages/protocol/openapi.json, packages/schema/src/config/experimental.ts, packages/tui/src/component/todo-item.tsx, packages/tui/src/feature-plugins/sidebar/todo.tsx, packages/tui/src/feature-plugins/system/storybook/index.tsx, packages/tui/src/feature-plugins/system/storybook/todo.tsx, packages/tui/src/mini/demo.ts, packages/tui/src/mini/entry.body.ts, packages/tui/src/mini/scrollback.writer.tsx, packages/tui/src/mini/theme.ts, packages/tui/src/mini/tool.ts, packages/tui/src/mini/types.ts, packages/tui/src/plugin/builtins.ts, packages/tui/src/routes/session/index.tsx, packages/tui/src/routes/session/message-parts.tsx, packages/tui/src/util/todo.ts, services/www/openapi.json, services/www/public/openapi.json, services/www/src/docs/content/config.mdx, services/www/src/docs/content/migrate-v1.mdx
    #57227 b29b08aa fix(tui): color the selected file in the diff tree (anomalyco#57227) touches_our_divergence; touches_our_divergence packages/tui/src/feature-plugins/system/diff-viewer-file-tree.tsx
    без PR 6e9c8539 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57239 57f4a364 fix(ai): only send store on chat completions for OpenAI and Azure (anomalyco#57239) no_matching_scope packages/ai/src/protocols/alibaba-chat.ts, packages/ai/src/protocols/openai-chat.ts, packages/ai/src/protocols/venice-chat.ts, packages/ai/src/protocols/zai-chat.ts, packages/ai/src/providers/cerebras.ts, packages/ai/src/providers/cohere.ts, packages/ai/src/providers/deepinfra.ts, packages/ai/src/providers/deepseek.ts, packages/ai/src/providers/groq.ts, packages/ai/src/providers/meta.ts, packages/ai/src/providers/minimax.ts, packages/ai/src/providers/moonshot.ts, packages/ai/src/providers/togetherai.ts, packages/ai/test/fixtures/recordings/digitalocean-chat/gpt-nano-continues-a-tool-call-with-cache-markers.json, packages/ai/test/fixtures/recordings/digitalocean-chat/gpt-nano-reuses-a-cached-prompt.json, packages/ai/test/fixtures/recordings/digitalocean-chat/haiku-continues-a-tool-call-with-cache-markers.json, packages/ai/test/fixtures/recordings/digitalocean-chat/haiku-reuses-a-cached-prompt.json, packages/ai/test/fixtures/recordings/openrouter-reasoning-tool-loop.json, packages/ai/test/fixtures/recordings/openrouter-reasoning.json, packages/ai/test/provider/native-providers.test.ts, packages/ai/test/provider/openai-chat.test.ts
    #57172 6ec56821 refactor(core): reuse codemode runtime across executions (anomalyco#57172) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/codemode/tool.ts, packages/core/src/tool.ts, packages/core/test/tool-execute.test.ts
    #57173 16c33837 refactor(ai): avoid copying unchanged request data during sanitization (anomalyco#57173) no_matching_scope packages/ai/src/utils/sanitize.ts, packages/ai/test/sanitize.test.ts
    без PR 40cdf4fb chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #57285 db45c950 fix(codemode): honor Uint8Array.from mappers, compare byte searches without coercion, skip flatMap holes, and truncate fractional radixes (anomalyco#57285) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/codemode/interpreter-support.md, packages/codemode/src/stdlib/array.ts, packages/codemode/src/stdlib/bytes.ts, packages/codemode/src/stdlib/number.ts, packages/codemode/test/array-callbacks-test262.test.ts, packages/codemode/test/stdlib.test.ts
    #57260 acdcdb8d refactor: v2.1 minor breaking changes (anomalyco#57260) migration_or_schema; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; migration_or_schema; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/app/e2e/utils/timeline.ts, packages/app/src/home/projects/controller.tsx, packages/cli/src/commands/handlers/auth/import.ts, packages/cli/src/commands/handlers/session/import.ts, packages/cli/src/run/noninteractive.ts, packages/cli/test/acp/compaction.test.ts, packages/cli/test/acp/prompt.test.ts, packages/cli/test/acp/translate.test.ts, packages/cli/test/auth.test.ts, packages/cli/test/import-export.test.ts, packages/client/src/effect/api/api.ts, packages/client/src/promise/generated/types.ts, packages/client/src/solid/data.ts, packages/client/test/solid-compaction.test.ts, packages/client/test/solid-usage.test.ts, packages/core/src/bus.ts, packages/core/src/credential.ts, packages/core/src/database/v1-migration.bun.ts, packages/core/src/integration.ts, packages/core/src/model-resolver.ts, packages/core/src/plugin/provider/azure.ts, packages/core/src/plugin/provider/snowflake-cortex.ts, packages/core/src/session/compaction.ts, packages/core/src/session/context.ts, packages/core/src/session/generate.ts, packages/core/src/session/history.ts, packages/core/src/session/inbox.ts, packages/core/src/session/message-updater.ts, packages/core/src/session/model-request.ts, packages/core/src/session/projector.ts, packages/core/src/session/provider-context.ts, packages/core/src/session/recent-text.ts, packages/core/src/session/revert.ts, packages/core/src/session/runner/llm.ts, packages/core/src/session/runner/publish-llm-event.ts, packages/core/src/session/runner/step.ts, packages/core/src/session/runner/to-llm-message.ts, packages/core/src/session/transfer.ts, packages/core/test/bus.test.ts, packages/core/test/config/compaction.test.ts, packages/core/test/credential.test.ts, packages/core/test/fixture/native/2.0.14-media.json, packages/core/test/integration.test.ts, packages/core/test/model-resolver.test.ts, packages/core/test/plugin/provider-azure.test.ts, packages/core/test/session-compaction.test.ts, packages/core/test/session-create.test.ts, packages/core/test/session-instructions.test.ts, packages/core/test/session-native-compaction.test.ts, packages/core/test/session-native.test.ts, packages/core/test/session-projector.test.ts, packages/core/test/session-runner-message.test.ts, packages/core/test/session-runner-tool-events.test.ts, packages/core/test/session-runner.test.ts, packages/core/test/v1-migration.test.ts, packages/plugin/src/effect/session.ts, packages/plugin/src/promise/session.ts, packages/protocol/openapi.json, packages/protocol/src/groups/session.ts, packages/schema/src/credential-legacy.ts, packages/schema/src/credential.ts, packages/schema/src/event-manifest.ts, packages/schema/src/session-compaction-event.ts, packages/schema/src/session-event.ts, packages/schema/src/session-legacy.ts, packages/schema/src/session-message.ts, packages/schema/src/session-provider-context.ts, packages/schema/test/contract-hygiene.test.ts, packages/schema/test/credential-legacy.test.ts, packages/schema/test/event-manifest.test.ts, packages/schema/test/session-legacy.test.ts, packages/schema/test/session-terminal.test.ts, packages/server/test/message.test.ts, packages/server/test/session-import.test.ts, packages/session-ui/src/message/message-content.tsx, packages/session-ui/src/storybook/current-session-fixtures.ts, packages/session-ui/src/timeline/mermaid.stories.tsx, packages/session-ui/src/timeline/rows-current.test.ts, packages/session-ui/src/timeline/timeline-row.stories.tsx, packages/tui/src/mini/stream-v2.subagent.ts, packages/tui/src/mini/stream-v2.transport.ts, packages/tui/src/routes/session/index.tsx, packages/tui/test/cli/tui/data.test.tsx, packages/tui/test/cli/tui/session-rows.test.ts, packages/tui/test/mini/stream-v2.transport.test.ts, services/www/openapi.json, services/www/public/openapi.json, services/www/src/docs/content/build/plugins/index.mdx, services/www/src/docs/content/compaction.mdx
    #56092 9d90d892 fix(tui): add footer gap to simple dialogs (anomalyco#56092) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-export-result.tsx, packages/tui/src/ui/dialog-prompt.tsx, packages/tui/src/ui/dialog.tsx
    #56093 b81629e4 feat(tui): match session exported dialog to new designs (anomalyco#56093) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-export-result.tsx, packages/tui/src/ui/dialog.tsx
    #56094 d63c8d25 fix(tui): use faint secondary text in list dialogs (anomalyco#56094) touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-select.tsx
    #56095 1d2190be feat(tui): match model switcher to new designs (anomalyco#56095) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/component/dialog-model.tsx, packages/tui/src/ui/dialog-select.tsx, packages/tui/test/cli/cmd/tui/model-options.test.ts
    без PR d30e990c sync release versions for v2.1.0 [skip ci] touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence CHANGELOG.md, bun.lock, package.json, packages/ai/package.json, packages/app/package.json, packages/cli/package.json, packages/client/package.json, packages/codemode/package.json, packages/console/app/package.json, packages/core/package.json, packages/desktop/package.json, packages/function/package.json, packages/gui-extensions/package.json, packages/http-recorder/package.json, packages/httpapi-codegen/package.json, packages/latex/package.json, packages/merman/package.json, packages/plugin-browser/package.json, packages/plugin/package.json, packages/plugins/figma/package.json, packages/protocol/package.json, packages/schema/package.json, packages/sdk/package.json, packages/server/package.json, packages/session-ui/package.json, packages/simulation/package.json, packages/stats/app/package.json, packages/stats/core/package.json, packages/stats/server/package.json, packages/theme/package.json, packages/tui/package.json, packages/ui/package.json, packages/util/package.json, packages/web/package.json, sdks/vscode/package.json, services/update/package.json
    #56097 19b12707 feat(tui): add free model picker under new designs (anomalyco#56097) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/component/dialog-model-free.tsx, packages/tui/src/component/dialog-model.tsx, packages/tui/src/component/model-options.tsx, packages/tui/src/ui/dialog-select.tsx, packages/tui/test/cli/cmd/tui/model-options.test.ts
    #56098 2b3fc314 fix(tui): use base color for typed search text in list dialogs (anomalyco#56098) touches_our_divergence; touches_our_divergence packages/tui/src/ui/dialog-select.tsx
    #56099 d249607e feat(tui): match settings and export dialogs to new designs (anomalyco#56099) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/tui/src/component/dialog-config.tsx, packages/tui/src/component/dialog-theme-list.tsx, packages/tui/src/ui/dialog-export-options.tsx, packages/tui/src/ui/dialog-select.tsx
    #56100 d8148796 feat(tui): show setting descriptions under new designs (anomalyco#56100) touches_our_divergence; touches_our_divergence packages/tui/src/component/dialog-config.tsx, packages/tui/src/ui/dialog-select.tsx
    #57386 930c0c8b docs(console): explain API keys and scoped permissions (anomalyco#57386) no_matching_scope services/www/src/docs/content/console/api/budgets.mdx, services/www/src/docs/content/console/api/index.mdx, services/www/src/docs/content/console/members.mdx
    без PR 81b2d7a1 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57075 e9ac459c fix(core): build provider variants after package normalization (anomalyco#57075) touches_our_divergence; touches_our_divergence packages/core/src/config/plugin/provider.ts, packages/core/src/plugin/provider/opencode.ts, packages/core/test/config/provider.test.ts, packages/core/test/plugin/provider-opencode.test.ts
    без PR 133b1ebf sync release versions for v2.1.1 [skip ci] touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, package.json, packages/ai/package.json, packages/app/package.json, packages/cli/package.json, packages/client/package.json, packages/codemode/package.json, packages/console/app/package.json, packages/core/package.json, packages/desktop/package.json, packages/function/package.json, packages/gui-extensions/package.json, packages/http-recorder/package.json, packages/httpapi-codegen/package.json, packages/latex/package.json, packages/merman/package.json, packages/plugin-browser/package.json, packages/plugin/package.json, packages/plugins/figma/package.json, packages/protocol/package.json, packages/schema/package.json, packages/sdk/package.json, packages/server/package.json, packages/session-ui/package.json, packages/simulation/package.json, packages/stats/app/package.json, packages/stats/core/package.json, packages/stats/server/package.json, packages/theme/package.json, packages/tui/package.json, packages/ui/package.json, packages/util/package.json, packages/web/package.json, sdks/vscode/package.json, services/update/package.json
    #57465 c8e2e1e4 fix(core): reuse recent Console config checks for rejected inference (anomalyco#57465) touches_our_divergence; touches_our_divergence packages/core/src/plugin/provider/opencode.ts, packages/core/test/plugin/provider-opencode.test.ts
    #54276 3b593dd5 fix(codemode): run each job to completion (anomalyco#54276) touches_our_divergence; touches_our_divergence packages/codemode/interpreter-support.md, packages/codemode/src/interpreter/execute.ts, packages/codemode/src/interpreter/extensions.ts, packages/codemode/src/interpreter/interpreter.ts, packages/codemode/src/interpreter/promises.ts, packages/codemode/test/promise.test.ts
    #57514 a13c48b9 fix(ai): send expires_after.anchor for OpenAI realtime client secrets (anomalyco#57514) no_matching_scope packages/ai/src/experimental/realtime.ts, packages/ai/test/realtime.test.ts
    #57476 d898c048 feat(core): add experimental.location_idle_timeout (anomalyco#57476) touches_our_divergence; touches_our_divergence packages/client/src/promise/generated/types.ts, packages/core/src/config/normalize.ts, packages/core/src/location-activity.ts, packages/core/test/config/normalization.test.ts, packages/core/test/location-activity.test.ts, packages/core/test/location-layer.test.ts, packages/protocol/openapi.json, packages/schema/src/config/experimental.ts, services/www/openapi.json, services/www/public/openapi.json, services/www/src/docs/content/config.mdx, services/www/src/docs/content/permissions.mdx
    без PR 2cb963c6 docs(console): add Muse Wonder 1.0 no_matching_scope services/www/src/docs/content/console/models.mdx
    #57348 44243918 fix(install): create ~/.zshrc when it's missing so opencode lands on PATH (anomalyco#57348) no_matching_scope install
    #57533 db1fbe84 fix(desktop): upgrade Electron to 44.9.1 (anomalyco#57533) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, packages/desktop/package.json, packages/gui-extensions/package.json
    без PR 552f8671 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    без PR 5fa426f6 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57588 7d3752c1 fix(core): send legacy console.opencode.ai credentials to opencode.ai/console (anomalyco#57588) touches_our_divergence; touches_our_divergence packages/core/src/plugin/provider/opencode.ts, packages/core/test/plugin/provider-opencode.test.ts
    #57478 aadd4d86 feat(core): add OPENCODE_DISABLE_FREE_MODELS to hide free models (anomalyco#57478) touches_our_divergence; touches_our_divergence packages/core/src/model.ts, packages/core/src/plugin/provider/opencode.ts, packages/core/test/model-free.test.ts, packages/core/test/plugin/provider-opencode.test.ts, services/www/src/docs/content/console/models.mdx, services/www/src/docs/content/models.mdx
    #57287 0ceeb24f chore(cli): update opentunnel client (anomalyco#57287) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, packages/cli/package.json
    без PR aae52146 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    #57611 678e49d8 refactor(ai): remove unused WebSocket jsonTransport (anomalyco#57611) no_matching_scope packages/ai/src/route/transport/websocket.ts
    #57615 6843fb7b refactor(ai): reuse JsonObject, ProviderMetadata, and responseHttp across protocols and gateways (anomalyco#57615) no_matching_scope packages/ai/src/experimental/realtime.ts, packages/ai/src/experimental/system-one.ts, packages/ai/src/media.ts, packages/ai/src/protocols/venice-chat.ts, packages/ai/src/providers/vercel-ai-gateway.ts, packages/ai/src/route/executor-service.ts, packages/ai/src/route/executor.ts, packages/ai/src/route/media-protocol.ts
    #57597 c600cddc refactor(ai,core): drop redundant typeof check on endpoint.baseURL (anomalyco#57597) touches_our_divergence; touches_our_divergence packages/ai/src/route/client.ts, packages/core/src/session/model-request.ts
    #57601 51626eee refactor(ai): tighten EvaluationRequest typing and deduplicate request normalization (anomalyco#57601) no_matching_scope packages/ai/src/experimental/evaluation.ts
    #57604 cc996eec refactor(ai): deduplicate JSON, record, and URL query helpers (anomalyco#57604) no_matching_scope packages/ai/src/llm.ts, packages/ai/src/promise.ts, packages/ai/src/protocols/utils/partial-json.ts, packages/ai/src/provider-error.ts, packages/ai/src/providers/cloudflare-ai-gateway.ts, packages/ai/src/route/transport/http.ts
    #57606 35a2cf34 refactor(ai): replace loose Schema.Unknown and catch-all union checks in protocols (anomalyco#57606) no_matching_scope packages/ai/src/protocols/cohere-chat.ts, packages/ai/src/protocols/gemini.ts, packages/ai/src/protocols/google-interactions.ts, packages/ai/src/protocols/xai-images.ts
    без PR 4b50f5cc sync release versions for v2.1.2 [skip ci] touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence CHANGELOG.md, bun.lock, package.json, packages/ai/package.json, packages/app/package.json, packages/cli/package.json, packages/client/package.json, packages/codemode/package.json, packages/console/app/package.json, packages/core/package.json, packages/desktop/package.json, packages/function/package.json, packages/gui-extensions/package.json, packages/http-recorder/package.json, packages/httpapi-codegen/package.json, packages/latex/package.json, packages/merman/package.json, packages/plugin-browser/package.json, packages/plugin/package.json, packages/plugins/figma/package.json, packages/protocol/package.json, packages/schema/package.json, packages/sdk/package.json, packages/server/package.json, packages/session-ui/package.json, packages/simulation/package.json, packages/stats/app/package.json, packages/stats/core/package.json, packages/stats/server/package.json, packages/theme/package.json, packages/tui/package.json, packages/ui/package.json, packages/util/package.json, packages/web/package.json, sdks/vscode/package.json, services/update/package.json
    #57596 8c60f940 refactor(ai): use typed choice.usage in openai-chat parser (anomalyco#57596) no_matching_scope packages/ai/src/protocols/openai-chat.ts
    #57605 b991ba89 refactor(ai): remove redundant runtime type checks on schema-decoded values (anomalyco#57605) no_matching_scope packages/ai/src/llm.ts, packages/ai/src/protocols/anthropic-messages.ts, packages/ai/src/protocols/bedrock-converse.ts, packages/ai/src/protocols/gemini.ts, packages/ai/src/protocols/google-interactions.ts, packages/ai/src/protocols/mistral-chat.ts, packages/ai/src/protocols/open-responses.ts
    #57607 c9b5a9ff refactor(ai): remove dead option/schema helpers and use knownString (anomalyco#57607) no_matching_scope packages/ai/src/protocols/alibaba-chat.ts, packages/ai/src/protocols/alibaba-messages.ts, packages/ai/src/protocols/openai-chat.ts, packages/ai/src/protocols/utils/open-responses-options.ts, packages/ai/src/protocols/utils/openai-options.ts, packages/ai/src/protocols/utils/tool-schema.ts, packages/ai/src/providers/openai-options.ts, packages/ai/src/route/client.ts
    #57640 94bc5662 fix(core): keep unsupported MCP media out of tool attachments (anomalyco#57640) touches_our_divergence; must_keep; touches_our_divergence packages/core/src/mcp/client.ts, packages/core/src/mime.ts, packages/core/src/tool-output.ts, packages/core/src/tool/mcp.ts, packages/core/src/tool/plugin/mcp-resource.ts, packages/core/src/tool/plugin/webfetch.ts, packages/core/test/mcp.test.ts
    #57618 c3b613ca fix(core): resolve relative directories during V1 migration (anomalyco#57618) migration_or_schema; migration_or_schema packages/core/src/database/path.ts, packages/core/src/database/v1-migration.bun.ts, packages/core/test/v1-migration.test.ts
    #57616 a2cb1c4e refactor(ai): use OpenAIChat assistant hook and drop OpenRouterBody cast (anomalyco#57616) no_matching_scope packages/ai/src/providers/openrouter.ts, packages/ai/test/provider/openrouter.test.ts
    без PR 681156c8 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57796 578d422e ci: remove the /review workflow (anomalyco#57796) touches_our_divergence; touches_our_divergence .github/workflows/review.yml
    #57795 91413634 ci: scope pr-management down to the contributor label (anomalyco#57795) touches_our_divergence; touches_our_divergence .github/workflows/pr-management.yml, .opencode/agent/duplicate-pr.md, script/duplicate-pr.ts
    #57793 c3712e0c ci: remove the duplicate-issues workflow (anomalyco#57793) touches_our_divergence; touches_our_divergence .github/workflows/duplicate-issues.yml
    #57798 b2f83b58 ci: remove the /oc workflow from this repository (anomalyco#57798) touches_our_divergence; touches_our_divergence .github/workflows/opencode.yml
    #57735 f7577a1f feat(server): start hosted GPT-Live on the connected OpenCode Console (anomalyco#57735) touches_our_divergence; must_keep; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/client/src/effect/api/api.ts, packages/client/src/effect/generated/client.ts, packages/client/src/promise/generated/client.ts, packages/client/src/promise/generated/types.ts, packages/client/test/promise.test.ts, packages/core/src/plugin/internal.ts, packages/core/src/plugin/provider/opencode.ts, packages/core/src/voice.ts, packages/core/test/plugin/fixture.ts, packages/core/test/plugin/provider-opencode.test.ts, packages/core/test/voice.test.ts, packages/protocol/openapi.json, packages/protocol/src/groups/voice.ts, packages/server/src/handlers/voice.ts, packages/server/test/voice.test.ts, services/www/openapi.json, services/www/public/openapi.json
    #57610 ab249a96 fix(ai): skip non-cacheable content parts when placing cache breakpoints (anomalyco#57610) no_matching_scope packages/ai/src/cache-policy.ts, packages/ai/src/image.ts, packages/ai/src/media-model.ts, packages/ai/src/speech.ts, packages/ai/src/transcription.ts, packages/ai/src/video.ts, packages/ai/test/cache-policy.test.ts
    #57865 d75c6b90 docs(www): fix GPT 6.1 Sol cached read price (anomalyco#57865) no_matching_scope services/www/src/docs/content/console/models.mdx
    #57612 e37f1a0f refactor(ai): use Schema Json codec in toolResultText and forward Bedrock stream statusCode (anomalyco#57612) no_matching_scope packages/ai/src/generation.ts, packages/ai/src/protocols/bedrock-converse.ts, packages/ai/src/schema/errors.ts, packages/ai/src/schema/messages.ts, packages/ai/test/generation.test.ts, packages/ai/test/provider/bedrock-converse.test.ts, packages/ai/test/schema.test.ts
    #57609 863ea413 refactor(ai): type Bedrock event-stream frames without casts or runtime checks (anomalyco#57609) no_matching_scope packages/ai/src/protocols/bedrock-converse.ts, packages/ai/src/protocols/bedrock-event-stream.ts
    #57890 6dfc6818 refactor(core): avoid redundant decode and re-branding in session inbox and projector (anomalyco#57890) migration_or_schema; touches_our_divergence; touches_our_divergence; migration_or_schema; touches_our_divergence; touches_our_divergence packages/core/src/database/v1-migration.bun.ts, packages/core/src/session/inbox.ts, packages/core/src/session/info.ts, packages/core/src/session/projector.ts, packages/core/src/session/sql.ts, packages/core/test/permission.test.ts, packages/core/test/session-create.test.ts, packages/core/test/session-projector.test.ts, packages/core/test/session-runner.test.ts, packages/core/test/v1-migration.test.ts
    #57900 3260ec76 fix(core): map legacy apply_patch permissions to edit (anomalyco#57900) touches_our_divergence; touches_our_divergence packages/core/src/v1/config/migrate.ts, packages/core/test/config/config.test.ts
    #57564 6709f564 fix(core): give compaction summaries the same output limit as normal turns (anomalyco#57564) touches_our_divergence; touches_our_divergence packages/core/src/session/compaction.ts, packages/core/src/session/model-request.ts
    #57428 e441dafb fix(cli): move the Windows service port out of the WSL mirrored range (anomalyco#57428) touches_our_divergence; touches_our_divergence packages/cli/src/services/service-config.ts, packages/cli/test/service.test.ts, services/www/src/docs/content/cli/web.mdx
    #57937 c2736fc9 feat(app): highlight code with @pierre/highlights instead of Shiki (anomalyco#57937) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence bun.lock, bunfig.toml, package.json, packages/app/e2e/performance/timeline/session-timeline-stream-probe.ts, packages/app/vite.js, packages/session-ui/component-tests/markdown.spec.ts, packages/session-ui/package.json, packages/session-ui/src/components/markdown.css, packages/session-ui/src/components/markdown.tsx, packages/session-ui/src/components/markdown.worker.ts, packages/session-ui/src/components/message-file.ts, packages/session-ui/src/pierre/index.ts, packages/session-ui/src/pierre/worker.ts, packages/storybook/.storybook/preview.tsx, packages/ui/package.json, packages/ui/src/context/highlight-theme.tsx, packages/ui/src/context/marked-parser.test.ts, packages/ui/src/context/marked-parser.tsx, packages/ui/src/context/marked-theme-register.tsx, packages/ui/src/context/marked-theme.tsx, packages/ui/src/context/marked.tsx
    без PR f0200df8 chore: update nix node_modules hashes no_matching_scope nix/hashes.json
    без PR 7456ad87 chore(core): refresh bundled models.dev snapshot touches_our_divergence; touches_our_divergence packages/core/src/models-dev/snapshot.txt
    #57948 b6c0327e refactor(core): drop redundant reconstructions in rpc and project (anomalyco#57948) touches_our_divergence; touches_our_divergence packages/core/src/project.ts, packages/core/src/rpc.ts
    #57961 9496ff84 refactor(core): replace unused runtime input schemas with types in filesystem and permission (anomalyco#57961) touches_our_divergence; touches_our_divergence; touches_our_divergence; touches_our_divergence packages/core/src/filesystem.ts, packages/core/src/filesystem/search.ts, packages/core/src/filesystem/watcher.ts, packages/core/src/permission.ts, packages/core/src/permission/saved.ts, packages/core/src/permission/sql.ts

    SKIP — мимо

    PR Коммит Что Почему
    #55712 a70eaa75 fix(app): show free models alongside their paid twins by default (anomalyco#55712) skip_path
    #55665 65932e87 refactor(app): share the workspace submenu with the missing-location menu (anomalyco#55665) skip_path
    #56529 07e72542 fix(console): link header GitHub item to the repository root (anomalyco#56529) skip_path
    #56533 657c5664 fix(console): give each marketing page a single meta description (anomalyco#56533) skip_path
    #56535 53cd7459 fix(console): render FAQ answers in the server HTML (anomalyco#56535) skip_path
    #56531 9d97a5be fix(console): send localized changelog URLs to the changelog worker (anomalyco#56531) skip_path
    #55881 cbbfd223 test(app): fix races in the mobile timeline scroll e2e tests (anomalyco#55881) skip_path
    #56534 c78b6eea fix: add v2 docs to the sitemap and fix its broken entries (anomalyco#56534) skip_path
    #56564 3921f777 fix(console): take the page language from the URL only (anomalyco#56564) skip_path
    #56565 736d2fe9 fix(console): give marketing pages complete social preview tags (anomalyco#56565) skip_path
    #56566 fd7bb3bc chore(console): remove the unused /temp page (anomalyco#56566) skip_path
    #56587 3a96edcf fix(console): show an error when newsletter signup fails (anomalyco#56587) skip_path
    #56594 eb9351c4 feat(console): redirect /llms.txt to the docs index (anomalyco#56594) skip_path
    #56595 797d2afd perf(console): load only the IBM Plex Mono faces the site uses (anomalyco#56595) skip_path
    #56591 a4163798 fix(console): make the mobile menu and copy buttons keyboard accessible (anomalyco#56591) skip_path
    #56593 0168c62c fix(console): redirect /en URLs to the unprefixed English pages (anomalyco#56593) skip_path
    #56589 a1246889 fix(console): fix marketing copy, stale stats and redirected links (anomalyco#56589) skip_path
    #56612 3099ec2c chore(console): retire the Black pages and redirect them to Go (anomalyco#56612) skip_path
    #56922 c6d1c09c docs: correct plan agent permissions and use shell tool name (anomalyco#56922) skip_path
    #56939 6d6003da chore(function): remove legacy share write endpoints (anomalyco#56939) skip_path
    #57021 580fcabd docs(console): reveal Space Bunny as MiniMax M3.1 Flash Free (anomalyco#57021) skip_path
    #57112 cb07c555 feat(desktop): preserve Drive-managed development state (anomalyco#57112) skip_path
    #57189 6bac3b9a refactor(desktop): drop Drive-specific service handling (anomalyco#57189) skip_path
    #57206 d85746a0 docs(app): document the resource guard that prevents Suspense flashes (anomalyco#57206) skip_path
    #57166 abcdfda3 feat(console): drop enterprise form spam before it reaches Salesforce (anomalyco#57166) skip_path
    #57272 23a33aba chore: bump Playwright past the Node 24.16+ install hang (anomalyco#57272) skip_message_pattern
    #57314 6ea9cf50 fix(stats): add missing lab logos to the top models leaderboard (anomalyco#57314) skip_path
    #57328 50c5fcee chore(function): remove remaining share endpoints (anomalyco#57328) skip_path
    #57439 a62028dd feat(console): add hCaptcha to enterprise form (anomalyco#57439) skip_path
    #57446 59160147 refactor(console): remove Jev spam scoring from enterprise form (anomalyco#57446) skip_path
    #57434 772e2aed chore(console): remove legacy Console leftovers from the website (anomalyco#57434) skip_path
    #57489 0718864d feat(console): restore fail-open Jev spam scoring on the enterprise form (anomalyco#57489) skip_path
    #57516 3fdb13bc fix(stats): retry failed syncs instead of waiting an hour (anomalyco#57516) skip_path
    #57548 f2a34141 chore(infra): delete legacy share storage (anomalyco#57548) skip_path
    #57466 5c3891ec fix(app): restore free-tier usage limit dialog, timeline line, and prompt recall (anomalyco#57466) skip_path
    #57630 17ebb66d chore(function): remove exchange_github_app_token_with_pat route (anomalyco#57630) skip_path
    #57663 4d596576 fix(console): remove free model daily request quota from Go FAQ (anomalyco#57663) skip_path
    #57718 3a1f9a93 docs(go): end Step 5 Preview usage promotion (anomalyco#57718) skip_path
    #57792 0c6be869 chore(function): remove unauthenticated feishu bridge route (anomalyco#57792) skip_path
    #57827 f9098c96 fix(function): scope GitHub App installation token to the verified repository (anomalyco#57827) skip_path
    #57831 002d7bd8 fix(app): stop following the timeline end while dragging the scrollbar (anomalyco#57831) skip_path
    #57694 2fde77c9 feat(app): animate the Go upsell hero in the free-limit dialog (anomalyco#57694) skip_path
    #57862 3108505b docs(console): add Flint 40B Free (anomalyco#57862) skip_path
    #57861 8a360e10 docs(cli): document the opencode debug subcommands (anomalyco#57861) skip_path
    #57419 d10692ec docs: describe agent creation without the removed CLI command (anomalyco#57419) skip_path

    Как портировать

    1. Прочитать файл upstream-collected/v2.1.3.json и профиль upstream-policy.json.
    2. Разобрать изменения по трём классам (PORT/ASK/SKIP).
    3. Выполнить этап 2 (сборка порта) для классов PORT и ASK (вопросы ASK решаются человеком).
    4. Обновить форк gpt-mem/opencode-mem: интегрировать PORT-изменения, решить ASK-пункты, убрать SKIP-файлы.

    Решение по классу ASK

    Чек-лист

    • Проверить, что все PORT-файлы перенесены в форк
    • Разобраться со всеми ASK-пунктами (человеком)
    • Убрать все SKIP-файлы из форка
    • Выполнить тестовый пайплайн
    • Создать PR с порт-файлами

    Отчёт сгенерирован автоматически на основе upstream-collected/v2.1.3.json и upstream-policy.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions