Files
platform/plugins
pastilhas 256f8185f5 music leaves the platform repository entirely
41 files moved to ~/officer-dev/plugins/music, now its own git repository
pushed to gitea.officer.dev/plugins/music. The platform tracks none of it.

Done in the order the design intends, and each step verified rather than
assumed:

  uninstall via /plugins   sidecar stopped and deleted from PM2, ecosystem
                           entry removed, routes unmounted, icon unpublished,
                           TABLES DELIBERATELY KEPT
  copy out, verify         `diff -r` identical before removing anything
  git rm from the platform
  regenerate the barrel    1 plugin schema now: offscale
  bun db:push --force      music_favorites, music_playlists,
                           music_playlist_items and music_now_playing DROPPED

That last step is the one destructive property this system has, and until today
nobody had watched it happen. `plugins/schema.ts` has said since it was written
that the barrel follows plugin DIRECTORIES rather than the install table, so
that uninstalling keeps every row and only deleting the source can lose data.
Both halves are now observed: uninstall kept the tables, deleting the directory
dropped them. Nothing else moved — headscale_servers intact, plugin_installs
correct, all 9 permission grants untouched.

The platform boots clean, mounts /example and /offscale, reports no broken
plugins, and answers 404 on /api/music.

── What this cost, and it is the interesting part ──

The test suite went from 797 tests across 58 files to 776 across 55. Music took
its three test files with it, and one of the seven known failures — the cliamp
socket test — left with them. So the platform no longer tests music at all, and
music's repository has no CI. That is correct and it is also a gap.

And the repository does not build. Measured from outside the platform checkout,
every one of `hooks/useClient`, `officerdev` and `officerdb/db` fails to
resolve: 7 imports in the backend, ~29 in the frontend. A symlink back into
platform/plugins/ was tested and does resolve, but the owner declined it — the
point of moving was to stop pretending.

So music is now a source of truth that cannot run, and the host API has to
become something a plugin depends on rather than reaches into. That was already
the known problem; it is now the blocking one.
2026-08-15 17:36:59 +00:00
..