chore(repo): publish-readiness sanitization sweep (LC-521) #514
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/LC-521-publish-sanitization"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Working-tree sanitization so the
lets-chatrepo is safe to publish publicly (subtask of LC-518). HEAD only; the git-history rewrite for the two secrets already committed is the separate LC-522 follow-up. Internal material is relocated into a new git-ignoredinternal/(kept for the team), not destroyed.A. Docs relocate + redact
internal/holds the relocateddocs/audit/(whole-codebase audit report with exploit recipes),docs/superpowers/(48 build-history plans/specs), andCLAUDE.md.FUTURE.mddeleted.docs/now keeps only the 7 public how-to docs.internal/dev-web-traefik.md(kept thejust dev-web-localflow); CHANGELOG internal registry host genericized;ui-conventions.mdLC-148 audit finding-ID back-refs dropped (rationale kept);protocol-bridges/email-ingress/desktop-update-signinginternalLC-*/#PRissue refs genericized (design rationale kept);oidc/client.rsdev-cert comment de-hosted.protocol-bridges.mdclaimed the avatar-proxy 400 returns anLC-78-AVATAR-PROXYtoken in the error body. The real body namesLETS_CHAT_BRIDGE_AVATAR_PROXY_ENABLED(verified againstroutes/api.rs); doc now matches code.B. Secret scan config
.sops.yaml,*-secrets.yml,archived/- none exist here) from.trufflehog-exclude.txt,.noseyparker-ignore.txt, and the kingfisher inline excludes incheck-secrets.yml. Kept the LC-471 favicon base64 false-positive excludes..claude/settings.local.json(scheduled_tasks.lockwas already untracked).LETS_CHAT_SECRET_KEY,LETS_CHAT_BUNYIP_SSO_CLIENT_SECRET) leave the tree with the relocated compose files. They persist in history: rotate + purge under LC-522.C. Compose consolidation
compose.yml+ the 3 localhost dev files (dev-web-local,dev-web-local-saas,dev-desktop). Relocatedcompose.dev-web.yml,compose.dev-web-saas.yml, and the orphancompose.dev.yml.1(plus the now-unuseddev/traefik-iphelper) intointernal/.justfile: dropped thedev-web/dev-web-saasrecipes (+ their-down/-clean), removed them fromdev-clean, and added arun/run-downrecipe for the production-shapecompose.yml.D. Infra genericize (user-visible)
desktop/tauri.conf.jsonpublisher/homepage/copyright andserver/package.jsonrepo URL de-hosted to placeholders;.env.saascommentedapp.a8n.runexample URLs ->example.com.Decisions confirmed before implementing
desktop/src/update.rsDEFAULT_UPDATE_URLleft as-is. It is read at runtime and is the functional a8n-tools update endpoint; genericizing it would silently break desktop auto-update. The README default cell is kept consistent with it. The host also remains in the CI-plumbing refs (below) that were explicitly kept..env.standalone/.env.saaskept tracked as the de-facto env reference (no.env.exampleexists), with their contradictory.gitignorelines removed. Content is placeholder-only.Verification
just check,just test,just test-saasall green.just dev-web-localstill resolves; newjust runbuildscompose.yml.grep -rn 'a8n.run' $(git ls-files)shows only the intended CI-plumbing hits (build-oci-image.ymlREGISTRY_PROVIDER,Dockerfile.webimage.source LABEL,justfilefj --host+ release-URL rewrite) plus the deliberately-keptLETS_CHAT_UPDATE_URLdefault in README + update.rs.check-secrets.yml) runs them. Commands, for reference:trufflehog filesystem --no-update --fail --only-verified --exclude-paths .trufflehog-exclude.txt .noseyparker scan -i .noseyparker-ignore.txt . && noseyparker reportkingfisher scan --git-history full <favicon excludes> .Notes / heads-up
CLAUDE.mdout of the tree means Claude Code sessions on the published repo no longer auto-load it; the team keepsinternal/CLAUDE.md.internal/dir is git-ignored, so nothing under it is in this diff; it exists on the working tree for the team.[operator-action]marker. The removed recipes are developer-workflow only; productioncompose.ymlis unchanged.#LC-521