Files
goclaw/ui
viettranx 1e5e84d55c feat(ui): tenant-scope aware builtin tool settings editor
Phase 5 of tenant tool config refactor. Wires the existing builtin tools
page + settings dialog to the tenant-config HTTP endpoint shipped in
Phase 4, so tenant admins can edit per-tenant tool overrides from the
same "Settings" button master admins already use.

- BuiltinToolData DTO gains tenant_settings (already returned by the
  GET /v1/tools/builtin enrich path when request is tenant-scoped).
- useBuiltinTools hook gains setTenantSettings + clearTenantSettings —
  both hit PUT /v1/tools/builtin/{name}/tenant-config, with null clearing
  the settings column while preserving tenant_enabled (column-list
  upsert on the store side, shipped in Phase 2).
- BuiltinToolSettingsDialog accepts a tenantScope flag. In tenant mode:
    - initial values come from tenant_settings ?? settings (pre-fill
      with global defaults when creating a fresh override)
    - a small badge + hint line communicates the mode
    - optional "Reset to global default" appears when an override exists
- BuiltinToolsPage branches the save callback: master scope → updateTool
  (global settings), non-master → setTenantSettings. The backend enforces
  the same rule defensively per Phase 0b, so this branch is a UX guard
  (avoid 403) not a security boundary.
- New en/vi/zh keys: tenantOverrideBadge, tenantOverrideHint,
  tenantOverrideNewHint, resetToGlobalDefault.

Verified: pnpm build clean (tsc -b + vite).
2026-04-12 10:27:44 +07:00
..