Files
m3e-canvas/web/vendor/PROVENANCE.md
T
pastilhasandClaude Fable 5 240d63940d vendor m3e-canvas 5c83ac6, with the import rewrite scripted
upstream imports through a @/ alias, and this platform already binds
@/* to src/apps/officer-web and @/components/* to its own shared
components — so an unrewritten import resolves to the WRONG module
rather than failing. the rewrite is mechanical and lives in
scripts/vendor.sh so a re-vendor produces a readable diff.

lib/ai.ts and AiPanel are vendored despite being unwanted: deleting them
meant editing vendored code, and Canvas.tsx references them throughout.
a faithful copy carrying an unused module beats a doctored one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 12:00:17 +01:00

1.6 KiB

Vendored from lnkiai/m3e-canvas

upstream https://github.com/lnkiai/m3e-canvas.git
ref main
commit 5c83ac6f437153b4df4d2348c4f94c4ff71b864a
dated 2026-09-05
licence MIT — see LICENSE beside this file
vendored 2026-09-05 by scripts/vendor.sh

Do not edit anything in this directory. Officer's changes live outside it, reached through web/adapter.ts. Editing here makes the next vendor.sh run either clobber the change or produce a diff nobody can read.

What was taken, and what was not

Taken: lib/, components/, upstream's app/page.tsx as Canvas.tsx, and globals.css.

Not taken: app/layout.tsx — a Next.js route shell with no meaning here.

lib/ai.ts and components/AiPanel.tsx ARE taken even though Officer does not use them. They keep model-provider API keys in localStorage, which is not how anything here should work — but Canvas.tsx references them throughout, so removing them would mean editing vendored code. A faithful copy carrying an unused module beats a doctored one that cannot be re-vendored. They are inert without a key, and the shell does not surface them.

The one edit vendor.sh makes

Every @/lib/… and @/components/… import is rewritten to a relative path. This platform already binds @/* to src/apps/officer-web and @/components/* to its own shared components, so an unrewritten import resolves to the WRONG module rather than failing — silent breakage.

The rewrite is deterministic, so a re-vendor produces a readable diff of upstream's real changes.