Commit Graph

298 Commits

Author SHA1 Message Date
AlexMa233 dc5604b8c4 refactor(web): modularize chat flow, unify dialog patterns, and improve accessibility (#88)
* fix(a11y): improve landmark semantics and control labeling across web UI

* refactor(web): simplify frontend patterns and reduce duplication

Introduce shared composables and reusable UI shells to keep pages smaller while preserving behavior across settings, bots, selectors, and realtime streaming.

* style(web): apply lint autofix formatting

* refactor(web): modularize chat helpers and split settings sections

This reduces frontend maintenance risk by moving shared logic into focused modules/components while keeping existing behavior and import paths stable.

* refactor(web): remove legacy chat-list and unify dialog submit flow

Drop the unused legacy chat-list stack to reduce maintenance overhead, and centralize dialog mutation error handling so submit behavior stays consistent across create/edit dialogs.
2026-02-22 17:07:13 +08:00
ringotypowriter 45e7362b44 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 17:00:51 +08:00
Acbox Liu ee0aa319e2 feat: add restful apis of container file system (#92)
* feat: add restful apis of container file system

* feat: add fs tools in agent
2026-02-22 16:42:30 +08:00
Acbox 928b0c0ee5 refactor: subagent usage and related tools 2026-02-22 16:35:50 +08:00
ringotypowriter 8cd7c4aa86 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 12:47:37 +08:00
Acbox 3669027c95 fix(typo): ./packages/agent/README.md 2026-02-22 02:08:04 +08:00
Acbox Liu e6d70b523e refactor: divide agent logic and gateway into different package (#90)
* feat: add @memoh/agent

* chore: use @memoh/agent in @memoh-gateway
2026-02-22 02:06:47 +08:00
Acbox Liu c591af14b0 feat: bot inbox (#77)
* feat: bot inbox

* feat: unified header

* fix: missing tool_call usage

* feat: add group name in header
2026-02-22 01:27:24 +08:00
Acbox 2c6b5e5565 release: v0.1.0-beta.5 2026-02-21 23:10:02 +08:00
ringotypowriter 50bdbd519c fix(models,settings,conversation): scope model_id uniqueness per
provider and harden model reference resolution
2026-02-21 22:31:32 +08:00
Acbox 654d51a142 release: v0.1.0-beta.4 2026-02-20 22:19:50 +08:00
Acbox c9d96d9da3 feat(web): remove user header in chat 2026-02-20 22:10:46 +08:00
Acbox de5c3f47a4 chore: add bumpp config 2026-02-20 22:01:08 +08:00
BBQ bc374fe8cd refactor: content-addressed assets, cross-channel multimodal, infra simplification (#63)
* refactor(attachment): multimodal attachment refactor with snapshot schema and storage layer

- Add snapshot schema migration (0008) and update init/versions/snapshots
- Add internal/attachment and internal/channel normalize for unified attachment handling
- Move containerfs provider from internal/media to internal/storage
- Update agent types, channel adapters (Telegram/Feishu), inbound and handlers
- Add containerd snapshot lineage and local_channel tests
- Regenerate sqlc, swagger and SDK

* refactor(media): content-addressed asset system with unified naming

- Replace asset_id foreign key with content_hash as sole identifier
  for bot_history_message_assets (pure soft-link model)
- Remove mime, size_bytes, storage_key from DB; derive at read time
  via media.Resolve from actual storage
- Merge migrations 0008/0009 into single 0008; keep 0001 as canonical schema
- Add Docker initdb script for deterministic migration execution order
- Fix cross-channel real-time image display (Telegram → WebUI SSE)
- Fix message disappearing on refresh (null assets fallback)
- Fix file icon instead of image preview (mime derivation from storage)
- Unify AssetID → ContentHash naming across Go, Agent, and Frontend
- Change storage key prefix from 4-char to 2-char for directory sharding
- Add server-entrypoint.sh for Docker deployment migration handling

* refactor(infra): embedded migrations, Docker simplification, and config consolidation

- Embed SQL migrations into Go binary, removing shell-based migration scripts
- Consolidate config files into conf/ directory (app.example.toml, app.docker.toml, app.dev.toml)
- Simplify Docker setup: remove initdb.d scripts, streamline nginx config and entrypoint
- Remove legacy CLI, feishu-echo commands, and obsolete incremental migration files
- Update install script and docs to require sudo for one-click install
- Add mise tasks for dev environment orchestration

* chore: recover migrations

---------

Co-authored-by: Acbox <acbox0328@gmail.com>
2026-02-19 00:20:27 +08:00
Acbox b19df8156a chore: add husky hook 2026-02-18 22:21:32 +08:00
Menci 3a441aaac2 fix(web): add missing package lucide-vue-next (#67) 2026-02-18 21:46:33 +08:00
Acbox 9c338a3806 refactor(web): login page 2026-02-18 19:06:45 +08:00
Acbox 1294b4cf75 feat: connection test of provider 2026-02-18 18:52:26 +08:00
Acbox d6c47472b2 refactor: move client_type key from provider to model 2026-02-18 18:30:27 +08:00
Acbox 77e9f585a1 feat: max context tokens 2026-02-18 17:20:22 +08:00
BBQ df7876a30c feat: add media asset system, channel lifecycle refactor, and chat attachments (#54) 2026-02-17 19:06:46 +08:00
Ringo.Typowriter f9c613b4f9 fix: password placeholder (#53) 2026-02-16 19:48:50 +08:00
Acbox b329475359 chore: add release scripts 2026-02-16 15:55:49 +08:00
Acbox 95b63188b2 refactor(web): merge /settings/user to /settings 2026-02-16 01:30:54 +08:00
Acbox 05f4f08d9c fix(web): render failed when entry bot details twice 2026-02-16 01:26:54 +08:00
Acbox 961ecbb96d feat: search provider 2026-02-16 01:22:15 +08:00
Acbox 54fd07f445 refactor: cli 2026-02-15 20:59:44 +08:00
Ran 5c46d41ebf fix(deploy): vite config lazy load 2026-02-14 22:16:55 +08:00
Acbox f967c07e0a fix(web): tsconfig 2026-02-14 19:56:44 +08:00
Acbox 82e9f12b7f refactor(web): change old port (7003) and deploy port (80) to port 8082 2026-02-14 19:51:55 +08:00
Ran 7817ec8147 fix(web): channel switch failure
Also add webui memory page
2026-02-14 07:30:21 +08:00
BBQ 243ea6f034 feat(web): add all supported provider client types to model selector 2026-02-13 18:02:30 +08:00
BBQ c08e34cbcc fix(web): persist tool call messages across page refresh
Tool call messages disappeared after page refresh because messageToChat()
filtered out messages without text content. Added convertMessagesToChats()
to merge consecutive assistant(tool_calls) + tool(results) + assistant(text)
into a single ChatMessage with ToolCallBlocks.
2026-02-13 17:42:29 +08:00
BBQ 2614763547 feat(web): parallel health checks and MCP form UX improvements
- Bot overview: fetch check keys first, then parallel-request each key
  independently with per-item loading spinner
- Stable check ordering via key-indexed placeholder array
- MCP form: replace flat command/url fields with Stdio/Remote tab
  switcher for clear mode selection
- MCP type labels: "Stdio (Local)" / "Remote (HTTP/SSE)"
2026-02-13 02:43:31 +08:00
BBQ c7d66f89ab feat(bots): MCP add/import merge, batch select and batch delete/export 2026-02-13 01:11:40 +08:00
BBQ 7e5612d474 refactor(i18n): move generic keys to common 2026-02-13 01:11:06 +08:00
BBQ 3a1aa31611 fix(mcp): move import/export routes to /mcp-ops to avoid /:id conflict
Echo router treats /mcp/import and /mcp/export as /mcp/:id matches.
Move to /bots/:bot_id/mcp-ops/import and /mcp-ops/export.
2026-02-13 00:47:44 +08:00
BBQ 7942df6a32 feat(web): implement bot MCP management page and remove global MCP page
- Add bot-mcp.vue component with table, create/edit dialog, import/export
- Wire MCP tab into bot detail page
- Remove dead global MCP page, composable, and form component (/mcp route)
- Add i18n keys for import/export/copy and MCP CRUD messages
- Fix store/User.ts case sensitivity for Linux builds
2026-02-13 00:40:53 +08:00
BBQ 85251a2905 refactor(core): codebase quality cleanup
- Remove user-level model settings (chat_model_id, memory_model_id,
  embedding_model_id, max_context_load_time, language) from users table
- Merge migration 0002 into 0001, remove compatibility migrations
- Delete dead conversation/resolver.go (1177 lines, only flow/resolver.go used)
- Remove type aliases (Chat=Conversation, types_alias.go)
- Fix SQL: remove AND false stub, fix UpdateChatTitle model_id,
  reset model IDs in DeleteSettings, add preauth expiry filter,
  add ListMessages limit, remove 10 dead queries
- Extract shared handler helpers (RequireChannelIdentityID, AuthorizeBotAccess)
- Rename internal/router to internal/channel/inbound
- Fix identity confusion: remove UserID->ChannelIdentityID fallbacks
- Fix all _ = var patterns with proper error logging
- Fix error propagation: storeMessages, rescheduleJob, botContainerID
- Fix naming: ModelId->ModelID, active->is_active, Duration semantic fix
- Remove dead code: mcpService, ReplyTarget, callMCPServer, sshShellQuote,
  buildSessionMetadata, ChatRequest.Language, TriggerPayload.ChatID
- Fix code quality: errors.Is(), remove goto, CreateHuman deprecated
- Remove Enable model endpoint and user-level settings CLI commands
- Regenerate sqlc, swagger, SDK
2026-02-12 23:50:48 +08:00
Acbox 287b024887 chore(web): remove @memoh/shared 2026-02-12 22:13:24 +08:00
BBQ 40bb171d48 fix(web): remove duplicate User.ts conflicting with user.ts on case-insensitive fs 2026-02-12 21:54:30 +08:00
BBQ f8633b7501 fix(web): rename Sidebar directory to lowercase for consistency
Rename components/Sidebar to components/sidebar and update import path.
2026-02-12 21:19:56 +08:00
BBQ 1c15eb2146 refactor(core): restructure conversation/channel/message domains and modernize deployment
- Replace chat package with conversation flow architecture
- Add channel identity avatar support (migration 0002)
- Refactor channel adapters, identities, and message routing
- Update frontend: simplify composables, modernize UI components
- Improve Docker builds with cache mounts and version metadata
- Optimize healthchecks and simplify service dependencies
2026-02-12 20:55:03 +08:00
BBQ ca5c6a1866 refactor(core): restructure conversation, channel and message domains
- Rename chat module to conversation with flow-based architecture
- Move channelidentities into channel/identities subpackage
- Add channel/route for routing logic
- Add message service with event hub
- Add MCP providers: container, directory, schedule
- Refactor Feishu/Telegram adapters with directory and stream support
- Add platform management page and channel badges in web UI
- Update database schema for conversations, messages and channel routes
- Add @memoh/shared package for cross-package type definitions
2026-02-12 15:34:40 +08:00
BBQ d99ba38b7d merge(github): merge github/main, keep our code and docs/spec 2026-02-12 05:20:18 +08:00
Ran 065aa303e9 chore: update README.md 2026-02-11 20:00:07 +08:00
Acbox b46cb0c4e3 refactor(web): router 2026-02-11 16:08:36 +08:00
Acbox 1f30e666e0 feat(web): use generate sdk 2026-02-11 15:23:47 +08:00
BBQ 06e8619a37 refactor(core): migrate channel identity and binding across app
Align channel identity and bind flow across backend and app-facing layers, including generated swagger artifacts and package lock updates while excluding docs content changes.
2026-02-11 14:51:58 +08:00
Acbox ca86a8d1c3 chore: remove @memoh/shared 2026-02-11 14:46:50 +08:00