Skip to content

Releases: demyanovvvv/opencode-patchline

Patchline 1.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 19:30
fc46a87

Patchline 1.4.0

English

This release unifies project/global installation and removal and adds verified
original-host recovery and project-scoped LSP management.

Changes

  • Shell and PowerShell wrappers use the adjacent built release/checkout package,
    preserve arguments/cwd/exit codes, and do not fetch a CLI from npm.
  • New --project, --cwd, --package, --help, --no-host, --no-lsp,
    --keep-deps and --restore-host flags; installation now supports --dry-run.
    Values accept --flag=value; malformed/conflicting flags fail before changes.
  • --local --global remains compatible: local selects the source, global the scope.
  • Immutable original OpenCode backup, SHA-256 checks, shared-host owner tracking,
    per-binary locking and guarded restoration of unchanged owned update preferences.
  • State changes during confirmation are preserved; Bun installed during host
    preparation is recorded and cleaned up on failure.
  • Project language/server discovery, explicit lsp check/lsp setup, managed
    pinned server recipes and connection-aware status. Disabled/custom LSP remains.
  • Conversation renderer for patchline_lsp_status; canonical fixture paths for
    Windows short-path and macOS temporary-directory aliases.

Installation and upgrade

Download opencode-patchline-1.4.0.tgz and SHA256SUMS.txt, verify the SHA-256,
extract to a permanent directory, then run npm install --omit=dev inside
package/. From the target project run the adjacent install.sh --project --lang en, or use --cwd <project>. For all projects use --global --yes.
Windows uses install.ps1 with the same flags. Restart OpenCode afterwards.

Upgrading from 1.3.x uses the new package's installer in each affected scope and
preserves the installed upstream OpenCode version. Keep old package directories
while another scope still references them. Plain CLI install --local remains
available. Full host provisioning requires Git/Bun; use --no-host to skip it.

Removal and recovery

Run the matching uninstall.sh/uninstall.ps1 with the same scope; start with
--dry-run. --keep-deps preserves package dependencies. Regular removal leaves
the shared integrated host. --restore-host restores the saved original version
only if its hashes/ownership are valid and no other recorded installation remains.
User-changed update settings are preserved. Legacy installations without a
verified original cannot use rotating backups as evidence and require manual
OpenCode repair. Managed LSP caches and shared OpenCode caches are retained.

Verification

Release gates cover typecheck, unit tests/coverage, lint, build, doctor, benchmark,
package/plugin/installer/LSP/TUI/Hashline smokes and dependency audit. New smoke
gates exercise project/global wrappers and real-native binary restoration in
isolated directories. Local Windows x64: 467 tests passed, one platform test
skipped; coverage 83.67% statements, 89.04% lines; typecheck, lint, build, doctor,
benchmark, package/plugin/installer/LSP/TUI/Hashline smokes and audits passed.
Doctor reports the expected running-host 1.3.0 / package 1.4.0 mismatch.
The GitHub Actions run attached to this tag records the
Linux release-gate result; the CI matrix reports Windows/Linux/macOS separately.
Local verification does not rebuild the full integrated UI host or include an
interactive UI update click-through.

See the English guide, upgrade policy
and removal instructions.

Русский

Релиз объединяет установку и удаление в проектной/глобальной области и добавляет
проверенное восстановление исходного хоста и проектное управление LSP.

Изменения

  • Shell/PowerShell-скрипты используют соседний готовый пакет релиза или checkout,
    сохраняют аргументы, рабочий каталог и код завершения, не загружают CLI из npm.
  • Добавлены --project, --cwd, --package, --help, --no-host, --no-lsp,
    --keep-deps, --restore-host; --dry-run работает и для установки.
    Поддерживается --флаг=значение; конфликтующие параметры отклоняются до изменений.
  • --local --global совместим: local выбирает источник, global область.
  • Неизменяемая исходная копия OpenCode, SHA-256, учёт владельцев общего хоста,
    блокировка и защищённый возврат неизменённых настроек обновления.
  • Сохраняются изменения state во время подтверждения; Bun, добавленный при
    подготовке хоста, учитывается и удаляется при сбое.
  • Обнаружение проектных языков/серверов, lsp check/lsp setup, закреплённые
    управляемые серверы и отдельная проверка соединения. Custom/disabled LSP сохранены.
  • Карточка patchline_lsp_status; канонические тестовые пути для Windows/macOS.

Установка и обновление

Скачайте opencode-patchline-1.4.0.tgz и SHA256SUMS.txt, проверьте SHA-256,
распакуйте в постоянную папку и выполните npm install --omit=dev внутри
package/. Для проекта используйте install.sh --project --cwd <проект> --lang ru,
для всех проектов --global --yes. На Windows запускайте install.ps1 с теми же
флагами. Полностью перезапустите OpenCode.

Обновление с 1.3.x выполняется новым установщиком в каждой нужной области,
сохраняя upstream-версию OpenCode. Старый каталог сохраняйте, пока на него
ссылается другая область. Для полного хоста нужны Git/Bun; --no-host пропускает
его подготовку. Старый интегрированный хост не получает исходную копию задним числом.

Удаление и восстановление

Запускайте uninstall.sh/uninstall.ps1 в той же области; сначала --dry-run.
--keep-deps сохраняет зависимости. Обычное удаление оставляет общий хост.
--restore-host возвращает сохранённую исходную версию при проверенных хешах,
владении и отсутствии других записанных установок. Изменённые пользователем
настройки обновлений сохраняются. Legacy без доказанной исходной копии требует
ручного восстановления OpenCode; .patchline-previous не доказывает stock-версию.
Кэши управляемых LSP и OpenCode сохраняются.

Проверка

Релизные gates включают typecheck, тесты/coverage, lint, build, doctor, benchmark,
package/plugin/installer/LSP/TUI/Hashline smoke и аудит зависимостей. Новые smoke
проверяют обе области и восстановление native-файла в изолированных папках.
Локально Windows x64: 467 тестов пройдены, один платформенный тест пропущен;
coverage 83,67% statements и 89,04% lines; typecheck, lint, build, doctor,
benchmark, package/plugin/installer/LSP/TUI/Hashline smoke и аудиты пройдены.
Doctor показывает ожидаемое расхождение работающего хоста 1.3.0 и пакета 1.4.0.
GitHub Actions у тега фиксирует Linux-проверки релиза; CI отдельно показывает
результаты Windows/Linux/macOS. Локально не выполняется полная пересборка
интегрированного UI-хоста и интерактивное нажатие UI-обновления.

Подробнее: русское руководство,
обновление, удаление.

Patchline 1.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 01:58
f9deff1

Patchline 1.3.0

English

OpenCode and Patchline now have separate version lifecycles. Installing Patchline preserves the installed upstream OpenCode version. Coordinated OpenCode upgrades invoke a host-only operation, keeping the plugin package version and its registration intact.

  • OpenCode plugin SDK updated to 1.19.0.
  • OpenCode 1.19.0 source adapters pass preflight.
  • New host-upgrade --opencode-version <version> command.
  • Host artifact selection for Windows, Linux and macOS x64/arm64.
  • Regression tests for version preservation and script-launcher protection.
  • CLI/TUI upstream comparisons, exact binary targeting, update locking and safe retention of locked Windows backups.

Verification

Local Windows x64: 398 tests passed, 3 platform-specific tests skipped; typecheck,
lint, coverage, build, doctor, benchmark, package/plugin/installer/TUI/Hashline
smokes and dependency audit passed. The upstream OpenCode 1.19.0 native
apply_patch suite passed (28 tests). An isolated real host rebuild and
opencode upgrade cycle 1.19.0 → 1.18.35 → 1.19.0 preserved Patchline 1.3.0 and
byte-identical server/TUI configuration. UI update source adapters are verified;
an interactive UI click-through is not part of local verification. Cross-platform
SDK/adapter/native tests are configured in CI; platform-specific outcomes are
reported by that workflow rather than inferred from the Windows run.

Download the package archive and verify its SHA-256 using SHA256SUMS.txt. Extract to a permanent location, install runtime dependencies, and run node dist/cli.js install --local --global --yes. Restart OpenCode afterwards.

External package-manager upgrades can replace the integrated host. They cannot be intercepted by an inactive plugin. Reinstall the integration on the current upstream version after such an upgrade. Platform artifact selection is not a claim that every package-manager installation has been verified.

Русский

Версии OpenCode и Patchline обновляются независимо. Установка Patchline сохраняет установленную upstream-версию OpenCode. Согласованное обновление OpenCode запускает отдельную операцию обновления хоста, сохраняя версию пакета и регистрацию плагина.

  • SDK обновлён до 1.19.0.
  • Адаптеры исходников OpenCode 1.19.0 проходят предварительную проверку.
  • Добавлена команда host-upgrade --opencode-version <версия>.
  • Выбор артефакта сборки для Windows, Linux и macOS x64/arm64.
  • Регрессионные проверки сохранения версий и защиты script-launcher.
  • Сравнение upstream-версий CLI/TUI, точный выбор бинарника, блокировка обновлений и сохранение занятых резервных копий Windows.

Проверки

Локально на Windows x64: 398 тестов пройдены, 3 платформенных теста пропущены;
typecheck, lint, coverage, build, doctor, benchmark, package/plugin/installer/TUI/Hashline
smoke и аудит зависимостей пройдены. Upstream-набор native apply_patch OpenCode
1.19.0: 28 тестов пройдены. Реальная изолированная пересборка и цикл opencode upgrade
1.19.0 → 1.18.35 → 1.19.0 сохранили Patchline 1.3.0 и конфигурации server/TUI побайтно.
Адаптеры UI-обновления проверены по исходникам; интерактивное нажатие обновления
не входит в локальную проверку. Межплатформенные проверки выполняет CI.

Скачайте архив и проверьте SHA-256 по SHA256SUMS.txt. Распакуйте в постоянный каталог, установите runtime-зависимости и выполните node dist/cli.js install --local --global --yes. После установки перезапустите OpenCode.

Внешнее обновление менеджером пакетов может заменить интегрированный хост. Неактивный плагин не может перехватить такую операцию. После неё повторно установите интеграцию на текущей upstream-версии. Выбор платформенного артефакта не означает проверку всех вариантов установки.

Patchline 1.2.1

Choose a tag to compare

@demyanovvvv demyanovvvv released this 08 Oct 02:10
8911379

Patchline 1.2.1

English guide · Русское руководство · Changelog

English

Versions

  • Patchline: 1.2.1
  • OpenCode release baseline: 1.18.35
  • Integrated host for this pair: 1.18.35+patchline.1.2.1

Changes

  • Preserved native OpenCode apply_patch; Hashline editing uses
    patchline_apply_patch, with snapshot invalidation around native patches.
  • Hardened exact deletions, bounded read ranges, permission-aware external paths,
    mixed line-ending preservation and shell-write detection.
  • Added compensating installer rollback and versioned ownership metadata.
  • Added adaptive/Hashline conversation slots and bounded diffs.
  • Restructured English and Russian README navigation and added practical usage
    guides. Release history now lives in the changelog and release notes.
  • Distributed an installable GitHub package archive and SHA-256 checksum without
    requiring an npm registry publication.

Install or update

Download opencode-patchline-1.2.1.tgz and SHA256SUMS.txt from this release.
Extract into a permanent directory, then run:

cd patchline-1.2.1/package
npm install --omit=dev
node dist/cli.js doctor

For the integrated Windows x64 host (OpenCode, Git and Bun required):

node dist/cli.js install --local --global --yes --lang en --opencode-version 1.18.35

For other platforms, use the manual file-URL registration in the English guide.
Fully restart OpenCode. Existing Hashline apply_patch calls must be renamed to
patchline_apply_patch; native standard patches keep the apply_patch name.

Verification and limitations

Local verification passed: typecheck, 379 tests (2 skipped), coverage, lint,
build, doctor, benchmark, plugin/package/Hashline/TUI/install/lifecycle/LSP smoke
checks. Dependency audit: zero vulnerabilities. GitHub Actions jobs could not
start because of the account billing/spending limit; cross-platform CI results
are unavailable. The archive was built and published from the verified checkout.

Integrated-host provisioning currently supports Windows x64 and builds from
source using Git/Bun. The package archive is not a prebuilt OpenCode executable.
Cross-component recovery and ownership-aware legacy cleanup remain pending.
Uninstall does not restore the official executable or update preference.

Русский

Версии

  • Patchline: 1.2.1
  • Базовая версия OpenCode: 1.18.35
  • Интегрированный хост для этой пары: 1.18.35+patchline.1.2.1

Изменения

  • Сохранён обычный apply_patch OpenCode; Hashline выполняется через
    patchline_apply_patch, а обычные patch инвалидируют затронутые snapshot.
  • Усилены точные удаления, ограниченные диапазоны чтения, проверка разрешений
    внешних путей, сохранение смешанных окончаний строк и обнаружение shell-записи.
  • Добавлены компенсирующий rollback установщика и версионированные данные владения.
  • Добавлены adaptive/Hashline-карточки и ограниченные diff.
  • Перестроены README на английском и русском, добавлены навигация сверху и
    практические инструкции. История изменений перенесена в changelog и релизы.
  • Подготовлены устанавливаемый GitHub-архив и SHA-256 checksum без обязательной
    публикации в npm.

Установка или обновление

