Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
564d27b
feat(web-ui): enable claude share command button
ymkiux May 17, 2026
a9e567a
feat(web-ui): move version to brand header and simplify layout
ymkiux May 17, 2026
7e13a4e
fix(web-ui): make language switcher always visible at sidebar bottom
ymkiux May 17, 2026
2701016
fix(web-ui): fix language switcher visibility at sidebar bottom
ymkiux May 17, 2026
ae446ef
feat(web-ui): add context window utilization warning for sessions
ymkiux May 17, 2026
12b3038
test: update test to match enabled share command button
ymkiux May 17, 2026
b839fc4
test: allow sessionContextUtilization in parity test
ymkiux May 17, 2026
3d896b2
fix(search): CJK token matching + E2E stability fixes
ymkiux May 17, 2026
4ca5164
feat(web-ui): Codex provider UI improvements + edit key eye toggle
ymkiux May 18, 2026
707462f
feat(web-ui): add eye toggle for Claude edit config API key
ymkiux May 18, 2026
cde92c3
test(web-ui): update parity and share command tests for provider UI c…
ymkiux May 18, 2026
c746613
feat(claude): add local bridge load balancing for Claude providers
ymkiux May 18, 2026
9c3e6c9
fix(claude): add local provider card to Claude config panel
ymkiux May 18, 2026
55322e5
feat(cli): add Windows system tray icon for running indicator
ymkiux May 18, 2026
db99a4f
fix(claude): remove provider health check section from config panel
ymkiux May 18, 2026
2bac697
fix(dashboard): remove providers health section from Doctor panel
ymkiux May 18, 2026
3ea1e0d
fix(claude): remove provider health check section from Claude config …
ymkiux May 18, 2026
b43af44
fix(claude): remove health check results display, keep button and hint
ymkiux May 18, 2026
82123ea
fix(codex): remove health check results display, keep button and hint
ymkiux May 18, 2026
dec373a
feat(cli): add update command
ymkiux May 18, 2026
58999a5
fix(tray): fix pid variable bug and improve robustness
ymkiux May 18, 2026
75ad600
fix(tray): fix powershell heredoc indentation syntax error
ymkiux May 18, 2026
e3854bf
fix(tray): improve UI compatibility and add fallback icon
ymkiux May 18, 2026
3f54c4b
refactor(tray): use pure powershell with STA mode and hidden form for…
ymkiux May 18, 2026
f9011e0
refactor(cli): remove experimental windows tray icon feature
ymkiux May 18, 2026
6a5b08f
docs(readme): modernize style and fix consistency tests
ymkiux May 18, 2026
655b04e
docs(readme): remove sub-projects and ecosystem section
ymkiux May 18, 2026
32489f5
docs(readme): fix heading spacing and remove sub-projects section
ymkiux May 18, 2026
5b4ee20
chore: bump version to 0.0.33
ymkiux May 18, 2026
dd28a6b
docs(readme): restore missing badges with flat-square style
ymkiux May 18, 2026
52d577f
docs(readme): add Live Agent Sync to progress table
ymkiux May 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions web-ui/modules/i18n.dict.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1037,7 +1037,7 @@ const DICT = Object.freeze({
'claude.notConfigured': '未配置',
'claude.action.edit': '编辑',
'claude.action.delete': '删除',
'claude.action.shareDisabled': '分享导入命令(暂时禁用)',
'claude.action.shareDisabled': '分享导入命令',
'claude.action.editAria': '编辑 Claude 配置:{name}',
'claude.action.deleteAria': '删除 Claude 配置:{name}',
'claude.action.clone': '克隆',
Expand Down Expand Up @@ -2087,7 +2087,7 @@ const DICT = Object.freeze({
'claude.notConfigured': '未設定',
'claude.action.edit': '編集',
'claude.action.delete': '削除',
'claude.action.shareDisabled': 'インポートコマンド共有(一時無効)',
'claude.action.shareDisabled': 'インポートコマンド共有',
'claude.action.editAria': 'Claude 設定を編集:{name}',
'claude.action.deleteAria': 'Claude 設定を削除:{name}',
'claude.action.clone': 'クローン',
Expand Down Expand Up @@ -3147,7 +3147,7 @@ const DICT = Object.freeze({
'claude.notConfigured': 'Not configured',
'claude.action.edit': 'Edit',
'claude.action.delete': 'Delete',
'claude.action.shareDisabled': 'Share import command (disabled)',
'claude.action.shareDisabled': 'Share import command',
'claude.action.editAria': 'Edit Claude config: {name}',
'claude.action.deleteAria': 'Delete Claude config: {name}',
'claude.action.clone': 'Clone',
Expand Down
2 changes: 1 addition & 1 deletion web-ui/partials/index/panel-config-claude.html
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
<button class="card-action-btn" @click="openCloneClaudeConfigModal(name, config)" :aria-label="t('claude.action.cloneAria', { name })" :title="t('claude.action.clone')">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
</button>
<button class="card-action-btn" :class="{ loading: claudeShareLoading[name] }" @click="copyClaudeShareCommand(name)" disabled :title="t('claude.action.shareDisabled')" :aria-label="t('config.shareCommand.aria')">
<button class="card-action-btn" :class="{ loading: claudeShareLoading[name] }" @click="copyClaudeShareCommand(name)" :title="t('config.shareCommand')" :aria-label="t('config.shareCommand.aria')">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Disable the share button while loading to prevent duplicate actions.

Line 125 applies a loading class but still allows repeated clicks while claudeShareLoading[name] is true, which can trigger duplicate copy attempts.

Proposed fix
-<button class="card-action-btn" :class="{ loading: claudeShareLoading[name] }" `@click`="copyClaudeShareCommand(name)" :title="t('config.shareCommand')" :aria-label="t('config.shareCommand.aria')">
+<button
+  class="card-action-btn"
+  :class="{ loading: claudeShareLoading[name] }"
+  :disabled="claudeShareLoading[name]"
+  `@click`="copyClaudeShareCommand(name)"
+  :title="t('config.shareCommand')"
+  :aria-label="t('config.shareCommand.aria')">
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<button class="card-action-btn" :class="{ loading: claudeShareLoading[name] }" @click="copyClaudeShareCommand(name)" :title="t('config.shareCommand')" :aria-label="t('config.shareCommand.aria')">
<button
class="card-action-btn"
:class="{ loading: claudeShareLoading[name] }"
:disabled="claudeShareLoading[name]"
`@click`="copyClaudeShareCommand(name)"
:title="t('config.shareCommand')"
:aria-label="t('config.shareCommand.aria')">
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web-ui/partials/index/panel-config-claude.html` at line 125, The share button
currently only toggles a loading class but remains clickable; prevent duplicate
actions by disabling it while loading: add a disabled binding (e.g.,
:disabled="claudeShareLoading[name]") to the button and guard the click handler
so it only invokes copyClaudeShareCommand(name) when claudeShareLoading[name] is
false (for example change the `@click` to a short conditional call or add an
early-return in copyClaudeShareCommand to ignore calls when
claudeShareLoading[name] is true); also consider setting aria-disabled for
accessibility.

<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 12v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7"/><path d="M16 6l-4-4-4 4"/><path d="M12 2v14"/></svg>
</button>
<button class="card-action-btn delete" @click="deleteClaudeConfig(name)" :aria-label="t('claude.action.deleteAria', { name })" :title="t('claude.action.delete')">
Expand Down
Loading