refactor: rename @opencode-ai/shared to @opencode-ai/core (#24309)#265
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (56)
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
🧰 Additional context used📓 Path-based instructions (1)packages/opencode/**/*.ts📄 CodeRabbit inference engine (packages/opencode/AGENTS.md)
Files:
🧠 Learnings (48)📓 Common learnings📚 Learning: 2026-04-27T11:18:47.596ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-21T16:57:20.257ZApplied to files:
📚 Learning: 2026-04-27T08:58:00.665ZApplied to files:
📚 Learning: 2026-04-23T08:51:04.230ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-25T12:52:37.850ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-22T09:32:54.556ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-22T08:49:47.800ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-20T14:36:31.032ZApplied to files:
📚 Learning: 2026-04-27T11:19:24.963ZApplied to files:
📚 Learning: 2026-04-27T11:18:47.298ZApplied to files:
📚 Learning: 2026-04-27T11:18:47.332ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-25T12:52:49.735ZApplied to files:
📚 Learning: 2026-04-27T10:32:59.274ZApplied to files:
📚 Learning: 2026-04-27T10:33:08.974ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-22T09:32:58.310ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:21.288ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-24T17:12:26.774ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
📚 Learning: 2026-04-20T14:36:04.113ZApplied to files:
🔇 Additional comments (33)
📝 WalkthroughWalkthroughMonorepo-wide package namespace migration: imports and package.json entries changed from Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Code Review
This pull request renames the @opencode-ai/shared package to @opencode-ai/core across the monorepo. The changes include updating the package name in package.json, adjusting the lockfile, and updating all internal import references. Feedback suggests updating variable and import aliases in test files (e.g., changing sharedFindLast to coreFindLast) to maintain naming consistency with the new package name.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/util/test/compat.test.ts`:
- Around line 3-5: Rename the imports that alias core package exports to use
"core" instead of "shared": change sharedBase64Encode → coreBase64Encode,
sharedChecksum → coreChecksum, and sharedGetFilename → coreGetFilename (leave
utilGetFilename as-is) and update all test usages to reference coreBase64Encode,
coreChecksum, and coreGetFilename so the intent is clear that these imports come
from `@opencode-ai/core`.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: dd771ab4-2cdb-497b-917b-e8cef89030dd
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (56)
packages/core/package.jsonpackages/core/src/filesystem.tspackages/core/src/global.tspackages/core/src/runtime.tspackages/core/src/types.d.tspackages/core/src/util/array.tspackages/core/src/util/binary.tspackages/core/src/util/effect-flock.tspackages/core/src/util/encode.tspackages/core/src/util/error.tspackages/core/src/util/flock.tspackages/core/src/util/fn.tspackages/core/src/util/glob.tspackages/core/src/util/hash.tspackages/core/src/util/identifier.tspackages/core/src/util/iife.tspackages/core/src/util/lazy.tspackages/core/src/util/module.tspackages/core/src/util/path.tspackages/core/src/util/retry.tspackages/core/src/util/slug.tspackages/core/sst-env.d.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/fixture/effect-flock-worker.tspackages/core/test/fixture/flock-worker.tspackages/core/test/global.test.tspackages/core/test/lib/effect.tspackages/core/test/util/effect-flock.test.tspackages/core/test/util/flock.test.tspackages/core/test/util/identifier.test.tspackages/core/tsconfig.jsonpackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/opencode/package.jsonpackages/opencode/src/config/agent.tspackages/opencode/src/config/command.tspackages/opencode/src/config/config.tspackages/opencode/src/config/managed.tspackages/opencode/src/config/paths.tspackages/opencode/src/config/plugin.tspackages/opencode/src/global/index.tspackages/opencode/src/session/export.tspackages/opencode/src/session/instruction.tspackages/opencode/src/session/session.tspackages/opencode/src/share/runtime.tspackages/opencode/src/storage/db.tspackages/ui/package.jsonpackages/ui/src/components/file.tsxpackages/ui/src/components/line-comment.tsxpackages/ui/src/components/markdown.tsxpackages/ui/src/components/message-part.tsxpackages/ui/src/components/session-review.tsxpackages/ui/src/components/session-turn.tsxpackages/ui/src/components/tool-info.tspackages/util/package.jsonpackages/util/test/compat-surface.test.tspackages/util/test/compat.test.ts
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
- GitHub Check: smoke-macos-arm64
- GitHub Check: unit-windows-desktop
- GitHub Check: unit-windows-opencode-session
- GitHub Check: unit-windows-opencode-server-tools
- GitHub Check: unit-windows-opencode-config-project
- GitHub Check: unit-app
- GitHub Check: unit-windows-app
- GitHub Check: typecheck
- GitHub Check: unit-desktop
- GitHub Check: unit-opencode
- GitHub Check: e2e-artifacts
- GitHub Check: analyze-js-ts
🧰 Additional context used
📓 Path-based instructions (1)
packages/opencode/**/*.ts
📄 CodeRabbit inference engine (packages/opencode/AGENTS.md)
packages/opencode/**/*.ts: UseEffect.gen(function* () { ... })for Effect composition
UseEffect.fn("Domain.method")for named/traced effects andEffect.fnUntracedfor internal helpers; these accept pipeable operators as extra arguments to avoid unnecessary outer.pipe()wrappers
UseEffect.callbackfor callback-based APIs
PreferDateTime.nowAsDateovernew Date(yield* Clock.currentTimeMillis)when you need aDatein Effect code
UseSchema.Classfor multi-field data in Effect schemas
Use branded schemas (Schema.brand) for single-value types in Effect
UseSchema.TaggedErrorClassfor typed errors in Effect schemas
UseSchema.Defectinstead ofunknownfor defect-like causes in Effect code
InEffect.gen/Effect.fn, preferyield* new MyError(...)overyield* Effect.fail(new MyError(...))for direct early-failure branches
UsemakeRuntimefromsrc/effect/run-service.tsfor all services; it returns{ runPromise, runFork, runCallback }backed by a sharedmemoMapthat deduplicates layers
UseInstanceStatefromsrc/effect/instance-state.tsfor per-directory or per-project state that needs per-instance cleanup; do work directly in theInstanceState.makeclosure whereScopedCachehandles run-once semantics
UseEffect.addFinalizerorEffect.acquireReleaseinside theInstanceState.makeclosure for cleanup (subscriptions, process teardown, etc.)
UseEffect.forkScopedinside theInstanceState.makeclosure for background stream consumers — the fiber is interrupted when the instance is disposed
PreferFileSystem.FileSysteminstead of rawfs/promisesfor effectful file I/O in Effect services
PreferChildProcessSpawner.ChildProcessSpawnerwithChildProcess.make(...)instead of custom process wrappers in Effect services
PreferHttpClient.HttpClientinstead of rawfetchin Effect services
PreferPath.Path,Config,Clock, andDateTimeservices when those concerns are already inside Effect code
For backgroun...
Files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/opencode/src/config/plugin.tspackages/opencode/src/session/instruction.tspackages/opencode/src/global/index.tspackages/opencode/src/session/session.tspackages/opencode/src/storage/db.tspackages/opencode/src/config/agent.tspackages/opencode/src/share/runtime.tspackages/opencode/src/config/paths.tspackages/opencode/src/config/config.tspackages/opencode/src/config/command.ts
🧠 Learnings (42)
📓 Common learnings
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 126
File: packages/ui/src/theme/context.tsx:11-16
Timestamp: 2026-04-22T09:32:58.310Z
Learning: In Astro-Han/pawwork (`packages/ui/src/theme/context.tsx` and related files), the renaming of localStorage theme keys from `opencode-*` to `pawwork-*` (THEME_ID, COLOR_SCHEME, THEME_CSS_LIGHT, THEME_CSS_DARK) is intentional and should NOT include a migration path from the old keys. Migrating would re-couple PawWork and OpenCode browser storage namespaces, which the PR is explicitly designed to avoid. A reset to the PawWork default theme on upgrade is acceptable by design.
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 224
File: packages/app/src/i18n/zh.ts:0-0
Timestamp: 2026-04-24T17:08:44.294Z
Learning: In Astro-Han/pawwork PR `#224`, the first-occurrence `PawWork 爪印` branding rule originally specified in issue `#196` was superseded by an updated Chinese-branding spec. On all zh UI surfaces in `packages/app/src/i18n/zh.ts` (e.g., `dialog.model.unpaid.freeModels.title`, `session.new.subtitle`, `sidebar.gettingStarted.line1`), the correct and intentional target is fully localized `爪印` branding — no `PawWork` prefix. Do NOT flag these strings as missing the first-occurrence `PawWork 爪印` rule in future reviews.
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 211
File: packages/opencode/src/provider/models.ts:113-179
Timestamp: 2026-04-24T06:50:02.712Z
Learning: In Astro-Han/pawwork (`packages/opencode/src/provider/models.ts`), `PublishModel` and `PublishProvider` intentionally duplicate fields from `Model` and `Provider` with looser optionality. The split is a deliberate behavior boundary: `PublishModel`/`PublishProvider` (with `.passthrough()`) are used for lenient publish-time validation of incoming catalogs, while `Model`/`Provider` are used for strict runtime normalization. Do not flag this duplication as a maintenance burden or suggest extracting a shared base schema — the explicit separation is intentional and tied to the models-refresh reliability path introduced in PR `#211`.
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `makeRuntime` from `src/effect/run-service.ts` for all services; it returns `{ runPromise, runFork, runCallback }` backed by a shared `memoMap` that deduplicates layers
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/opencode/src/session/instruction.tspackages/opencode/src/global/index.tspackages/core/test/filesystem/filesystem.test.tspackages/opencode/src/session/session.tspackages/opencode/src/storage/db.tspackages/opencode/src/share/runtime.tspackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-25T12:52:47.074Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 234
File: packages/opencode/src/share/session.ts:27-27
Timestamp: 2026-04-25T12:52:47.074Z
Learning: In `packages/opencode/src/share/session.ts`, the local `ensureEnabled` closure is intentionally duplicated from `ShareRuntime.ensureEnabled` in `runtime.ts`. Using the shared `ShareRuntime.ensureEnabled` effect directly would leak `CloudShareGate` back into the `R` (requirement) type of `share`, `unshare`, and `create`, because the shared effect re-yields the service rather than capturing an already-resolved gate reference. The current pattern resolves `gate` once at the top of the outer `Effect.gen` and then closes over it in a local `ensureEnabled`, keeping the inner effects' requirement types clean. A comment in the file points to `runtime.ts` to make the intentional duplication discoverable. The real fix would be refactoring `ensureEnabled` to accept a gate parameter, but that change is larger than the DRY benefit warrants. Do not flag this duplication as a maintenance issue.
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/opencode/src/session/instruction.tspackages/opencode/src/global/index.tspackages/opencode/src/session/session.tspackages/opencode/src/share/runtime.ts
📚 Learning: 2026-04-25T12:52:35.671Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 234
File: packages/opencode/src/session/export.ts:24-31
Timestamp: 2026-04-25T12:52:35.671Z
Learning: In `packages/opencode/src/session/export.ts`, the `hashFile` async helper intentionally uses raw `node:fs/promises` (`fs.readFile`) rather than `FileSystem.FileSystem`. It is a small, self-contained helper called inside `Effect.promise(...)` with broad failure tolerance (try/catch returning `undefined`). Using `FileSystem.FileSystem` here would add unnecessary layers without payoff. The `FileSystem.FileSystem` preference applies to Effect-service-style operations, not thin async boundary helpers like `hashFile`.
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/plugin.tspackages/ui/src/components/file.tsxpackages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/opencode/src/session/session.tspackages/core/test/util/flock.test.tspackages/ui/src/components/session-review.tsxpackages/ui/src/components/session-turn.tsxpackages/core/test/util/effect-flock.test.tspackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/ui/src/components/message-part.tsxpackages/util/test/compat.test.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Prefer `FileSystem.FileSystem` instead of raw `fs/promises` for effectful file I/O in Effect services
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/plugin.tspackages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/ui/src/components/session-review.tsxpackages/opencode/src/config/agent.tspackages/opencode/src/share/runtime.tspackages/ui/src/components/session-turn.tsxpackages/core/test/util/effect-flock.test.tspackages/ui/src/components/line-comment.tsxpackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/ui/src/components/message-part.tsxpackages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Prefer `Path.Path`, `Config`, `Clock`, and `DateTime` services when those concerns are already inside Effect code
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/opencode/src/config/plugin.tspackages/opencode/src/global/index.tspackages/opencode/src/config/agent.tspackages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/ui/src/components/line-comment.tsxpackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/ui/src/components/message-part.tsxpackages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Avoid custom `ManagedRuntime`, `attach(...)`, or ad hoc `run(...)` wrappers in Effect tests when `testEffect(...)` already provides the runtime.
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/opencode/src/global/index.tspackages/core/test/filesystem/filesystem.test.tspackages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Use `testEffect(...)` from `test/lib/effect.ts` for tests that exercise Effect services or Effect-based workflows.
Applied to files:
packages/opencode/src/session/export.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/core/test/util/effect-flock.test.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-22T09:32:54.556Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 126
File: packages/opencode/test/provider/provider.test.ts:64-85
Timestamp: 2026-04-22T09:32:54.556Z
Learning: In `packages/opencode/test/provider/provider.test.ts`, the file intentionally uses AppRuntime-based async helpers (`run`, `list`, `getProvider`, etc.) rather than `testEffect(...)` for all tests. Converting individual tests to `testEffect` while leaving the rest on the async pattern would create internal inconsistency. A full harness migration of this file is the right approach if the pattern needs to change, but that should be a separate PR.
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/managed.tspackages/core/test/filesystem/filesystem.test.tspackages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/core/test/fixture/effect-flock-worker.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Prefer Effect-aware helpers from `fixture/fixture.ts` over building manual runtimes in tests: use `tmpdirScoped()` for scoped temp directories, `provideInstance(dir)(effect)` for low-level binding without directory creation, `provideTmpdirInstance(...)` for single temp instance binding, or `provideTmpdirServer(...)` for tests that also need the test LLM server.
Applied to files:
packages/opencode/src/session/export.tspackages/opencode/src/config/plugin.tspackages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/util/test/compat.test.tspackages/opencode/src/config/command.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `Effect.gen(function* () { ... })` for Effect composition
Applied to files:
packages/opencode/src/session/export.tspackages/core/test/fixture/effect-flock-worker.ts
📚 Learning: 2026-04-21T16:57:20.257Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 102
File: packages/opencode/src/config/command.ts:23-29
Timestamp: 2026-04-21T16:57:20.257Z
Learning: In packages/opencode/src/config/ config modules, treat both `Schema.Struct` and `Schema.Class` as valid schema patterns and do not require converting `Schema.Struct` to `Schema.Class`. If `Schema.Struct` is used in a config schema (e.g., in files like `command.ts`, `formatter.ts`, `provider.ts`, `permission.ts`, `lsp.ts`, `config.ts`, `keybinds.ts`), accept it as intentional; the selection should be based on upstream alignment and the local schema context, not on a rule that one form must replace the other.
Applied to files:
packages/opencode/src/config/managed.tspackages/opencode/src/config/plugin.tspackages/opencode/src/config/agent.tspackages/opencode/src/config/paths.tspackages/opencode/src/config/config.tspackages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Import test utilities from `../fixtures` instead of `playwright/test`
Applied to files:
packages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/core/test/util/effect-flock.test.tspackages/core/test/fixture/effect-flock-worker.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Use the `tmpdir` function from `fixture/fixture.ts` to create temporary directories for tests with automatic cleanup. Use `await using` syntax to ensure automatic cleanup when the variable goes out of scope.
Applied to files:
packages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/core/test/util/effect-flock.test.tspackages/opencode/src/config/paths.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Prefer the `project` fixture for tests that need a dedicated project with LLM mocking
Applied to files:
packages/core/test/fixture/flock-worker.ts
📚 Learning: 2026-04-23T08:51:04.230Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 186
File: packages/opencode/test/plugin/workspace-adaptor.test.ts:139-144
Timestamp: 2026-04-23T08:51:04.230Z
Learning: In Astro-Han/pawwork (`packages/opencode/src/util/filesystem.ts`), the `Filesystem` utility does NOT expose a `remove` or `unlink` helper. The established repository pattern for auth.json teardown in tests (e.g. `provider.test.ts`, `amazon-bedrock.test.ts`, `workspace-adaptor.test.ts`) is to combine `Filesystem.write` with `node:fs/promises unlink`. Do not flag this mixed usage as inconsistent — it is the correct and intentional pattern.
Applied to files:
packages/core/test/fixture/flock-worker.tspackages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/ui/src/components/session-review.tsxpackages/ui/src/components/line-comment.tsxpackages/opencode/src/config/paths.tspackages/opencode/src/config/config.tspackages/ui/src/components/message-part.tsxpackages/util/test/compat.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `InstanceState` from `src/effect/instance-state.ts` for per-directory or per-project state that needs per-instance cleanup; do work directly in the `InstanceState.make` closure where `ScopedCache` handles run-once semantics
Applied to files:
packages/opencode/src/global/index.tspackages/opencode/src/storage/db.tspackages/opencode/src/config/paths.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-22T08:49:47.800Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 126
File: packages/desktop-electron/src/main/index-sidecar-source.test.ts:3-11
Timestamp: 2026-04-22T08:49:47.800Z
Learning: In `packages/desktop-electron/src/main/index-sidecar-source.test.ts` (Astro-Han/pawwork), the test intentionally uses `expect(source).toContain` / `expect(source).not.toContain` string matching against the raw `index.ts` source text as a lightweight sidecar contract guard. The maintainer has explicitly chosen not to introduce an AST parser (e.g., `babel/parser` or acorn) for this purpose. Do not flag these string-based assertions as fragile or suggest converting them to AST-based matching.
Applied to files:
packages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Use the `config` option in `tmpdir` to write an `opencode.json` config file during test setup by passing a partial Config.Info object.
Applied to files:
packages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/opencode/src/config/paths.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Define `const it = testEffect(...)` near the top of the test file and keep the test body inside `Effect.gen(function* () { ... })`. Yield services directly with `yield* MyService.Service` or `yield* MyTool`.
Applied to files:
packages/core/test/filesystem/filesystem.test.tspackages/core/test/util/effect-flock.test.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.tspackages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:31.032Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/test/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:31.032Z
Learning: Applies to packages/opencode/test/**/*.test.{ts,tsx} : Use `it.effect(...)` when the test should run with `TestClock` and `TestConsole`. Use `it.live(...)` when the test depends on real time, filesystem mtimes, child processes, git, locks, or other live OS behavior.
Applied to files:
packages/core/test/filesystem/filesystem.test.tspackages/core/test/util/flock.test.tspackages/core/test/util/effect-flock.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.tspackages/util/test/compat-surface.test.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Prefer `ChildProcessSpawner.ChildProcessSpawner` with `ChildProcess.make(...)` instead of custom process wrappers in Effect services
Applied to files:
packages/core/test/util/flock.test.tspackages/opencode/src/share/runtime.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-22T09:32:58.310Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 126
File: packages/ui/src/theme/context.tsx:11-16
Timestamp: 2026-04-22T09:32:58.310Z
Learning: In Astro-Han/pawwork (`packages/ui/src/theme/context.tsx` and related files), the renaming of localStorage theme keys from `opencode-*` to `pawwork-*` (THEME_ID, COLOR_SCHEME, THEME_CSS_LIGHT, THEME_CSS_DARK) is intentional and should NOT include a migration path from the old keys. Migrating would re-couple PawWork and OpenCode browser storage namespaces, which the PR is explicitly designed to avoid. A reset to the PawWork default theme on upgrade is acceptable by design.
Applied to files:
packages/ui/src/components/session-review.tsx
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/src/**/*.sql.ts : Drizzle schema should live in `src/**/*.sql.ts`
Applied to files:
packages/opencode/src/storage/db.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `Effect.cached` when multiple concurrent callers should share a single in-flight computation rather than storing `Fiber | undefined` or `Promise | undefined` manually
Applied to files:
packages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/opencode/src/config/paths.tspackages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : For background loops or scheduled tasks, use `Effect.repeat` or `Effect.schedule` with `Effect.forkScoped` in the layer definition
Applied to files:
packages/opencode/src/share/runtime.tspackages/core/test/util/effect-flock.test.tspackages/core/test/fixture/effect-flock-worker.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/drizzle.config.ts : Configure Drizzle Kit migrations with schema path `./src/**/*.sql.ts` and output path `./migration`
Applied to files:
packages/opencode/src/config/paths.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `Effect.forkScoped` inside the `InstanceState.make` closure for background stream consumers — the fiber is interrupted when the instance is disposed
Applied to files:
packages/core/test/fixture/effect-flock-worker.tspackages/opencode/src/config/config.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Prefer `HttpClient.HttpClient` instead of raw `fetch` in Effect services
Applied to files:
packages/opencode/src/config/config.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : When validating routing, assert against canonical or resolved workspace slugs using shared helpers from `../actions` to account for Windows canonicalization
Applied to files:
packages/util/test/compat.test.tspackages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `Schema.TaggedErrorClass` for typed errors in Effect schemas
Applied to files:
packages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use `Schema.Defect` instead of `unknown` for defect-like causes in Effect code
Applied to files:
packages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:21.288Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/opencode/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:21.288Z
Learning: Applies to packages/opencode/**/*.ts : Use branded schemas (`Schema.brand`) for single-value types in Effect
Applied to files:
packages/opencode/src/config/command.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/packages/app/src/testing/**/*.ts : Test-only hooks must be inert unless explicitly enabled and should not add normal-runtime listeners, reactive subscriptions, or per-update allocations
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Test files should be named with the pattern `feature-name.spec.ts`
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Use SCREAMING_SNAKE_CASE for constants in tests
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Use lowercase, descriptive test names (e.g., 'sidebar can be toggled')
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Use camelCase for variable names in tests
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-24T17:12:23.931Z
Learnt from: Astro-Han
Repo: Astro-Han/pawwork PR: 224
File: packages/desktop-electron/electron-builder.config.ts:14-18
Timestamp: 2026-04-24T17:12:23.931Z
Learning: In Astro-Han/pawwork, the `localizedMacDisplayNameByChannel` map in `packages/desktop-electron/electron-builder.config.ts` is intentionally kept separate from `localizedAppDisplayName` in `packages/desktop-electron/src/main/app-display-name.ts`. The former is a build-time packaging helper; the latter is a runtime UI helper that localizes the current app name by locale. Coupling them would introduce a build-time dependency on runtime main logic. Do not suggest deduplicating or sharing this mapping — the explicit local table is covered by focused regression tests in `electron-builder-app-update.test.ts`.
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Use locator assertions like `toBeVisible()`, `toHaveCount(0)`, and `toHaveAttribute(...)` for normal UI state verification
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Test one feature per test file
Applied to files:
packages/desktop-electron/scripts/runtime-import-guard.test.ts
📚 Learning: 2026-04-20T14:36:04.113Z
Learnt from: CR
Repo: Astro-Han/pawwork PR: 0
File: packages/app/e2e/AGENTS.md:0-0
Timestamp: 2026-04-20T14:36:04.113Z
Learning: Applies to packages/app/e2e/**/*.spec.ts : Prefer fluent helpers and drivers when they make intent obvious and reduce locator-heavy noise in tests
Applied to files:
packages/util/test/compat-surface.test.ts
🔇 Additional comments (30)
packages/util/package.json (1)
14-14: Dependency rename is correctly applied.Line 14 cleanly switches the workspace dependency to
@opencode-ai/corewith no unintended manifest changes.packages/opencode/package.json (1)
116-116:opencodemanifest update is consistent with the rename.Line 116 correctly points to
@opencode-ai/coreas a workspace dependency.packages/ui/package.json (1)
48-48: UI dependency migration looks correct.Line 48 updates the workspace package name without introducing unrelated manifest churn.
packages/core/package.json (1)
4-4: Core package identity rename is correctly set.Line 4 updates the package name to
@opencode-ai/core, matching the new namespace expected by dependents.packages/ui/src/components/tool-info.ts (1)
2-2: Import migration is safe and consistent.Line 2 updates
getFilenameto the new@opencode-ai/corepath with no downstream logic changes in this file.packages/ui/src/components/file.tsx (1)
1-1: Checksum utility import update is correctly scoped.Line 1 performs the expected namespace switch to
@opencode-ai/corewhile preserving existing cache-key logic.packages/ui/src/components/session-review.tsx (1)
14-15: Session review utility imports are correctly migrated.Lines 14-15 switch to
@opencode-ai/corewith unchanged call sites, which keeps behavior stable.packages/ui/src/components/line-comment.tsx (1)
2-2: Line-comment path helper migration is clean.Line 2 correctly repoints path helpers to
@opencode-ai/corewith no functional changes needed elsewhere in the component.packages/core/test/fixture/flock-worker.ts (1)
2-2: LGTM – Clean namespace migration.The import update from
@opencode-ai/shared/util/flockto@opencode-ai/core/util/flockis correct and consistent with the PR's mechanical package rename objective.packages/core/test/filesystem/filesystem.test.ts (1)
4-4: LGTM – Correct filesystem import migration.The
AppFileSystemimport now correctly references@opencode-ai/core/filesystem, aligning with the package rename.packages/core/test/util/flock.test.ts (1)
6-7: LGTM – Flock and Hash imports migrated correctly.Both utility imports now reference the
@opencode-ai/corenamespace as intended.packages/ui/src/components/session-turn.tsx (1)
11-12: LGTM – UI utility imports migrated correctly.The
Binaryand path utilities now correctly reference@opencode-ai/core/util/*. The provided code snippet confirms byte-for-byte equivalence of the Binary implementation.packages/core/test/fixture/effect-flock-worker.ts (1)
4-6: LGTM – Effect-based dependencies migrated correctly.All three service imports (
AppFileSystem,EffectFlock,Global) now reference@opencode-ai/coreas intended. The provided code snippets confirm layer compatibility.packages/opencode/src/share/runtime.ts (1)
2-2: LGTM – Runtime import migrated correctly.The
Runtimeimport now correctly references@opencode-ai/core/runtime, with existing usage unchanged.packages/opencode/src/session/session.ts (1)
28-28: LGTM – Runtime import migrated correctly.The
Runtimeimport now correctly references@opencode-ai/core/runtime, with existing usage (e.g., line 269) unchanged.packages/opencode/src/session/instruction.ts (1)
12-12: LGTM – Runtime import migrated correctly.The
Runtimeimport now correctly references@opencode-ai/core/runtime, with all existing usage (lines 32, 38, 52, 120, 332) unchanged.packages/opencode/src/storage/db.ts (1)
17-17: Runtime import migration looks correct.Line 17 correctly repoints to
@opencode-ai/core/runtime, and existingRuntime.appName()usage remains compatible.packages/opencode/src/session/export.ts (1)
9-9: Import rename is safe and consistent.Line 9 updates the runtime source to
@opencode-ai/core/runtimewithout changing behavior ingetRuntimeNamespace().packages/opencode/src/global/index.ts (1)
6-6: Global runtime import migration is correct.Line 6 now points to
@opencode-ai/core/runtime, andRuntime.appName()path initialization remains valid.packages/ui/src/components/markdown.tsx (1)
5-5: Checksum import migration looks good.Line 5 correctly switches to
@opencode-ai/core/util/encodeand keeps the markdown cache-key flow unchanged.packages/opencode/src/config/config.ts (1)
22-22: Core namespace migration is consistent across config dependencies.Lines 22, 26, and 50 correctly repoint
AppFileSystem,EffectFlock, andRuntimeto@opencode-ai/core/*with no behavioral drift.Also applies to: 26-26, 50-50
packages/opencode/src/config/managed.ts (1)
7-7: Managed runtime import update is correct.Line 7 cleanly migrates to
@opencode-ai/core/runtime, and existing runtime checks remain compatible.packages/opencode/src/config/paths.ts (1)
12-12: Config path import migration is solid.Lines 12-13 correctly switch filesystem/runtime dependencies to
@opencode-ai/core/*with unchanged behavior.Also applies to: 13-13
packages/ui/src/components/message-part.tsx (1)
47-48: Import migration is correct and consistent.Line 47 and Line 48 correctly switch utility imports to
@opencode-ai/corewhile preserving existing identifiers/usages.packages/core/test/util/effect-flock.test.ts (1)
8-11: Core test imports were migrated cleanly.Line 8 to Line 11 correctly update all tested modules to
@opencode-ai/core/*without altering the test behavior.packages/util/test/compat-surface.test.ts (1)
3-3: Compat-surface import updates are coherent.The renamed imports correctly target
@opencode-ai/core/util/*while keeping the compatibility assertions intact.Also applies to: 5-5, 7-7, 9-10, 13-13, 15-15, 17-17, 19-19, 21-21
packages/desktop-electron/scripts/runtime-import-guard.test.ts (1)
19-19: Runtime-guard expectations were updated consistently.The fixture strings and assertions now align on
@opencode-ai/core/runtime, including package-name resolution and built-file scanning checks.Also applies to: 32-32, 43-43, 151-151, 155-155
packages/opencode/src/config/agent.ts (1)
9-9:Globnamespace migration is correct.Line 9 correctly repoints to
@opencode-ai/core/util/globand remains compatible with existingGlob.scan(...)usage.packages/opencode/src/config/plugin.ts (1)
1-1: Plugin config import update looks good.Line 1 correctly migrates
Globto@opencode-ai/core/util/globwith no behavioral change.packages/opencode/src/config/command.ts (1)
6-6: Command config import migration is correct.Line 6 cleanly updates
Globto@opencode-ai/core/util/globand keeps the existing load flow intact.
Pure mechanical rename of the workspace package. packages/shared is moved to packages/core; all consumers update imports from @opencode-ai/shared/* to @opencode-ai/core/*. No file content changes beyond the package rename. PawWork-local consumers (packages/util, packages/ui, packages/opencode, packages/desktop-electron runtime-import-guard test) updated. This is the first half of upstream's "shared → core" refactor; the follow-up commits that move modules (Global, log, flag, cross-spawn, npm) into core land in a separate PR (#209 PR2). Refs: #209
0c6252d to
002807a
Compare
|
Renamed all |
Summary
Mechanical rename of the workspace package
@opencode-ai/sharedto@opencode-ai/core.packages/sharedmoves topackages/core; all consumer imports update from@opencode-ai/shared/*to@opencode-ai/core/*. No file content changes beyond the rename.PawWork-local consumers updated:
packages/util,packages/ui,packages/opencode,packages/desktop-electronruntime-import-guard test.Why
First half of upstream's "shared → core" refactor (PR #24309). This PR is intentionally scoped to the rename only so the diff stays mechanical and reviewable. The follow-up commits that move modules (Global, log, flag, cross-spawn, npm) into core land in PR2 of #209.
This is part of the weekly upstream sync per
project_upstream_strategy.md.Related Issue
#209
How To Verify
All five packages typecheck clean locally on this branch.
Checklist
bun.lockregenerated; no new depsdev, Conventional Commits English titleSummary by CodeRabbit