Скачайте opencode-patchline-1.2.1.tgz и SHA256SUMS.txt из этого релиза.
Распакуйте в постоянную папку и выполните:

cd patchline-1.2.1/package
npm install --omit=dev
node dist/cli.js doctor

Для интегрированного хоста Windows x64 (нужны OpenCode, Git и Bun):

node dist/cli.js install --local --global --yes --lang ru --opencode-version 1.18.35

На остальных платформах используйте ручное подключение через file URL из
русского руководства. Полностью перезапустите OpenCode. Старые Hashline-вызовы
apply_patch переименуйте в patchline_apply_patch; обычные patch сохраняют имя.

Проверки и ограничения

Локально прошли: проверки типов, 379 тестов (2 пропущены), покрытие, lint, сборка,
doctor, benchmark, smoke-проверки плагина, пакета, Hashline, TUI, установки,
жизненного цикла и LSP. Аудит: 0 уязвимостей. GitHub Actions не смогли стартовать
из-за лимита расходов/оплаты аккаунта; результатов кроссплатформенного CI нет.
Архив собран и опубликован из проверенной рабочей копии.

Подготовка интегрированного хоста пока поддерживает Windows x64 и сборку из
исходников через Git/Bun. Архив пакета не содержит готовый executable OpenCode.
Межкомпонентное восстановление и безопасная очистка старых компонентов остаются
в работе. Удаление не восстанавливает официальный executable и настройку обновлений.

Patchline 1.2.0

Choose a tag to compare

@demyanovvvv demyanovvvv released this 01 Oct 19:37

Highlights

  • Themed conversation cards for all eleven Patchline tools, animated status borders, English footer disclosure, progressive output, and independently expandable native diffs.
  • Windows x64 UI-host provisioning through the existing opencode command, with integrated versions such as 1.18.34+patchline.1.2.0.
  • Upstream version selection, coordinated host upgrade adapter, NVM path resolution, registration deduplication, local install wrappers, and one rotating previous-host backup.
  • Hardened Hashline behavior, rollback metadata, and expanded installer/UI regression coverage.

Verification

Typecheck, lint, 229 tests passed (2 skipped), build, doctor, benchmark smoke, plugin/package/TUI/install smoke, Hashline smoke and 12-case upstream differential corpus passed.
Dependency audit: 3 low-severity advisories in the pinned UI dependency chain; no moderate/high/critical advisories.

Current limitations

Host provisioning currently requires Windows x64, Git, and Bun. Prebuilt host artifacts, cross-component transaction recovery, ownership-aware legacy cleanup, and restoration of the official executable on uninstall remain pending. This GitHub release does not itself publish the package to npm.

Full details: CHANGELOG.md, README.md, and README.ru.md.

v1.1.0

Choose a tag to compare

@demyanovvvv demyanovvvv released this 27 Sep 03:35

Changelog

1.1.0 - 2026-09-27

  • Added opencode-patchline doctor --lsp and opencode-patchline lsp check
    with human-readable and JSON setup instructions.
  • Added TypeScript LSP capability detection, including project-local
    npx --no-install detection on Windows and other platforms.
  • Added a ready-to-copy OpenCode TypeScript LSP configuration and explicit
    ast_search/patchline_grep fallback guidance.
  • Changed patchline_lsp to report CAPABILITY_UNAVAILABLE when OpenCode LSP
    is disabled or unconfigured instead of returning a misleading empty result.
  • Added bounded LSP startup error details and preserved shell-free Windows
    process invocation, cancellation, and timeout behavior.
  • Restricted snapshot-dependent patchline_edit_batch to precision mode;
    compatibility mode now leaves all editing behavior to OpenCode built-ins.
  • Made the OpenCode plugin smoke test explicitly use precision mode and added
    a real OpenCode black-box runner for isolated tool-call verification.
  • Expanded the test suite to 107 tests and updated English/Russian guidance.

