Skip to content

Add watch mode for development and fix CI workflow issues#73

Merged
Looted merged 14 commits intomasterfrom
develop
Mar 15, 2026
Merged

Add watch mode for development and fix CI workflow issues#73
Looted merged 14 commits intomasterfrom
develop

Conversation

@Looted
Copy link
Copy Markdown
Owner

@Looted Looted commented Mar 15, 2026

No description provided.

Looted added 8 commits March 15, 2026 09:17
Add watch mode support to kibi-opencode for seamless local development. The local plugin shim at .opencode/plugins/kibi.ts now automatically picks up rebuilds from packages/opencode/dist/.

Changes:
- Add 'dev' script with tsc --watch for auto-rebuild on file changes
- Update opencode.json to use local plugin only (no npm package reference)
- Add root-level 'dev:opencode' script for convenience
- Create DEV.md with complete dogfood setup documentation
- Add 'Dogfooding' section to README with quick start guide
- Sync KB symbols after changes
Hook contract tests in packages/opencode/tests/hook-contract.test.ts read type
definitions from .opencode/node_modules/@opencode-ai/plugin/dist/index.d.ts
and .opencode/node_modules/@opencode-ai/sdk/dist/gen/types.gen.d.ts.

The publish workflow's build-and-check job was only running 'bun install',
which installed root dependencies but not .opencode dependencies. Since
.opencode/package.json is not tracked in git, .opencode/node_modules
was not being created in CI, causing the tests to fail.

Fix: Update the Install dependencies step to also run 'bun install' in .opencode
directory, ensuring @opencode-ai/plugin and @opencode-ai/sdk type
definitions are available for hook contract tests.

The CI workflow already had this fix, which is why merge pipeline passed
but publish pipeline failed.
GitHub Actions are deprecating Node.js 20 and will force Node.js 24
starting June 2nd, 2026. Actions setup-node@v4, upload-artifact@v4,
and download-artifact@v4 are currently running on Node.js 20.

Fix: Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true at workflow level
in both ci.yml and publish.yml to opt into Node.js 24 now, eliminating
the deprecation warnings and ensuring compatibility before the forced migration.
Packed E2E tests require npm to pack tarballs for testing. The
helpers.ts resolveNpmBinary() function tries to find npm via:
- process.env.npm_execpath
- which command

When npm is not found, packAll() fails with:
"ENOENT: no such file or directory, posix_spawn 'npm'"

Fix: Add NODE_INSTALLER: npm env var to setup-node step and verify
npm is available with npm --version command. This ensures npm is
properly added to PATH by the actions/setup-node@v4 action.
The CI workflow was excluding all E2E packed tests with:
--exclude="documentation/tests/e2e/packed/**"

This prevented any E2E tests from running, causing all 49 test failures.

Fix: Remove the --exclude parameter to allow packed E2E tests to run.

The npm availability fix from commit 3a0e4dd is still in place for packed tests that need npm.
Add .gitignore to prevent old compiled dist/ directory from interfering with module resolution.

The old-dist/ directory contains stale compiled files owned by root that were
preventing proper recompilation.
Copilot AI review requested due to automatic review settings March 15, 2026 11:21
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a smoother local development loop for the kibi-opencode plugin (watch mode + dogfooding docs/config), while updating CI/publish workflows and documentation traceability links to align with the current test pipeline and relationship modeling.

Changes:

  • Add dev (TypeScript watch) scripts for the opencode plugin and expose a root dev:opencode shortcut.
  • Switch docs/config to a “dogfood from source” OpenCode plugin setup (local shim + opencode.json plugin list).
  • Update CI/publish workflows and documentation to match the new unit-test entrypoint and richer links: relationship objects.

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/docker/test.sh Updates Docker test script messaging to point at bun run test:unit.
packages/opencode/package.json Adds dev script using tsc --watch.
packages/opencode/DEV.md Adds dogfooding setup documentation for local plugin development.
package.json Adds root dev:opencode script.
opencode.json Switches plugin list to local-only (plugin: []).
documentation/tests/e2e/packed/.gitignore Ignores dist/ for packed e2e test artifacts.
documentation/symbols.yaml Updates coordinatesGeneratedAt timestamps.
documentation/requirements/REQ-vscode-traceability.md Converts links: to typed relationship objects and adds verification link.
documentation/requirements/REQ-opencode-kibi-plugin-v1.md Converts links: to typed relationship objects (verified/spec/scope).
documentation/requirements/REQ-019.md Adds specified_by / verified_by links.
documentation/requirements/REQ-018.md Marks requirement deprecated and changes link modeling.
documentation/requirements/REQ-016.md Adjusts link types and adds specified_by / verified_by.
documentation/requirements/REQ-015.md Adds specified_by / verified_by.
documentation/requirements/REQ-014.md Normalizes link objects (specified_by / verified_by) and link typing.
documentation/requirements/REQ-013.md Normalizes link objects for ADR/scenario/test references.
documentation/requirements/REQ-012.md Adds specified_by / verified_by.
documentation/requirements/REQ-011.md Adds specified_by / verified_by.
documentation/requirements/REQ-009.md Adds specified_by / verified_by.
documentation/requirements/REQ-008.md Adds specified_by / verified_by.
documentation/requirements/REQ-007.md Adds specified_by / verified_by.
documentation/requirements/REQ-006.md Adds specified_by / verified_by.
documentation/requirements/REQ-005.md Adds specified_by / verified_by.
documentation/requirements/REQ-004.md Adds specified_by / verified_by.
documentation/requirements/REQ-003.md Adds specified_by / verified_by.
documentation/requirements/REQ-002.md Adds specified_by / verified_by.
documentation/requirements/REQ-001.md Adds verified_by link.
README.md Documents dogfooding quick-start and points to packages/opencode/DEV.md.
CONTRIBUTING.md Updates test commands to prefer bun run test / bun run test:unit.
.github/workflows/publish.yml Adds Node/npm verification and installs .opencode deps in build step.
.github/workflows/ci.yml Updates unit test command to bun run test:unit and tweaks packaging steps.

You can also share your feedback on Copilot code review. Take the survey.

target: TEST-001
---

New business rule that intentionally conflicts with REQ-018 to test the contradiction engine.
Comment on lines +4 to +14
status: deprecated
created_at: 2026-02-20T13:05:00Z
updated_at: 2026-02-20T13:05:00Z
source: documentation/requirements/REQ-018.md
priority: must
tags: [auth]
links:
- type: constrains
target: FACT-USER-ROLE
- type: requires_property
- type: relates_to
target: FACT-LIMIT-2
- type: relates_to
target: REQ-019
@Looted Looted merged commit c476e9a into master Mar 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants