AppImage video fix, proper import posts, first-run chooser, file pickers
- bundleMediaFramework: true — bundles full GStreamer plugin set in AppImage. Fixes WebKit hang on video/audio (missing appsink/autoaudiosink plugins). MSDK/VA plugins removed post-build to avoid Ubuntu DMA assertion crash. - Import creates complete posts: BlobHeader, VisibilityIntent, pinned blobs, self-follow. Imported posts now indistinguishable from locally created ones. - First-run chooser: Start Fresh or Import Identity on fresh install only. Profile setup shown for existing identities without display name. - File pickers: native Browse buttons on export (folder) and import (ZIP) via tauri-plugin-dialog. - Export path: relative paths resolved against home dir. - Lightbox close: only on overlay/image click, not inner form content. - Growth loop skips self as N2 candidate. - Node shutdown on identity switch (prevents zombie background tasks). - media-src CSP includes asset protocol. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ec731fdb4b
commit
cba30a1bb3
7 changed files with 186 additions and 11 deletions
|
|
@ -3514,7 +3514,6 @@ $('#import-btn').addEventListener('click', () => {
|
|||
}
|
||||
status.textContent = result;
|
||||
toast('Import complete!');
|
||||
loadFeed(true);
|
||||
} catch (e) {
|
||||
status.textContent = 'Error: ' + e;
|
||||
toast('Import failed: ' + e);
|
||||
|
|
@ -3674,7 +3673,7 @@ async function init() {
|
|||
} catch (_) {}
|
||||
}
|
||||
if (isFirstRun) {
|
||||
// First-run chooser: start fresh or import
|
||||
// First-run: start fresh or import
|
||||
const chooser = document.createElement('div');
|
||||
chooser.className = 'image-lightbox';
|
||||
chooser.style.cursor = 'default';
|
||||
|
|
@ -3698,6 +3697,10 @@ async function init() {
|
|||
// Open the import wizard
|
||||
document.getElementById('import-btn')?.click();
|
||||
});
|
||||
} else if (info && !info.hasProfile) {
|
||||
// Not first run, but no profile set — show name setup
|
||||
setupOverlay.classList.remove('hidden');
|
||||
setupName.focus();
|
||||
}
|
||||
// Pre-load feed + messages from local DB (instant — no network needed)
|
||||
await loadFeed(true).catch(() => {});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue