collavre 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/collavre/actiontext.css +73 -71
  3. data/app/assets/stylesheets/collavre/activity_logs.css +18 -45
  4. data/app/assets/stylesheets/collavre/comments_popup.css +197 -35
  5. data/app/assets/stylesheets/collavre/creatives.css +101 -51
  6. data/app/assets/stylesheets/collavre/dark_mode.css +221 -88
  7. data/app/assets/stylesheets/collavre/design_tokens.css +334 -0
  8. data/app/assets/stylesheets/collavre/mention_menu.css +13 -9
  9. data/app/assets/stylesheets/collavre/popup.css +57 -27
  10. data/app/assets/stylesheets/collavre/slide_view.css +6 -6
  11. data/app/assets/stylesheets/collavre/user_menu.css +4 -5
  12. data/app/components/collavre/plans_timeline_component.html.erb +2 -2
  13. data/app/controllers/collavre/admin/orchestration_controller.rb +9 -2
  14. data/app/controllers/collavre/admin/settings_controller.rb +199 -0
  15. data/app/controllers/collavre/comments/reactions_controller.rb +1 -9
  16. data/app/controllers/collavre/comments_controller.rb +39 -162
  17. data/app/controllers/collavre/creatives_controller.rb +18 -58
  18. data/app/controllers/collavre/users_controller.rb +31 -3
  19. data/app/helpers/collavre/application_helper.rb +97 -0
  20. data/app/helpers/collavre/creatives_helper.rb +10 -202
  21. data/app/javascript/collavre.js +0 -1
  22. data/app/javascript/components/creative_tree_row.js +3 -2
  23. data/app/javascript/controllers/comment_controller.js +309 -4
  24. data/app/javascript/controllers/comments/form_controller.js +52 -0
  25. data/app/javascript/controllers/comments/presence_controller.js +13 -0
  26. data/app/javascript/controllers/creatives/tree_controller.js +2 -1
  27. data/app/javascript/controllers/link_creative_controller.js +29 -3
  28. data/app/javascript/lib/__tests__/html_code_block_wrapper.test.js +201 -0
  29. data/app/javascript/lib/html_code_block_wrapper.js +168 -0
  30. data/app/javascript/lib/utils/markdown.js +2 -1
  31. data/app/javascript/modules/creative_row_editor.js +5 -1
  32. data/app/javascript/utils/emoji_parser.js +21 -0
  33. data/app/jobs/collavre/ai_agent_job.rb +6 -2
  34. data/app/jobs/collavre/cron_action_job.rb +18 -6
  35. data/app/jobs/collavre/cron_scheduler_job.rb +112 -0
  36. data/app/models/collavre/comment/approvable.rb +50 -0
  37. data/app/models/collavre/comment/broadcastable.rb +119 -0
  38. data/app/models/collavre/comment/notifiable.rb +111 -0
  39. data/app/models/collavre/comment.rb +13 -258
  40. data/app/models/collavre/comment_reaction.rb +15 -0
  41. data/app/models/collavre/creative/describable.rb +86 -0
  42. data/app/models/collavre/creative/linkable.rb +77 -0
  43. data/app/models/collavre/creative/permissible.rb +103 -0
  44. data/app/models/collavre/creative.rb +3 -289
  45. data/app/models/collavre/orchestrator_policy.rb +1 -1
  46. data/app/models/collavre/system_setting.rb +27 -1
  47. data/app/models/collavre/user.rb +42 -0
  48. data/app/models/collavre/user_theme.rb +10 -0
  49. data/app/services/collavre/ai_agent/approval_handler.rb +110 -0
  50. data/app/services/collavre/ai_agent/message_builder.rb +129 -0
  51. data/app/services/collavre/ai_agent/review_handler.rb +70 -0
  52. data/app/services/collavre/ai_agent_service.rb +93 -150
  53. data/app/services/collavre/ai_client.rb +23 -4
  54. data/app/services/collavre/auto_theme_generator.rb +168 -50
  55. data/app/services/collavre/command_menu_service.rb +70 -0
  56. data/app/services/collavre/comment_move_service.rb +94 -0
  57. data/app/services/collavre/comments/action_executor.rb +10 -0
  58. data/app/services/collavre/comments/mcp_command.rb +1 -2
  59. data/app/services/collavre/creatives/create_service.rb +86 -0
  60. data/app/services/collavre/creatives/destroy_service.rb +41 -0
  61. data/app/services/collavre/creatives/index_query.rb +3 -0
  62. data/app/services/collavre/markdown_converter.rb +240 -0
  63. data/app/services/collavre/mention_parser.rb +63 -0
  64. data/app/services/collavre/orchestration/agent_context_builder.rb +24 -8
  65. data/app/services/collavre/orchestration/agent_orchestrator.rb +59 -10
  66. data/app/services/collavre/orchestration/loop_breaker.rb +12 -7
  67. data/app/services/collavre/orchestration/policy_resolver.rb +16 -2
  68. data/app/services/collavre/orchestration/scheduler.rb +4 -3
  69. data/app/services/collavre/orchestration/stuck_detector.rb +1 -1
  70. data/app/services/collavre/system_events/context_builder.rb +1 -6
  71. data/app/services/collavre/tools/creative_batch_service.rb +107 -0
  72. data/app/services/collavre/tools/creative_update_service.rb +17 -12
  73. data/app/services/collavre/tools/cron_create_service.rb +17 -5
  74. data/app/views/admin/shared/_tabs.html.erb +2 -1
  75. data/app/views/collavre/admin/orchestration/show.html.erb +11 -0
  76. data/app/views/collavre/admin/settings/_system_tab.html.erb +138 -0
  77. data/app/views/collavre/admin/settings/_uiux_tab.html.erb +44 -0
  78. data/app/views/collavre/admin/settings/index.html.erb +11 -0
  79. data/app/views/collavre/admin/settings/uiux.html.erb +11 -0
  80. data/app/views/collavre/comments/_comment.html.erb +15 -5
  81. data/app/views/collavre/comments/_comments_popup.html.erb +9 -2
  82. data/app/views/collavre/creatives/_mobile_actions_menu.html.erb +0 -3
  83. data/app/views/collavre/creatives/_share_button.html.erb +0 -52
  84. data/app/views/collavre/creatives/_share_modal.html.erb +52 -0
  85. data/app/views/collavre/creatives/index.html.erb +5 -8
  86. data/app/views/collavre/shared/navigation/_panels.html.erb +2 -2
  87. data/app/views/collavre/user_themes/index.html.erb +7 -9
  88. data/app/views/collavre/users/_contact_management.html.erb +2 -1
  89. data/app/views/collavre/users/edit_ai.html.erb +7 -0
  90. data/app/views/collavre/users/index.html.erb +16 -1
  91. data/app/views/collavre/users/new_ai.html.erb +18 -8
  92. data/app/views/collavre/users/passkeys.html.erb +1 -1
  93. data/app/views/collavre/users/show.html.erb +1 -1
  94. data/app/views/layouts/collavre/slide.html.erb +8 -1
  95. data/config/locales/admin.en.yml +88 -0
  96. data/config/locales/admin.ko.yml +88 -0
  97. data/config/locales/ai_agent.en.yml +5 -1
  98. data/config/locales/ai_agent.ko.yml +5 -1
  99. data/config/locales/comments.en.yml +5 -1
  100. data/config/locales/comments.ko.yml +5 -1
  101. data/config/locales/orchestration.en.yml +8 -0
  102. data/config/locales/orchestration.ko.yml +8 -0
  103. data/config/locales/users.en.yml +12 -0
  104. data/config/locales/users.ko.yml +12 -0
  105. data/config/routes.rb +7 -1
  106. data/db/migrate/20260212011655_add_quoted_comment_to_comments.rb +7 -0
  107. data/db/migrate/20260213044247_add_agent_conf_to_users.rb +5 -0
  108. data/lib/collavre/engine.rb +25 -0
  109. data/lib/collavre/version.rb +1 -1
  110. metadata +32 -1
@@ -23,7 +23,6 @@ ko:
23
23
  not_owner: 댓글 소유자만 수정할 수 있습니다.
24
24
  no_permission: 댓글을 추가할 권한이 없습니다.
25
25
  convert_not_allowed: 댓글 소유자 또는 크리에이티브 관리자만 이 메시지를 전환할 수 있습니다.
26
- gemini: Gemini
27
26
  convert_button: 전환
28
27
  convert_to_creative: 하위 크리에이티브로 전환
29
28
  convert_confirm: 현재 크리에이티브 하위에 해당 댓글의 내용이 추가됩니다. 진행하시겠습니까?
@@ -44,6 +43,7 @@ ko:
44
43
  approve_invalid_attributes: 댓글 작업 속성은 객체 형식이어야 합니다.
45
44
  approve_no_attributes: 댓글 작업에는 최소 한 개의 허용 속성이 포함되어야 합니다.
46
45
  approve_invalid_creative: 댓글 작업이 잘못된 크리에이티브를 대상으로 하고 있습니다.
46
+ approve_no_write_permission: 이 크리에이티브에 대한 쓰기 권한이 없습니다.
47
47
  approve_invalid_progress: 댓글 작업 진행률은 숫자여야 합니다.
48
48
  approve_invalid_description: 댓글 작업 설명은 텍스트여야 합니다.
