Skip to content

Keep ds-bot/ identical to upstream; FlyBot branding only at the root and in the plugins #33

Closed

Description

@Birfy

Goal

Decision (see #34): ds-bot/ is restored to pristine upstream Fei2411/DeepSeek-Bot, pinned at 2b10c70 (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 generated core/. 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 to ds-bot/. PR #27 has already reverted its own ds-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 name ds-bot, the ds-bot/ folder, storage keys (ds-bot:prefs, ds-bot:seen, ds-bot-memory-* …), the dsBot manifest field and temp/file names all stay exactly as upstream has them.
  • FlyBot branding lives only in:
  • Root docs refer to the core as "the FlyBot core (the upstream ds-bot plugin)". 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:

  1. Moved out of ds-bot/: the plugins, their tests and the plugin harness.
  2. Upstreamed: generic fixes.
  3. 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.ts and 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.md such 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 folder ds-bot-repo in CONTRIBUTING.md, and adding a FlyBot line to NOTICE.
  • Plugins (fix after the move): READMEs saying "ds-bot's Main Bot" or "built on ds-bot" become "the FlyBot core". Tree's package.json keyword and its wrong "@flybot/core" description need fixing. The peer dependency stays ds-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 legacy dsh-bot note, and the test comment citing FeiZhuLulu/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 in ds-bot/, +180/−169. It renames "DS Bot" to "FlyBot" in README.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.js and others), index.js, package.json (description) and dev scripts. It also regenerates client.js and updates the matching tests. Conflicts: revert all of it inside ds-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": in ds-bot/: package.json (repository, homepage and bugs), README.md links, src/host/diagnostics.js ISSUES_URL, src/host/update.js (tag fallback + LEGACY_REPOS), src/host/dsh-update.js, and the tests update, dsh-update and diagnostics. 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 …": rewrites ds-bot/dev/logo.mjs. Conflicts: move the generator to the root and restore upstream's file.
  • 78625da and ca74a84 touch only root docs and images, so they don't conflict.

Related: #32 (logo), #34 (decoupling and the interface layer).

Activity

  1. changed the title [-]Remove remaining ds-bot / DS Bot branding (inventory)[/-] [+]Keep ds-bot/ identical to upstream; FlyBot branding only at the root and in the plugins[/+] on Oct 14, 2026
  2. hsliuustc0106 commented on Oct 14, 2026

    @hsliuustc0106
    Contributor

    Closing: pristine ds-bot/ pin landed via #37 (1360a63 / pin 2b10c70, tree 5834c00 matches origin/main:ds-bot). Branding stays at root/plugins; #27 reverted in-tree core branding. Remaining logo choice is #32 / #43.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions