81 Commits

Author SHA1 Message Date
44c92f1b67 fix: remove orphaned json/session_messages.json with no backing table definition 2026-04-27 11:59:50 +08:00
0e0ee695e6 feat: add orgid field to hermes_services for organization-scoped service isolation
- Add orgid field (str32, not nullable) to hermes_services table
- Replace user_id with orgid in all service CRUD operations (SQL + functions)
- Update function signatures: get_all_services, create_service, delete_service,
  get_service_by_id, test_service_connection, create_session,
  send_message_to_service, get_session_messages all use orgid
- Add orgid indexes: idx_hermes_services_orgid, idx_hermes_services_orgid_status
- Add logined_userorgid filtering to CRUD definition for automatic framework-level isolation
- Update all .dspy files to use get_userorgid() for org-scoped service queries
- Update init/data.json and db_tables.py to reflect orgid field
2026-04-27 11:50:05 +08:00
4df2f72758 fix(init): remove leftover conflict markers and duplicate code
Cleaned up 426 lines of dead code and unresolved conflict markers
(<<<<<<< HEAD, =======, >>>>>>>) left over from rebase.
File reduced from 1102 to 676 lines.
2026-04-25 22:10:38 +08:00
e03d27edd9 fix(init): remove auto database initialization from module load
Database initialization should not run on every module load as it
would risk data loss. Tables should be created/maintained separately.
2026-04-25 22:05:51 +08:00
b950930156 fix(init): replace hardcoded database name with env.get_module_dbname()
- Replace all db.sqlorContext('hermes-web-cli') with dynamic dbname
- Use env.get_module_dbname() to get database name at runtime
2026-04-25 21:58:42 +08:00
d423a03a6d feat(hermes-web-cli): refactor user context, settings, services and sessions management
- Remove deprecated UNKNOWN.egg-info and user_context.py
- Refactor crud_ops, db_tables, and init modules
- Update settings UI and save handlers (appearance, general, security)
- Update services list, remove, and test DSPY files
- Update sessions list DSPY file
- Add multi-user test script
- Update pyproject.toml dependencies
2026-04-25 21:47:46 +08:00
58dfbb0108 bugfix 2026-04-24 12:11:34 +08:00
120487d4a0 bugfi 2026-04-24 12:10:49 +08:00
166e8c2273 bugfix 2026-04-24 12:08:21 +08:00
9ab529e930 bugfix 2026-04-24 12:07:20 +08:00
5002a3a4c7 bugfix 2026-04-24 12:03:27 +08:00
5a4c2e7393 bugfix 2026-04-24 11:44:06 +08:00
75fa6c5d29 feat(hermes-web-cli): add missing module files and fix user context handling
- Add missing core module files: crud_ops.py, db_tables.py, init_db.py, user_context.py
- Ensure all .dspy scripts properly use get_user() for user_id acquisition
- Fix user context handling in module functions via get_current_user_id()
- Maintain proper async/await patterns throughout the codebase
- Complete module implementation following module-development-spec
- All database operations use sqlor framework with proper user isolation
2026-04-24 11:12:36 +08:00
adf9309def feat(hermes-web-cli): migrate to aiohttp client and ensure sqlor database usage
- Replace all requests HTTP calls with aiohttp async client
- Update test_service_connection to accept service_id and use aiohttp
- Ensure all database operations use sqlor framework (already implemented)
- Add proper async/await patterns for HTTP operations
- Maintain compatibility with existing API contracts
- Follows module-development-spec and production requirements
2026-04-24 11:02:31 +08:00
1fe8bb0027 fix(new_session.ui): correct Form field configuration per bricks-framework spec
- Replace 'select' uitype with 'code' uitype
- Use data_url instead of options.url for dynamic data loading
- Add valueField and textField to map backend response fields
- Fix URL path to /hermes-web-cli/hermes_services/list/
- Complies with module-development-spec and bricks-framework requirements
2026-04-23 18:33:28 +08:00
fab7170954 Add multi-user support: update create_session to accept user_id parameter and use ahserver's get_user() in create_session.dspy 2026-04-23 11:29:57 +08:00
9494a235f2 Remove initial-prompt field from new_session.ui form and update create_session.dspy to handle empty initial message 2026-04-23 11:23:09 +08:00
2115829274 Remove unnecessary hermes-web-cli subdirectory in wwwroot and move files to correct locations 2026-04-23 11:20:51 +08:00
72fc8656b9 Fix create_session.dspy: use return {'redirect': ...} instead of await redirect() to match ahserver convention 2026-04-23 11:17:57 +08:00
2ab47efd03 Update create_session.dspy to use await redirect() for proper navigation after session creation 2026-04-23 11:06:20 +08:00
a0ef78ac8d Improve create_session.dspy parameter handling for both request.form and direct params 2026-04-23 11:05:14 +08:00
0ac8ca310f Fix new_session.ui: remove custom toolbar and use params instead of data in urlwidget 2026-04-23 11:04:34 +08:00
f6c07f6d10 Implement create_session.dspy script and update backend function to call hermes-service API 2026-04-23 10:58:23 +08:00
607718ac21 fix: correct settings.ui to use get_setting() function instead of get_url 2026-04-22 21:55:19 +08:00
5e3067a92a fix(settings): resolve undefined security variable in settings.ui
- Added jinja2 set statement to fetch settings data from /hermes-web-cli/settings/ API
- Updated Form fields to use value/checked properties with proper fallbacks
- Implemented settings API endpoint to return current configuration
- Removed incorrect load event binding and template variable references
2026-04-22 21:51:04 +08:00
5b4085e6fd feat: add apikey field to hermes_services table structure and edit form 2026-04-22 21:02:16 +08:00
f7ef379a52 Add API key field to service configuration and support Bearer token authentication 2026-04-22 18:43:52 +08:00
4b53b0e778 Update Service menu URL to point to ./hermes_services endpoint 2026-04-22 18:29:47 +08:00
ac07140fc4 Further simplify new_session.ui: Remove session name field, let Hermes auto-generate session names 2026-04-22 18:03:51 +08:00
25add75558 Simplify new_session.ui: Remove AI Model field to use Hermes default model automatically 2026-04-22 18:01:51 +08:00
c898c9eef1 Fix new_session.ui: Use uitype instead of widgettype in Form fields, and implement proper Form toolbar actions 2026-04-22 17:49:07 +08:00
14ed67907a Fix settings.ui: Correct TabPanel structure using items instead of tabs, and use Form toolbar actions with proper uitype in fields 2026-04-22 17:40:35 +08:00
701aedfa5a Fix settings.ui: Replace non-existent Tabs控件 with TabPanel控件 and ensure Form控件 uses correct options.fields structure 2026-04-22 17:17:34 +08:00
02b2cdaeec Fix template variable references: Use quoted syntax '{{ 'widget-id'.data }}' to avoid Jinja2 UndefinedError with hyphenated widget IDs 2026-04-22 17:11:48 +08:00
2cda5570dc Fix list-component.js: Use correct bricks API methods - clear_widgets(), add_widget() instead of non-existent refresh() and appendChild() 2026-04-22 17:08:54 +08:00
3182fcdf97 Fix list-component.js: Remove non-existent refresh() method and use proper subwidgets array management for bricks framework compatibility 2026-04-22 17:07:42 +08:00
e726abcddb Refactor UI files to use registerfunction instead of inline script, following bricks-framework理念: minimize JS usage and use existing controls with auxiliary validation functions 2026-04-22 17:04:54 +08:00
63a3d3be59 Remove new-session.js: implement form handling inline using script actiontype, simplify model selection to text input 2026-04-22 16:48:10 +08:00
7daf801c99 Fix JavaScript files: use correct bricks.getWidgetById API with proper ID format 2026-04-22 16:43:09 +08:00
30eae89807 Fix Form控件结构: ensure all Form controls use options.fields instead of subwidgets 2026-04-22 16:39:31 +08:00
eee254da60 Fix new_session.ui: correct Form structure using options.fields instead of subwidgets 2026-04-22 16:34:06 +08:00
b30a98f65e Fix new_session.ui: add container ID and correct target reference for create_session button 2026-04-22 16:24:29 +08:00
82a58be972 Fix new_session.ui: correct URL reference and implement create_session functionality with proper registerfunction binding 2026-04-22 16:19:58 +08:00
73b833c1c3 Wrap Menu in VBox with fixed width: set outer VBox to 250px width and Menu to 100% width 2026-04-22 16:14:15 +08:00
3f449816ed Fix List component constructor: ensure opts.options exists before accessing width/height properties 2026-04-22 15:55:45 +08:00
fbd94e86a1 Fix settings.js syntax error: remove duplicate line numbers causing Unexpected token 'try' 2026-04-22 15:52:06 +08:00
3edfa140e9 Fix bricks framework API usage and file structure
- Move all JS files from wwwroot/scripts/ to wwwroot/ root directory to comply with ahserver requirements
- Fix component registration: use bricks.Factory.register() instead of bricks.register()
- Fix function registration: use bricks.RF.register() instead of bricks.registerFunction()
- Update UI files to use item_template_url with external templates for List components
- Add proper list item template files (session-list-item.ui, service-list-item.ui, model-list-item.ui)
- Ensure all custom components and functions use correct bricks framework API
2026-04-22 15:49:36 +08:00
34949ea16c Fix bricks-framework component usage: replace invalid List with custom implementation, replace Input/Checkbox/Select/Textarea with proper UiStr/UiInt/UiCheck/UiCode/UiText components with required name attributes 2026-04-22 14:59:53 +08:00
bc3e94b64a Fix Jinja2 template errors: use 'item' for List components and correct form field access 2026-04-22 14:48:50 +08:00
e846804ec8 Fix UI bindings and implement proper .dspy endpoints according to bricks-framework规范 2026-04-22 14:41:42 +08:00