49
49
  approved_label: 승인됨
@@ -62,6 +62,8 @@ ko:
62
62
  voice_stop: 중지
63
63
  speech_unavailable: 이 브라우저는 음성 인식을 지원하지 않습니다.
64
64
  move_button: 이동
65
+ review_button: 리뷰
66
+ replace_button: 바꾸기
65
67
  move_no_selection: 이동할 메시지를 선택해주세요.
66
68
  move_error: 메시지를 이동할 수 없습니다.
67
69
  add_participant: 사용자 추가
@@ -84,6 +86,8 @@ ko:
84
86
  event_created: '이벤트가 생성되었습니다: [구글 캘린더 이벤트](%{url})'
85
87
  event_created_local: '이벤트가 생성되었습니다 (로컬 전용 - 구글 캘린더 연동 시 동기화됩니다)'
86
88
  event_created_sync_failed: '이벤트가 생성되었습니다 (구글 캘린더 동기화 실패 - 구글 계정을 다시 연동해주세요)'
89
+ mcp_command:
90
+ error_running: "/%{tool_name} 실행 오류: %{error}"
87
91
  topic_command:
88
92
  missing_name: '토픽 이름을 따옴표로 지정하세요: /topic "토픽 이름"'
89
93
  created: '토픽 "%{name}"이(가) 생성되었습니다.'
@@ -1,4 +1,12 @@
1
1
  en:
2
+ collavre:
3
+ orchestration:
4
+ waiting_notice: "⏳ Waiting (%{reason})"
5
+ waiting_reasons:
6
+ topic_concurrency: "another task is running in this topic"
7
+ busy: "agent concurrency limit reached"
8
+ rate_limited: "rate limit reached"
9
+ unknown: "waiting for resources"
2
10
  admin:
3
11
  orchestration:
4
12
  title: "AI Agent Orchestration"
@@ -1,4 +1,12 @@
1
1
  ko:
2
+ collavre:
3
+ orchestration:
4
+ waiting_notice: "⏳ 대기중 (%{reason})"
5
+ waiting_reasons:
6
+ topic_concurrency: "이 토픽에서 다른 작업이 실행 중"
7
+ busy: "에이전트 동시 실행 한도 도달"
8
+ rate_limited: "요청 속도 제한 도달"
9
+ unknown: "리소스 대기 중"
2
10
  admin:
3
11
  orchestration:
4
12
  title: "AI 에이전트 오케스트레이션"
@@ -35,6 +35,8 @@ en:
35
35
  tools_note: You can check and test available tools after creating the agent.
36
36
  create_ai:
37
37
  success: AI User created successfully.
38
+ copy_ai:
39
+ link: Copy
38
40
  edit_ai:
39
41
  title: Edit AI Agent
