Repository navigation
Keep ds-bot/ identical to upstream; FlyBot branding only at the root and in the plugins #33
Description
Goal
Decision (see #34):
ds-bot/is restored to pristine upstream Fei2411/DeepSeek-Bot, pinned at2b10c70(version 0.1.5, identical to FlyBot's import) and kept byte-identical to the pin. All FlyBot core changes become an ordered patch series (patches/ds-bot/*.patch) applied into a generatedcore/. Any FlyBot branding of the core's UI strings, repository links or update source becomes the last, optional patch of that series. It is never an edit tods-bot/. PR #27 has already reverted its ownds-bot/edits (88c3b62).
Keep ds-bot/ as close to upstream Fei2411/DeepSeek-Bot as possible, so FlyBot can take upstream updates with minimal conflicts (see #34).
- No rebranding inside
ds-bot/. Its README, UI strings, log prefixes (ds-bot: …), package nameds-bot, theds-bot/folder, storage keys (ds-bot:prefs,ds-bot:seen,ds-bot-memory-*…), thedsBotmanifest field and temp/file names all stay exactly as upstream has them. - FlyBot branding lives only in:
- the repository root:
README.md,README.zh.md,docs/,CONTRIBUTING.md,AGENTS.md,NOTICE(add a FlyBot line and keep the DS Bot attribution),.github/,CHANGELOG.mdfor FlyBot releases, and the logo indocs/images(Redesign the FlyBot logo: three options to choose from #32); - the FlyBot plugins
@flybot/socialand@flybot/tree: their READMEs, UI strings, package metadata and logs. They will move toplugins/at the root per Decouple the social and tree plugins from ds-bot so the core can track upstream #34.
- the repository root:
- Root docs refer to the core as "the FlyBot core (the upstream
ds-botplugin)". They never rename it.
FlyBot changes inside ds-bot/ to minimize or isolate
Everything FlyBot changed under ds-bot/ relative to the upstream import (28a816c, upstream 2b10c70) should end up in exactly one of three places:
- Moved out of
ds-bot/: the plugins, their tests and the plugin harness. - Upstreamed: generic fixes.
- The single isolated FlyBot interface layer from Decouple the social and tree plugins from ds-bot so the core can track upstream #34:
hooks.js,flybot-slots.js/flybot-registry.js,flybot.d.tsand its hook-in points. Pursue upstreaming it; until then, keep it as one minimal patch layer that is rebased on each upstream sync.
Change in ds-bot/ |
Where it should go |
|---|---|
plugins/social/**, plugins/tree/**, plugins/README.md |
Move to /plugins/* (#34; tree is recursive-bot's part) |
test/social-plugin.test.js, tree-plugin.test.js, tree-host.test.js |
Move into each plugin's own tests (#34) |
scripts/lint.mjs linting plugins |
Revert; plugins get their own lint |
src/host/hooks.js, src/client/flybot-slots.js, src/client/flybot-registry.js, types/flybot.d.ts, test/flybot*.test.js, test/bot-tree.test.js, test/api-route.test.js, test/web-entries.test.js; hook-in edits in index.js, src/client/index.js, sidebar.js, context-menu.js, at-menu.js, model-menu.js, bot-settings.js, cells.js, styles.js, icons.js |
Interface layer (#34): minimal, isolated, upstream it |
src/host/remote-chat.js and the social-only seams in channel.js, delivery.js, tools.js, roster.js, store.js, parts.js, turns.js, plus the related tests (remote-chat, inbound-ui, home-lock, fence, …) |
Generic parts go upstream as PRs. Friend- and social-specific parts move to @flybot/social behind the interface layer; the rest belongs in the layer |
Branding of UI strings, logs and the README inside ds-bot/ (PR #27, see below) |
Revert to upstream text |
Repository URLs in ds-bot/package.json and diagnostics.js ISSUES_URL |
Decide one way: either keep upstream's values, so update checks follow upstream releases, or treat the FlyBot core's release source as part of the patch layer. See the PR #27 notes below |
Update check: tag fallback and the legacy-repo move (update.js, dsh-update.js) |
Generic, so offer it upstream. Otherwise it belongs in the patch layer |
dev/logo.mjs (FlyBot logo generator) |
Move to the repo root (for example scripts/logo.mjs); restore upstream's dev/logo.mjs |
Inventory (for reference)
About 600 matches of ds-bot / DS Bot / DeepSeek-Bot across about 60 files. Under this goal, all mentions inside ds-bot/ stay as upstream has them. At the root and in the plugins, the remaining ones are:
- Root docs (fix): prose in
README.md/README.zh.mdsuch as "ds-bot's tests" and "the rest of ds-bot keeps working". Reword to "the FlyBot core (ds-bot)". Literal package names, paths and install specs stay. Also the clone folderds-bot-repoinCONTRIBUTING.md, and adding a FlyBot line toNOTICE. - Plugins (fix after the move): READMEs saying "ds-bot's Main Bot" or "built on ds-bot" become "the FlyBot core". Tree's
package.jsonkeyword and its wrong "@flybot/core" description need fixing. The peer dependency staysds-bot, with a real version range. - Legitimate upstream references (keep):
LEGACY_REPOS = ['Fei2411/DeepSeek-Bot'], the NOTICE attribution, the import commit, the CHANGELOG entries for 0.1.0–0.1.5, the legacydsh-botnote, and the test comment citingFeiZhuLulu/DeepSeek-Bot#77.
Conflicts in PR #27 (for the record; not changed yet)
PR #27 (Birfy:branding-readme) currently edits files inside ds-bot/ in ways that go against this goal:
10a4da0"Brand all user-facing text as FlyBot": 50 files inds-bot/, +180/−169. It renames "DS Bot" to "FlyBot" inREADME.md, the UI strings (i18n.js,about.js,sidebar.js,feedback.js,settings.js,diagnostics.js…), host log and warning text (dsh-update.js,parts.js,memory.js,resume.js,usage.js,store.js,tools.jsand others),index.js,package.json(description) and dev scripts. It also regeneratesclient.jsand updates the matching tests. Conflicts: revert all of it insideds-bot/. If FlyBot wants its name in the UI, do it through the interface layer (for example a brand-name option), not by editing upstream strings.6d8149d"Point repository links and the update check at ThinkFlowLab/FlyBot": inds-bot/:package.json(repository, homepage and bugs),README.mdlinks,src/host/diagnostics.jsISSUES_URL,src/host/update.js(tag fallback +LEGACY_REPOS),src/host/dsh-update.js, and the testsupdate,dsh-updateanddiagnostics. Partly conflicts: the URL changes alter upstream files. The tag fallback is a generic improvement to propose upstream. Decide whether the core's update source stays upstream or is part of the patch layer.d8d09a8"New FlyBot logo …": rewritesds-bot/dev/logo.mjs. Conflicts: move the generator to the root and restore upstream's file.78625daandca74a84touch only root docs and images, so they don't conflict.
Related: #32 (logo), #34 (decoupling and the interface layer).
Activity
[-]Remove remaining ds-bot / DS Bot branding (inventory)[/-][+]Keep ds-bot/ identical to upstream; FlyBot branding only at the root and in the plugins[/+]Restore ds-bot/ to main: keep the core identical to upstream (ThinkFl…
hsliuustc0106 commentedon Oct 14, 2026
Closing: pristine
ds-bot/pin landed via #37 (1360a63/ pin2b10c70, tree5834c00matchesorigin/main:ds-bot). Branding stays at root/plugins; #27 reverted in-tree core branding. Remaining logo choice is #32 / #43.