feat(codex): import local Codex sessions into Hapi (#796)

* local: add Codex Desktop session sync controls

* feat(codex): import local Codex sessions into Hapi

---------

Co-authored-by: Codex Local <codex-local@example.invalid>
This commit is contained in:
DolphinZZZZZ
2026-06-04 17:53:12 +08:00
committed by GitHub
co-authored by Codex Local
parent 39fba5292c
commit f9ef3a4489
25 changed files with 3156 additions and 15 deletions
+43
View File
@@ -53,6 +53,45 @@ export default {
'sessions.group.showMore': 'Show {n} more',
'sessions.group.showLess': 'Show less',
'sessions.group.new': 'New session in this directory',
'codexSync.tooltip': 'Import sessions from Codex into Hapi',
'codexSync.confirm.title': 'Import Codex sessions',
'codexSync.confirm.description': 'Choose Codex sessions to import into Hapi',
// 中文注释:以下文案支撑导入弹窗的多选列表、加载态,以及右上角重启 Codex 客户端按钮提示。
'codexSync.confirm.selectAll': 'Select all',
'codexSync.confirm.clearAll': 'Clear all',
'codexSync.confirm.selectedCount': '{n} sessions selected',
'codexSync.confirm.empty': 'No local Codex sessions found',
'codexSync.confirm.current': 'Linked',
'codexSync.confirm.confirm': 'Import',
'codexSync.confirm.confirming': 'Importing…',
'codexSync.confirm.loading': 'Loading local Codex sessions…',
'codexSync.success.title': 'Import complete',
'codexSync.success.body': 'Imported {n} Codex session(s) into Hapi.',
'codexSync.error.timeout': 'Operation timed out',
'codexSync.error.active': 'This session is still active. Please wait until it ends and try again.',
'codexSync.failed.title': 'Failed to import Codex sessions',
'codexSync.failed.body': 'Failed to import Codex sessions.',
'codexSync.failed.bodyWithReason': 'Import failed: {reason}',
'codexSync.restart.tooltip': 'Restart Codex client',
'codexSync.restart.title': 'Restart Codex client',
'codexSync.restart.description': 'Restart Codex client now to refresh sessions?',
'codexSync.restart.confirm': 'Restart',
'codexSync.restart.confirming': 'Restarting…',
'codexSync.restart.failed.title': 'Failed to restart Codex client',
'codexSync.restart.failed.notFound': 'Failed to restart Codex client: not installed or not found',
'codexSync.restart.failed.body': 'Failed to run the restart script.',
'codexSync.restart.started.title': 'Restart started',
'codexSync.restart.started.body': 'Codex client is restarting to refresh sessions.',
'codexSync.duplicates.confirm.title': 'Duplicate sessions detected',
'codexSync.duplicates.confirm.description': 'Duplicate sessions were detected. Merge them?',
'codexSync.duplicates.confirm.confirm': 'Merge',
'codexSync.duplicates.confirm.confirming': 'Merging…',
'codexSync.duplicates.detect.failed.title': 'Failed to detect duplicate sessions',
'codexSync.duplicates.detect.failed.body': 'Failed to detect duplicate sessions.',
'codexSync.duplicates.merge.success.title': 'Duplicate sessions merged',
'codexSync.duplicates.merge.success.body': 'Merged duplicates for the selected Codex sessions.',
'codexSync.duplicates.merge.failed.title': 'Failed to merge duplicate sessions',
'codexSync.duplicates.merge.failed.body': 'Failed to merge duplicate sessions.',
// Session list
'session.item.path': 'path',
@@ -71,6 +110,10 @@ export default {
'session.time.minutesAgo': '{n}m ago',
'session.time.hoursAgo': '{n}h ago',
'session.time.daysAgo': '{n}d ago',
'session.time.importedFromCodex.justNow': 'just imported from Codex',
'session.time.importedFromCodex.minutesAgo': 'imported from Codex {n}m ago',
'session.time.importedFromCodex.hoursAgo': 'imported from Codex {n}h ago',
'session.time.importedFromCodex.daysAgo': 'imported from Codex {n}d ago',
// Session header
'session.title': 'Files',