Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
417 changes: 417 additions & 0 deletions AI_HANDOFF.md

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions electron/main.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,24 @@ ipcMain.handle('fs:fileExists', async (_event, filePath) => {
return fs.existsSync(filePath);
});

// Read file from absolute path (for persistence)
ipcMain.handle('file:readFromPath', async (_event, filePath) => {
try {
const content = fs.readFileSync(filePath);
const fileName = path.basename(filePath);
return {
success: true,
buffer: content.buffer,
name: fileName,
};
} catch (error) {
return {
success: false,
error: error.message,
};
}
});

ipcMain.handle('shell:openExternal', async (_event, url) => {
// Validate URL before opening
if (!url.startsWith('https://github.com/rodrigogs/whats-reader')) {
Expand Down
4 changes: 4 additions & 0 deletions electron/preload.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ contextBridge.exposeInMainWorld('electronAPI', {
readDir: (dirPath) => ipcRenderer.invoke('fs:readDir', dirPath),
fileExists: (filePath) => ipcRenderer.invoke('fs:fileExists', filePath),

// Persistence file operations
readFileFromPath: (filePath) =>
ipcRenderer.invoke('file:readFromPath', filePath),

// External links
openExternal: (url) => ipcRenderer.invoke('shell:openExternal', url),

Expand Down
21 changes: 19 additions & 2 deletions messages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Andere",
"media_gallery_clear_filter": "Filter löschen",
"media_gallery_participant_search_placeholder": "Suche nach Name oder Nummer...",
"media_gallery_participant_no_match": "Kein Teilnehmer entspricht \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
20 changes: 19 additions & 1 deletion messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,23 @@
"media_gallery_type_other": "Other",
"media_gallery_clear_filter": "Clear filter",
"media_gallery_participant_search_placeholder": "Search by name or number...",
"media_gallery_participant_no_match": "No participant matches \"{query}\""
"media_gallery_participant_no_match": "No participant matches \"{query}\"",
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Otro",
"media_gallery_clear_filter": "Limpiar filtro",
"media_gallery_participant_search_placeholder": "Buscar por nombre o número...",
"media_gallery_participant_no_match": "Ningún participante coincide con \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Autre",
"media_gallery_clear_filter": "Effacer le filtre",
"media_gallery_participant_search_placeholder": "Recherche par nom ou numéro...",
"media_gallery_participant_no_match": "Aucun participant ne correspond à \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Altro",
"media_gallery_clear_filter": "Cancella filtro",
"media_gallery_participant_search_placeholder": "Cerca per nome o numero...",
"media_gallery_participant_no_match": "Nessun partecipante corrisponde a \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "他の",
"media_gallery_clear_filter": "フィルターをクリア",
"media_gallery_participant_search_placeholder": "名前または番号で検索...",
"media_gallery_participant_no_match": "「{query}」に一致する参加者はいません"
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Ander",
"media_gallery_clear_filter": "Filter wissen",
"media_gallery_participant_search_placeholder": "Zoeken op naam of nummer...",
"media_gallery_participant_no_match": "Geen deelnemer komt overeen met \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Outro",
"media_gallery_clear_filter": "Limpar filtro",
"media_gallery_participant_search_placeholder": "Pesquisar por nome ou número...",
"media_gallery_participant_no_match": "Nenhum participante corresponde a \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "Другой",
"media_gallery_clear_filter": "Очистить фильтр",
"media_gallery_participant_search_placeholder": "Поиск по имени или номеру...",
"media_gallery_participant_no_match": "Ни один участник не соответствует \"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
21 changes: 19 additions & 2 deletions messages/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,22 @@
"media_gallery_type_other": "其他",
"media_gallery_clear_filter": "清除过滤器",
"media_gallery_participant_search_placeholder": "按名称或编号搜索……",
"media_gallery_participant_no_match": "没有参与者匹配\"{query}\""
}
"persistence_remember_conversation": "Remember Conversation",
"persistence_conversation_saved": "Conversation will be remembered",
"persistence_conversation_removed": "Conversation removed from saved sessions",
"persistence_restore_title": "Restore Saved Conversations",
"persistence_restore_description": "You have saved conversations from previous sessions:",
"persistence_restore_button": "Restore Selected ({count})",
"persistence_start_fresh": "Start Fresh",
"persistence_dont_show_again": "Don't show this again",
"persistence_last_opened": "Last opened: {date}",
"persistence_message_count": "{count} messages",
"persistence_reselect_title": "Please Re-select File",
"persistence_reselect_description": "To restore \"{chatTitle}\", please select the original file:",
"persistence_reselect_expected_file": "Expected file: {fileName}",
"persistence_skip": "Skip",
"persistence_validation_failed": "This file doesn't match the saved conversation",
"persistence_validation_confirm": "This might be the correct file, but we couldn't fully verify. Continue anyway?",
"persistence_file_not_found": "The original file was moved or deleted",
"persistence_restoring": "Restoring conversations..."
}
Loading