Skip to content

refactor: frontend as innate-fe domain plugin, add swagger (issue #2) - #3

Merged
qdriven merged 2 commits into
mainfrom
qdriven/refactor
Oct 22, 2026
Merged

qdriven merged 2 commits into
mainfrom
qdriven/refactor

Conversation

@qdriven

@qdriven qdriven commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Closes #2

Summary

Refactor per issue #2: confirm datasource/frontend separation, then make the frontend a pluggable innate-fe domain while keeping this repo standalone.

Analysis (docs/arch-design/datasource-frontend-separation.md): separation already holds — the frontend only reaches data via services/ (API + static dual-mode). Three couplings recorded (types written twice, shared/ not a real package, basic UI embedded in the frontend).

Migration (docs/arch-design/innate-fe-plugin-migration.md) implemented P0–P2, P4:

  • frontend becomes @innate/domain-feeds (track A domain): exports webDomain (routes + navItems/homeTile capability) and plugin.json, so innate-fe-cli gen can pull it into a webshell — this repo is not merged into innate-fe.
  • Shell chrome removed (AppSidebar/AppHeader/theme + vendored shadcn components/ui/, ~8.6k lines). @innate/ui / @innate/web-domain come from innate-fe-cli install (private registry) — the local packages/ mirror was verified redundant and dropped.
  • Standalone host keeps a compact grouped left nav (GitHub → Trending/Starred/Digest · DeepSeek Harness → Plugins), driven by the same navItems capability the plugin mode consumes.
  • Fix dsh route hooks that broke under the pathless layout (from: "/dsh/...").
  • Backend: OpenAPI spec + Swagger UI at /docs.
  • Folo dangling gitlink replaced by declarative registry.yaml.
  • CI/deploy checkout innate-fe and run innate-fe-cli install; dev/dev:seed/setup:innate scripts.

Verification

  • bun run typecheck (backend + frontend) clean
  • bun run test — 34 passed
  • Production build 226 files; GitHub Pages static mode checked (VITE_STATIC_MODE=true, 404.html/.nojekyll/107 manifest chunks, base path correct)
  • Live app: 5958 repos / 958 trending / 5000 starred; sidebar groups, plugin pages (list/categories/detail) and /docs all exercised via Playwright

Notes for reviewers

  • INNATE_FE_TOKEN repo secret is required for CI to read the private variableway/innate-fe base repo.
  • P3 (registering this repo in innate-fe's plugins.registry.yaml and running gen for real) needs a change on the innate-fe side.

Split datasource from frontend and make the frontend a pluggable domain
(track A) while keeping this repo standalone.

- frontend becomes @innate/domain-feeds: exports webDomain (routes +
  navItems/homeTile capability) + plugin.json for innate-fe-cli gen
- drop shell chrome (AppSidebar/AppHeader/theme) and vendored shadcn
  components/ui; @innate/ui + @innate/web-domain come from
  innate-fe-cli install (private registry, no local packages/ mirror)
- standalone host keeps a compact grouped left nav (GitHub / DeepSeek
  Harness) driven by the same navItems capability
- fix dsh route hooks that broke under the pathless layout
- backend: OpenAPI spec + Swagger UI at /docs
- CI/deploy checkout innate-fe and run innate-fe-cli install; add
  dev/dev:seed/setup:innate scripts
- docs: datasource/frontend separation analysis + migration plan
The Folo gitlink was dangling (no .gitmodules ever committed), so clones
reported a permanent phantom deletion and the pin carried no intent.

Record external sources declaratively in registry.yaml instead: repo URL,
pinned commit, kind (research), and the docs that analyzed it. Sources are
checked out on demand and never vendored into this tree.
@qdriven
qdriven merged commit 01effb7 into main Oct 22, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor项目

1 participant