063eb09750
Co-authored-by: Danny Kim <temeddix@gmail.com> Co-committed-by: Danny Kim <temeddix@gmail.com>
2.0 KiB
2.0 KiB
description: bot-agents migration decisions: live @main action for six repos, JSON profiles, Node 24.2+, lints with eslint-plugin-import-structure and explicit-types (concrete, absence)
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 currentmain(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.ymlbecameprofiles.jsonwith the same content (encryptedv1:values unchanged), read withJSON.parse. That removed the only runtime dependency (@std/yaml); keep it free of runtime dependencies (@eslint/coreand the other devDependencies serve only the tooling). - Node 24.2+, not 22:
src/post/index.tsusesimport.meta.main. There is noengines(user decision 2026-10-18): thenode:24-bookwormjob image decides the version (bot-agents-runtime-no-build). - Published lint plugins (2026-10-18, after they reached npm):
eslint-plugin-import-structure(modulesconfig) andeslint-plugin-explicit-types(concreteandabsenceconfigs) are devDependencies, enabled invite.config.tsthrough theirallconfigs.upper-snake-string-unionswas off while the user decided; since 2026-10-19 it is on and profile types, failure reasons, and anchor sides areUPPER_SNAKE(enum-values-upper-snake).eslint-plugin-lit-robustdoes not apply (no Lit). - Stricter input checks were accepted in the migration: Gitea
/userand comment responses, the runtime manifest, and the outcome's profile type are validated; some type errors becameTypeErrorwith the same messages. - Merging is the user's call; the
botaccount's approval is required first (git-pr-workflow).