1.0.0 - 2026-09-22

  • First stable release of the Patchline OpenCode plugin.
  • Snapshot-aware read and stale-safe edit for existing files.
  • Existing-file write protection and guarded multi-file transactions.
  • Literal text search, AST search, LSP bridge, diagnostics, and validation hooks.
  • Precision, compatibility, and disabled runtime modes.
  • Windows, Node.js 20+, OpenCode 1.18.x, package, doctor, benchmark, and plugin
    smoke verification.
  • Added structured OpenCode tool metadata with bounded recovery actions and
    bytes/validation details, plus CLI JSON diagnostics, configuration validation,
    and stable error explanations.
  • Added tag/version/changelog release checks, npm trusted-publishing workflow,
    and a private vulnerability reporting policy.
  • Added enforced V8 coverage thresholds, release metadata regression tests, and
    Node.js 20/22 CI coverage across Windows, Linux, and macOS.
  • Bound directory reads to 4,096 entries before pagination to prevent unbounded
    directory enumeration memory use.
  • Reject directory pages whose rendered output exceeds 20,000 characters.
  • Reject file pages whose rendered output exceeds 20,000 characters before
    recording a snapshot.
  • Bound literal-search directory enumeration to 4,096 entries per directory.
  • Bound formatted grep and AST tool responses to 20,000 characters.
  • Reject create batches above 500 files before path resolution or mutation.
  • Reject edit batches above 500 edits before preflight and cap successful
    mutation-batch reports at 20,000 characters with a truncation marker.
  • Reject apply_patch input above 8 MiB before parsing or permission requests.
  • Upgrade Vitest to 5.0.1 and add Node.js 20/22 CI coverage for Windows, Linux
    and macOS.
  • Install the pinned OpenCode CLI in the cross-platform CI job so the LSP bridge
    smoke test has the same required executable on every runner.
  • Bound AST result traversal so searches stop after one match beyond the
    requested result limit instead of materializing every match.
  • Make search include matching independent of canonical temporary-directory aliases
    on hosted Windows and macOS runners.
  • Keep the OpenCode plugin smoke startup wait bounded while allowing slower hosted
    runners up to 60 seconds to load the plugin registry.
  • Resolve the Windows OpenCode smoke executable directly so plugin loading does not
    depend on shell wrappers or command-file dispatch.
  • Include the last registry HTTP failure and OpenCode startup logs when plugin smoke
    reaches its bounded timeout.
  • Make plugin smoke create a temporary Git worktree so OpenCode exercises the
    same project bootstrap path as a real OpenCode worktree.
  • Use direct plugin registration smoke on Windows CI because the hosted Windows
    OpenCode 1.18.30 server hangs during instance bootstrap; HTTP plugin smoke
    remains active on Linux and macOS.
  • Bound diagnostic output during execution and enforce the 20,000-character cap on the complete result.
  • Terminate timed-out diagnostic process trees and settle even when descendants inherit output pipes.
  • Add a reproducible isolated tarball installation and public-export smoke test.
  • Propagate OpenCode cancellation to diagnostic commands and terminate their process trees before rejecting.
  • Bound and time-limit the shell-free OpenCode LSP bridge, and propagate tool cancellation to its subprocess.
  • Reject classic apply_patch sections outside a single complete patch envelope before creating files.
  • Skip text-search files over 8 MiB and cap each returned matching-line preview at 2,000 characters.
  • Reject AST input over 8 MiB and cap each returned node preview at 2,000 characters.
  • Reject ignored content before the first Hashline section before requesting edit permission.
  • Bound file reads before loading input: reject files over 8 MiB and selected lines over 20,000 characters before snapshot creation.
  • Bound mutation payloads: writes and edit results are limited to 8 MiB, including an 8 MiB aggregate create-batch budget before the first mutation.
  • Run the OpenCode LSP bridge without shell interpretation, including native
    opencode.exe resolution on Windows, so query text cannot execute commands.
  • Record successful edit identity from the atomically renamed temporary file,
    preventing same-byte replacements from inheriting a trusted next snapshot.
  • Read newly created bytes from offset zero on the exclusive file handle so
    create-batch rollback removes unchanged partial files correctly.
  • Sort literal-search directory entries by name before traversal so match order
    is deterministic and independent of filesystem readdir order.
  • Isolate the release metadata test from the CI GITHUB_REF_NAME environment so
    mismatched-tag rejection is exercised on hosted runners.

0.1.0

  • Initial P0 precision editing engine.
  • Snapshot-aware OpenCode read and edit tools.
  • Stale edit rejection and existing-file write protection.
  • Cross-platform path and text preservation primitives.
  • P1 search, diagnostics, validation, doctor, and benchmark foundations.
  • Diagnostic and configured validation commands now require OpenCode bash
    permission before execution.
  • Added regression coverage for denied diagnostic and post-edit validation
    permissions; the suite now contains 60 tests.
  • Read service bounds now reject invalid direct offset and limit values;
    the suite now contains 61 tests.
  • Create-batch bookkeeping now captures the exclusive-created file identity
    before path-based rollback checks; the suite now contains 62 tests.
  • OpenCode plugin smoke now bounds each tool-registry HTTP probe to avoid an
    unresponsive server hanging verification indefinitely.