40
42
  link: Edit
@@ -42,6 +44,8 @@ en:
42
44
  tools_title: Available Tools
43
45
  tools_description: These tools are available for the agent to use.
44
46
  no_tools_found: No tools found.
47
+ agent_conf_label: "Agent Configuration (YAML)"
48
+ agent_conf_help: "YAML configuration for agent behavior. chat_history: max previous messages (default 50), chat_history_size: max total characters (default 100000), context.creative_children_level: depth of children to include in creative context (default nil → follows user setting, 0=no children, 1=direct children, 2=grandchildren)."
45
49
  chat_title: Chat with Agent
46
50
  chat_placeholder: Type a message to test the agent...
47
51
  update_ai:
@@ -126,6 +130,14 @@ en:
126
130
  granted: System admin access granted.
127
131
  revoked: System admin access removed.
128
132
  failed: Could not update the user's system admin status.
133
+ unlock:
134
+ button: Unlock
135
+ success: "%{name} has been unlocked."
136
+ lock:
137
+ button: Lock
138
+ confirm: "Lock this user's account? They will not be able to log in."
139
+ success: "%{name} has been locked."
140
+ cannot_lock_self: "You cannot lock your own account."
129
141
  destroy:
130
142
  success: The user and all associated data have been deleted.
131
143
  failure: Could not delete the user.
@@ -33,6 +33,8 @@ ko:
33
33
  tools_note: 에이전트 생성 후 사용 가능한 도구를 확인하고 테스트할 수 있습니다.
34
34
  create_ai:
35
35
  success: AI 에이전트가 생성되었습니다.
36
+ copy_ai:
37
+ link: 복사
36
38
  edit_ai:
37
39
  title: AI 에이전트 수정
38
40
  link: 수정
@@ -40,6 +42,8 @@ ko:
40
42
  tools_title: 사용 가능한 도구
41
43
  tools_description: 에이전트가 사용할 수 있는 도구 목록입니다.
42
44
  no_tools_found: 사용 가능한 도구가 없습니다.
45
+ agent_conf_label: "에이전트 설정 (YAML)"
46
+ agent_conf_help: "에이전트 동작을 위한 YAML 설정. chat_history: 최대 이전 메시지 수 (기본 50), chat_history_size: 최대 총 문자 수 (기본 100000), context.creative_children_level: 크리에이티브 컨텍스트에 포함할 자식 깊이 (기본 nil → 사용자 설정 따름, 0=자식 없음, 1=직접 자식, 2=손자까지)."
43
47
  chat_title: 에이전트와 대화하기
44
48
  chat_placeholder: 에이전트를 테스트하려면 메시지를 입력하세요...
45
49
  update_ai:
@@ -121,6 +125,14 @@ ko:
121
125
  granted: 시스템 관리자 권한이 부여되었습니다.
122
126
  revoked: 시스템 관리자 권한이 해제되었습니다.
123
127
  failed: 사용자의 시스템 관리자 상태를 변경하지 못했습니다.
128
+ unlock:
129
+ button: 잠금 해제
130
+ success: "%{name}의 잠금이 해제되었습니다."
131
+ lock:
132
+ button: 잠금
133
+ confirm: "이 사용자의 계정을 잠글까요? 로그인할 수 없게 됩니다."
134
+ success: "%{name}의 계정이 잠겼습니다."
135
+ cannot_lock_self: "자신의 계정은 잠글 수 없습니다."
124
136
  destroy:
125
137
  success: 사용자와 모든 관련 데이터가 삭제되었습니다.
126
138
  failure: 사용자를 삭제하지 못했습니다.
data/config/routes.rb CHANGED
@@ -15,6 +15,8 @@ Collavre::Engine.routes.draw do
15
15
  patch :update_ai
16
16
  patch :grant_system_admin
17
17
  patch :revoke_system_admin
18
+ patch :unlock
19
+ patch :lock
18
20
  get :edit_password
19
21
  patch :update_password
20
22
  get :passkeys
