Skip to content

Refactor and enhance metaforge-ui and web application structure - #970

Merged
qianmoQ merged 26 commits into
devlive-community:devfrom
qianmoQ:2026.0.0
Oct 26, 2026
Merged

qianmoQ merged 26 commits into
devlive-community:devfrom
qianmoQ:2026.0.0

Conversation

@qianmoQ

@qianmoQ qianmoQ commented Oct 26, 2026

Copy link
Copy Markdown
Member

Changelog category (leave one)

  • New Feature
  • Bug Fix
  • Documentation (changelog entry is not required)
  • Other

Changelog entry (Details of this change)

If there is an issue connection, write it to the end of the question
e.g: issue-7
Please delete this information when submitting

  • e.g: Support xxxx

Affected version

  • e.g: latest version

- move the vue console application from core/datacap-ui to core/datacap-web
- repurpose core/datacap-ui as a standalone component library package
- add pnpm workspace at core/ linking datacap-ui and datacap-web
- point datacap-server frontend build and resources at datacap-web
- rename all datacap-* module directories to metaforge-*
- move java packages from io.edurt.datacap to org.devlive.metaforge
- rename bootstrap classes DataCap/DataCapCli to MetaForge/MetaForgeCli
- update maven coordinates, service loader files, docker and schema configs
- re-sort java imports for the new package ordering (checkstyle)
- build all Mf-prefixed components with pure tailwind utilities
- add --mf-* design tokens (light/dark) mapped via tailwind @theme inline
- add runtime theme api (presets, applyMfTheme, MfConfigProvider)
- ship 19 components: button, input, select, checkbox, radio, switch,
  card, tag, alert, badge, avatar, spinner, divider, space, modal,
  tooltip, textarea, config provider, radio group
- add playground with light/dark and primary color switching
…ette

- align tokens with design/ui-color-system.md (MetaForge green identity)
- add form (rules validation), menu, tabs, table, tree, drawer, dropdown,
  popover, pagination, skeleton, breadcrumb, result, upload, input-number
  and checkbox-group components
- add MfMessage imperative toast api
- rewrite MfSelect with multiple and group support, add password toggle
  to MfInput and segmented variant to MfRadioGroup
- add tailwind v4 via @tailwindcss/vite and import metaforge-ui styles
- register metaforge-ui plugin alongside antd during the migration
- apply metaforge light/dark tokens from useTheme alongside antd theme
- mark metaforge-web package as esm for the tailwind vite plugin
- render custom #tab slot labels and honor pane disabled state in MfTabs
- add loading indicator to MfSelect trigger and empty list
- hide trailing separator on the last breadcrumb item
- accept numeric size on MfAvatar and expose focus/blur on MfInput
- rewrite header menu, breadcrumb, footer, language switcher
- replace metadata sidebar tree/context menus and profile sidebar menu
- map a-layout shells to plain tailwind containers
- add antd-to-mf migration guide under docs/
- replace antd tables, forms, tabs, selects with Mf equivalents
- rebuild role-menu checkable tree with MfCheckbox cascade semantics
- convert editable-card tabs and pagination size switching patterns
- map upload, steps indicator, table body cells and pagination
- keep bodyCell slot contract for the shared DataTable component
- adapt nested form validation and switch checked-value mapping
- split a-table body cells into per-column slots and shared DataTable usage
- rewrite adhoc controls with radio-button variant and multiple selects
- adapt validators and switch value mapping to MfForm rules
- keep DataTable bodyCell slot contract with internal selection column
- port metadata tree async loading and editor flow layout
- replace spin wrappers with overlay or conditional spinners
- searchable/filterOption and tags creation on MfSelect
- checkedValue/uncheckedValue on MfSwitch, color on MfTag, shape on
  MfButton, closable on MfDrawer, array type rule on MfForm
- migrate grid and visual shared components, restore source select
  search and workflow tags entry
- drop a-config-provider, antd global plugin and locale composable
- serve theme purely through --mf-* tokens from useTheme
- remove ant-design-vue dependency and stale column comments
- point readme logos at metaforge-web assets after the ui/web split
- replace the stale View UI Plus badge with Vue 3 + Tailwind
- list metaforge-ui in the developer module overview
- add UI component and token conventions to the frontend spec
- expand metaforge-ui readme with the full component inventory
- expose /api/v1/setup status, environment, test and install apis
- ship idempotent schema and baseline seed scripts on the classpath
- create the wizard administrator with bcrypt password and admin role
- permit /api/v1/setup/** in the security whitelist
- guard DataSetConfigure load and scheduler runner against missing tables
- exclude legacy oauth tables from the setup schema
- reload dataset configure after install so no restart is needed
MfFormItem read the bound model from the form context which was never
provided, so required/min/max rules always failed; expose a computed
model from MfForm and consume it in items and validators.
- three step wizard: environment check, administrator account, install
- guard every navigation: not installed redirects to /setup and back
- remove the legacy compiled utilities bundle, now that real tailwind
  generates all utilities (its unlayered preflight was overriding
  token-based component styles)
- fall back to an embedded H2 store when no datasource is configured
  (h2 pinned to 1.4.200, the line compatible with boot 2.7 hibernate)
- ship classpath defaults for every metaforge.* property
- install into a chosen target: embedded h2 file store or external
  mysql, persisting the datasource to ./config/application.properties
  which spring boot loads by default on the next boot
- add an h2 dialect schema and rewrite the DATE jpql to CAST so both
  dialects pass startup query validation
- choose current datasource, embedded storage or external mysql with
  connection test before installing
- show restart guidance and the persisted config path when the target
  differs from the running datasource
- probe the datasource before context refresh and fall back to an
  embedded store, exposing the degraded state to the setup wizard
- append classpath defaults under spring.config.location so partial
  external configs still boot
- write the installed datasource into the pinned config location when
  the launcher passed one instead of the default ./config
- refuse installing onto the throwaway fallback store and hide the
  current-database option in the wizard while degraded
Keep the temporary H2 startup store separate from installation targets.
Skip startup database tasks until installation completes and include the
current runtime configuration and history schema in fresh installs.

Validate with nine regression tests, Checkstyle, frontend type checks and
build, and an isolated embedded installation followed by a server restart.
Exclude local Claude and Codex memory directories from version control.
Apply focus rings to the complete input control and present connection
failures with concise guidance and expandable driver details. Keep the
setup form and step indicator readable on narrow screens.

Validation: UI and web type checks, production build, and desktop/mobile
browser checks.
@qianmoQ
qianmoQ merged commit 98de33a into devlive-community:dev Oct 26, 2026
6 of 7 checks passed
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.

1 participant