Files
platform/.gitignore
T
pastilhasandClaude Opus 5 cca85a7524 offscale moves to its own repository
Pushed to gitea.officer.dev/plugins/offscale (50 files, verified byte-identical
to the working copy by cloning it back), then untracked here.

Order matters and it was this way round deliberately: until that push, this
repository was the only copy of those 49 files. Untracking first would have left
them on one disk. The push is what made the removal safe, so it happened first
and was verified before anything was removed.

The files stay on disk and the installed plugin keeps working — this changes who
owns the code, not what is running.

`example` stays tracked, alone. It has no repository yet, and it is the reference
implementation EXTRACTING-A-PLUGIN.md sends people to read; removing it would
both delete it from everywhere but this disk and leave the doc pointing at
nothing. It follows once it has a remote.

Not done, and worth knowing before a fresh install: plugins/offscale is PRIVATE,
and fetch.ts clones anonymously over https with no credentials by design. So
offscale cannot be installed from the marketplace the way music can. It needs to
be public, or the marketplace needs authentication — which is a feature, not an
oversight to patch quietly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 18:14:17 +00:00

112 lines
4.1 KiB
Plaintext

# dependencies (bun install)
node_modules
# output
out
src/videos/**/out
dist
dist_*
.dist
runtime-scripts
*.tgz
# code coverage
coverage
*.lcov
# logs
logs
_.log
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# caches
.eslintcache
.cache
*.tsbuildinfo
# IntelliJ based IDEs
.idea
# Finder (MacOS) folder config
.DS_Store
src/config.ts
# Playwright
playwright/
.wwebjs_cache/
# generated from index.html by scripts/gen-index.ts
src/apps/officer-web/index.gen.html
# scratch scripts — never commit these
*.tmp.ts
# Sidecar assets published at install time — copies of files that live in each sidecar's own tree.
public/plugins/
# Written by machine-setup.sh to record completed steps; per-machine, never shared.
.setup-progress
.setup-answers
# Written by officer-setup.sh; per-machine.
scripts/setup/officer-setup/.setup-progress
# Generated by officer-setup, describing THIS install's processes. Never committed:
# the repository has no ecosystem file at all any more, and the next machine
# generates its own. See scripts/setup/officer-setup/lib/services.sh.
ecosystem.config.cjs
# The built SPA and the generated plugin module — both describe THIS install's plugin set and are
# rewritten on every install. See servers/plugins/generate.ts.
build/
build.next/
src/apps/officer-web/Plugins.gen.tsx
src/databases/officer_db/src/plugin-schemas.gen.ts
# drizzle-kit's generated migrations. Nothing applies them — there is no __drizzle_migrations table and
# `drizzle-kit migrate` has never been run here; `bun db:push` diffs the schema code against the live
# database and alters it directly. The schema code is the source of truth (src/databases/CLAUDE.md).
#
# Ignored rather than merely unused, because `bun db:gen` reads src/schema.ts — whose last line imports
# plugin-schemas.gen.ts, itself generated from the plugin DIRECTORIES on this machine. So a generated
# migration describes whichever plugins happen to be checked out here, and committing one would launder
# per-machine state into the repository: run it with music installed and history gains music_*; run it on
# a fresh clone and the next commit deletes them again.
#
# The old 0000_new_princess_powerful.sql is deleted from the WORKING TREE but left in history. It had 36
# tables and described a schema from before capabilities, api_keys, the app store and the plugin system
# existed, including three (task_logs, terminal_containers, queue_jobs) that no longer exist at all.
#
# Purging it from history was tried on 2026-08-15 and deliberately undone. This codebase cites 76 commit
# SHAs in comments and docs as evidence — `totality.ts` points at 2873948 for the websocket incident,
# `registry.ts` at 044aacf4, CLAUDE.md at f35c145 — and a filter-repo run rewrites every one of them.
# Three stale files nobody reads in old commits are not worth 76 dangling citations in a codebase whose
# documentation works by pointing at the commit that proves the claim.
#
# Generate one locally whenever a diff is useful to read. It stays local.
src/databases/officer_db/migrations/
# ── Marketplace-installed plugins ──
#
# A plugin fetched from the marketplace is a CLONE with its own .git and its own repository. Left
# tracked, `git add -A` after an install commits it as a gitlink — a pointer to a commit this repo does
# not contain, which then breaks anyone who clones the platform and does not have access to that plugin.
# Happened on 2026-08-15, one commit after the marketplace landed.
#
# The plugins that genuinely ship with the platform are re-included by name below. Adding one is a
# deliberate act, so keeping this list by hand is the right amount of friction — an unlisted plugin
# directory is an install, not a source file.
/plugins/*/
# `example` is the only exception left, and only until it has a repository of its own. It is the
# reference implementation EXTRACTING-A-PLUGIN.md sends people to read, and it has no remote — the
# platform repo is its single copy, so untracking it would delete it from everywhere but this disk.
!/plugins/example/