@@ -94,8 +96,12 @@ Collavre::Engine.routes.draw do
94
96
  post "/creative_expanded_states/toggle", to: "creative_expanded_states#toggle"
95
97
  post "/comment_read_pointers/update", to: "comment_read_pointers#update"
96
98
 
97
- # Admin orchestration
99
+ # Admin settings & orchestration
98
100
  scope "/admin", as: :admin do
101
+ get "/", to: "admin/settings#index", as: :settings
102
+ patch "/", to: "admin/settings#update"
103
+ get "/uiux", to: "admin/settings#uiux", as: :uiux
104
+ patch "/uiux", to: "admin/settings#update_uiux"
99
105
  resource :orchestration, only: [ :show, :update ], controller: "admin/orchestration"
100
106
  end
101
107
  end
@@ -0,0 +1,7 @@
1
+ class AddQuotedCommentToComments < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :comments, :quoted_comment_id, :integer
4
+ add_column :comments, :quoted_text, :text
5
+ add_index :comments, :quoted_comment_id
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class AddAgentConfToUsers < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :users, :agent_conf, :text
4
+ end
5
+ end
@@ -68,6 +68,31 @@ module Collavre
68
68
  end
69
69
  end
70
70
 
71
+ # Boot the self-scheduling CronSchedulerJob for dynamic recurring tasks.
72
+ # Uses DB-based guard (SolidQueue::Job table) to prevent duplicate chains.
73
+ # Boot the self-scheduling CronSchedulerJob for dynamic recurring tasks.
74
+ # Uses DB-based guard (SolidQueue::Job table) to prevent duplicate chains.
75
+ # Runs in any non-test process that has DB access — the DB guard ensures
76
+ # only one scheduler chain is active regardless of how many processes boot.
77
+ initializer "collavre.cron_scheduler" do
78
+ config.after_initialize do
79
+ next if Rails.env.test?
80
+
81
+ # DB-based check: skip if a CronSchedulerJob is already pending
82
+ pending = SolidQueue::Job.where(class_name: "Collavre::CronSchedulerJob", finished_at: nil)
83
+ failed_ids = SolidQueue::FailedExecution.pluck(:job_id)
84
+ pending = pending.where.not(id: failed_ids) if failed_ids.any?
85
+ unless pending.exists?
86
+ Rails.logger.info("[CronScheduler] Booting self-scheduling cron scheduler")
87
+ Collavre::CronSchedulerJob.perform_later
88
+ else
89
+ Rails.logger.info("[CronScheduler] Already running, skipping boot")
90
+ end
91
+ rescue StandardError => e
92
+ Rails.logger.error("[CronScheduler] Failed to boot: #{e.message}")
93
+ end
94
+ end
95
+
71
96
  # Reset navigation registry before any registrations (runs first)
72
97
  initializer "collavre.navigation_reset" do
73
98
  ActiveSupport::Reloader.to_prepare(prepend: true) do
@@ -1,3 +1,3 @@
1
1
  module Collavre
2
- VERSION = "0.3.2"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: collavre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Collavre
@@ -164,6 +164,7 @@ files:
164
164
  - app/assets/stylesheets/collavre/comments_popup.css
165
165
  - app/assets/stylesheets/collavre/creatives.css
166
166
  - app/assets/stylesheets/collavre/dark_mode.css
167
+ - app/assets/stylesheets/collavre/design_tokens.css
167
168
  - app/assets/stylesheets/collavre/mention_menu.css
168
169
  - app/assets/stylesheets/collavre/popup.css
169
170
  - app/assets/stylesheets/collavre/print.css
@@ -187,6 +188,7 @@ files:
187
188
  - app/components/collavre/progress_filter_component.rb
188
189
  - app/components/collavre/user_mention_menu_component.rb
189
190
  - app/controllers/collavre/admin/orchestration_controller.rb
191
+ - app/controllers/collavre/admin/settings_controller.rb
190
192
  - app/controllers/collavre/application_controller.rb
191
193
  - app/controllers/collavre/attachments_controller.rb
192
194
  - app/controllers/collavre/calendar_events_controller.rb
@@ -256,6 +258,7 @@ files:
256
258
  - app/javascript/creatives/drag_drop/operations.js
257
259
  - app/javascript/creatives/drag_drop/state.js
258
260
  - app/javascript/creatives/tree_renderer.js
261
+ - app/javascript/lib/__tests__/html_code_block_wrapper.test.js
259
262
  - app/javascript/lib/api/__tests__/queue_manager.test.js
260
263
  - app/javascript/lib/api/creatives.js
261
264
  - app/javascript/lib/api/csrf_fetch.js
@@ -263,6 +266,7 @@ files:
263
266
  - app/javascript/lib/api/queue_manager.js
264
267
  - app/javascript/lib/apply_lexical_styles.js
265
268
  - app/javascript/lib/common_popup.js
269
+ - app/javascript/lib/html_code_block_wrapper.js
266
270
  - app/javascript/lib/lexical/__tests__/action_text_attachment_node.test.jsx
267
271
  - app/javascript/lib/lexical/__tests__/attachment_payload.test.js
268
272
  - app/javascript/lib/lexical/action_text_attachment_node.js
@@ -294,8 +298,10 @@ files:
294
298
  - app/javascript/slide_view.js
295
299
  - app/javascript/utils/caret_position.js
296
300
  - app/javascript/utils/clipboard.js
301
+ - app/javascript/utils/emoji_parser.js
297
302
  - app/jobs/collavre/ai_agent_job.rb
298
303
  - app/jobs/collavre/cron_action_job.rb
304
+ - app/jobs/collavre/cron_scheduler_job.rb
299
305
  - app/jobs/collavre/inbox_summary_job.rb
300
306
  - app/jobs/collavre/permission_cache_cleanup_job.rb
301
307
  - app/jobs/collavre/permission_cache_job.rb
@@ -311,11 +317,17 @@ files:
311
317
  - app/models/collavre/application_record.rb
312
318
  - app/models/collavre/calendar_event.rb
313
319
  - app/models/collavre/comment.rb
320
+ - app/models/collavre/comment/approvable.rb
321
+ - app/models/collavre/comment/broadcastable.rb
322
+ - app/models/collavre/comment/notifiable.rb
314
323
  - app/models/collavre/comment_presence_store.rb
315
324
  - app/models/collavre/comment_reaction.rb
316
325
  - app/models/collavre/comment_read_pointer.rb
317
326
  - app/models/collavre/contact.rb
318
327
  - app/models/collavre/creative.rb
328
+ - app/models/collavre/creative/describable.rb
329
+ - app/models/collavre/creative/linkable.rb
330
+ - app/models/collavre/creative/permissible.rb
319
331
  - app/models/collavre/creative_expanded_state.rb
320
332
  - app/models/collavre/creative_share.rb
321
333
  - app/models/collavre/creative_shares_cache.rb
@@ -338,11 +350,16 @@ files:
338
350
  - app/models/collavre/user_theme.rb
339
351
  - app/models/collavre/variation.rb
340
352
  - app/models/collavre/webauthn_credential.rb
353
+ - app/services/collavre/ai_agent/approval_handler.rb
354
+ - app/services/collavre/ai_agent/message_builder.rb
355
+ - app/services/collavre/ai_agent/review_handler.rb
341
356
  - app/services/collavre/ai_agent_service.rb
342
357
  - app/services/collavre/ai_client.rb
343
358
  - app/services/collavre/ai_system_prompt_renderer.rb
344
359
  - app/services/collavre/auto_theme_generator.rb
360
+ - app/services/collavre/command_menu_service.rb
345
361
  - app/services/collavre/comment_link_formatter.rb
362
+ - app/services/collavre/comment_move_service.rb
346
363
  - app/services/collavre/comments/action_executor.rb
347
364
  - app/services/collavre/comments/action_validator.rb
348
365
  - app/services/collavre/comments/calendar_command.rb
@@ -350,6 +367,8 @@ files:
350
367
  - app/services/collavre/comments/mcp_command.rb
351
368
  - app/services/collavre/comments/mcp_command_builder.rb
352
369
  - app/services/collavre/comments/topic_command.rb
370
+ - app/services/collavre/creatives/create_service.rb
371
+ - app/services/collavre/creatives/destroy_service.rb
353
372
  - app/services/collavre/creatives/filter_pipeline.rb
354
373
  - app/services/collavre/creatives/filters/assignee_filter.rb
355
374
  - app/services/collavre/creatives/filters/base_filter.rb
@@ -371,8 +390,10 @@ files:
371
390
  - app/services/collavre/gemini_parent_recommender.rb
372
391
  - app/services/collavre/google_calendar_service.rb
373
392
  - app/services/collavre/link_preview_fetcher.rb
393
+ - app/services/collavre/markdown_converter.rb
374
394
  - app/services/collavre/markdown_importer.rb
375
395
  - app/services/collavre/mcp_service.rb
396
+ - app/services/collavre/mention_parser.rb
376
397
  - app/services/collavre/orchestration/agent_context_builder.rb
377
398
  - app/services/collavre/orchestration/agent_orchestrator.rb
378
399
  - app/services/collavre/orchestration/arbiter.rb
@@ -387,6 +408,7 @@ files:
387
408
  - app/services/collavre/ruby_llm_interaction_logger.rb
388
409
  - app/services/collavre/system_events/context_builder.rb
389
410
  - app/services/collavre/system_events/dispatcher.rb
411
+ - app/services/collavre/tools/creative_batch_service.rb
390
412
  - app/services/collavre/tools/creative_create_service.rb
391
413
  - app/services/collavre/tools/creative_retrieval_service.rb
392
414
  - app/services/collavre/tools/creative_update_service.rb
@@ -396,6 +418,10 @@ files:
396
418
  - app/services/collavre/tools/cron_update_service.rb
397
419
  - app/views/admin/shared/_tabs.html.erb
398
420
  - app/views/collavre/admin/orchestration/show.html.erb
421
+ - app/views/collavre/admin/settings/_system_tab.html.erb
422
+ - app/views/collavre/admin/settings/_uiux_tab.html.erb
423
+ - app/views/collavre/admin/settings/index.html.erb
424
+ - app/views/collavre/admin/settings/uiux.html.erb
399
425
  - app/views/collavre/comments/_activity_log_details.html.erb
400
426
  - app/views/collavre/comments/_comment.html.erb
401
427
  - app/views/collavre/comments/_comments_popup.html.erb
@@ -413,6 +439,7 @@ files:
413
439
  - app/views/collavre/creatives/_mobile_actions_menu.html.erb
414
440
  - app/views/collavre/creatives/_set_plan_modal.html.erb
415
441
  - app/views/collavre/creatives/_share_button.html.erb
442
+ - app/views/collavre/creatives/_share_modal.html.erb
416
443
  - app/views/collavre/creatives/edit.html.erb
417
444
  - app/views/collavre/creatives/index.html.erb
418
445
  - app/views/collavre/creatives/new.html.erb
@@ -460,6 +487,8 @@ files:
460
487
  - app/views/collavre/users/show.html.erb
461
488
  - app/views/inbox/badge_component/_count.html.erb
462
489
  - app/views/layouts/collavre/slide.html.erb
490
+ - config/locales/admin.en.yml
491
+ - config/locales/admin.ko.yml
463
492
  - config/locales/ai_agent.en.yml
464
493
  - config/locales/ai_agent.ko.yml
465
494
  - config/locales/comments.en.yml
@@ -577,6 +606,8 @@ files:
577
606
  - db/migrate/20260206005035_create_orchestrator_policies.rb
578
607
  - db/migrate/20260206094509_add_retry_count_to_tasks.rb
579
608
  - db/migrate/20260206100000_add_topic_id_to_tasks.rb
609
+ - db/migrate/20260212011655_add_quoted_comment_to_comments.rb
610
+ - db/migrate/20260213044247_add_agent_conf_to_users.rb
580
611
  - lib/collavre.rb
581
612
  - lib/collavre/configuration.rb
582
613
  - lib/collavre/engine.rb