30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
---
|
|
description: bot-agents migration decisions: live @main action for six repos, JSON profiles, Node 24.2+, no @cunarist plugins needed
|
|
---
|
|
|
|
Decisions for `commons/bot-agents` (Capsulizers Gitea), from the Deno to
|
|
Node + Vite+ migration (PR #20, `node-migration`, 2026-10-15/16):
|
|
|
|
- **Live action.** Six consumer repos use `commons/bot-agents@main`, so a merge
|
|
switches all of them at once. It changes only through a PR and a careful
|
|
review. Suggested before merging a risky change: tag the current `main`
|
|
(e.g. `deno-final`) as a rollback target and canary the branch from one
|
|
consumer (`uses: .../commons/bot-agents@<branch>`) on a throwaway PR.
|
|
- **Profiles are JSON.** `profiles.yml` became `profiles.json` with the same
|
|
content (encrypted `v1:` values unchanged), read with `JSON.parse`. That
|
|
removed the only runtime dependency (`@std/yaml`); keep it free of runtime
|
|
dependencies (`@eslint/core` and the other devDependencies serve only the
|
|
tooling).
|
|
- **Node 24.2+**, not 22: `src/post.ts` uses `import.meta.main`. There is no
|
|
`engines` (user decision 2026-10-18): the `node:24-bookworm` job image
|
|
decides the version ([[bot-agents-runtime-no-build]]).
|
|
- **No `@cunarist/eslint-plugin-*`.** The Deno setup enabled no plugin, so
|
|
this repo depends on none and CI passes without them being published.
|
|
Planned (2026-10-17): once the plugins are on npm, add
|
|
`@cunarist/eslint-plugin-modules` here for its import checks.
|
|
- **Stricter input checks were accepted** in the migration: Gitea `/user` and
|
|
comment responses, the runtime manifest, and the outcome's profile type are
|
|
validated; some type errors became `TypeError` with the same messages.
|
|
- Merging is the user's call; the `bot` account's approval is required first
|
|
([[git-pr-workflow]]).
|