[{"data":1,"prerenderedAt":694},["ShallowReactive",2],{"docs-nav":3,"content-query-906Rtdx8vB":249},[4,8,11,14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,177,180,183,186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,240,243,246],{"_path":5,"title":6,"order":7},"/docs/getting-started","Getting Started",1,{"_path":9,"title":10,"order":7},"/docs/self-hosting/all-in-one","All-in-One Setup",{"_path":12,"title":13,"order":7},"/docs/views/grid","Grid View",{"_path":15,"title":16,"order":17},"/docs/core-concepts","Core Concepts",10,{"_path":19,"title":20,"order":21},"/docs/crdt","What is a CRDT?",11,{"_path":23,"title":24,"order":25},"/docs/self-hosting/separate-containers","Separate Containers Setup",2,{"_path":27,"title":28,"order":29},"/docs/interface-overview","Interface Overview",20,{"_path":31,"title":32,"order":33},"/docs/global-search","Global Search",22,{"_path":35,"title":36,"order":37},"/docs/filters","Filters",24,{"_path":39,"title":40,"order":41},"/docs/sorting","Sorting",25,{"_path":43,"title":44,"order":45},"/docs/tagging-and-selection","Tagging & Selection",26,{"_path":47,"title":48,"order":49},"/docs/quick-view","Quick View",28,{"_path":51,"title":52,"order":53},"/docs/self-hosting/remote-access-tailscale","Remote Access with Tailscale",3,{"_path":55,"title":56,"order":57},"/docs/block-actions","Block Actions",30,{"_path":59,"title":60,"order":61},"/docs/deleting-blocks","Deleting Blocks & Trash",32,{"_path":63,"title":64,"order":65},"/docs/self-hosting","Self-Hosting",4,{"_path":67,"title":68,"order":69},"/docs/managing-heaps","Managing Heaps",40,{"_path":71,"title":72,"order":73},"/docs/file-scanning","File Scanning & Importing",42,{"_path":75,"title":76,"order":77},"/docs/storage-management","Storage Management",44,{"_path":79,"title":80,"order":81},"/docs/daily-notes","Daily Notes & Calendar",46,{"_path":83,"title":84,"order":85},"/docs/views","Views",60,{"_path":87,"title":88,"order":89},"/docs/authentication","Authentication & User Management",70,{"_path":91,"title":92,"order":93},"/docs/licenses-privacy","Licenses & Privacy",72,{"_path":95,"title":96,"order":97},"/docs/faq","FAQ",80,{"_path":99,"title":100,"order":101},"/docs/changelog","Changelog",99,{"_path":103,"title":104},"/docs/changelog/v16.16.15","v16.16.15",{"_path":106,"title":107},"/docs/changelog/v16.16.34","v16.16.34",{"_path":109,"title":110},"/docs/changelog/v16.16.28","v16.16.28",{"_path":112,"title":113},"/docs/changelog/v16.16.35","v16.16.35",{"_path":115,"title":116},"/docs/changelog/v16.16.32","v16.16.32",{"_path":118,"title":119},"/docs/changelog/v16.8.0","v16.8.0",{"_path":121,"title":122},"/docs/changelog/v16.16.8","v16.16.8",{"_path":124,"title":125},"/docs/changelog/v16.16.27","v16.16.27",{"_path":127,"title":128},"/docs/changelog/v16.16.41","v16.16.41",{"_path":130,"title":131},"/docs/changelog/v16.16.11","v16.16.11",{"_path":133,"title":134},"/docs/changelog/v16.16.14","v16.16.14",{"_path":136,"title":137},"/docs/changelog/v16.16.17","v16.16.17",{"_path":139,"title":140},"/docs/changelog/v16.16.10","v16.16.10",{"_path":142,"title":143},"/docs/changelog/v16.16.20","v16.16.20",{"_path":145,"title":146},"/docs/changelog/v16.6.0","v16.6.0",{"_path":148,"title":149},"/docs/changelog/v16.16.22","v16.16.22",{"_path":151,"title":152},"/docs/changelog/v16.16.6","v16.16.6",{"_path":154,"title":155},"/docs/changelog/v16.16.36","v16.16.36",{"_path":157,"title":158},"/docs/changelog/v16.16.18","v16.16.18",{"_path":160,"title":161},"/docs/changelog/v16.16.38","v16.16.38",{"_path":163,"title":164},"/docs/changelog/v16.16.1","v16.16.1",{"_path":166,"title":167},"/docs/changelog/v16.16.12","v16.16.12",{"_path":169,"title":170},"/docs/changelog/v16.16.31","v16.16.31",{"_path":172,"title":173},"/docs/changelog/v16.16.40","v16.16.40",{"_path":175,"title":176},"/docs/changelog/v16.7.0","v16.7.0",{"_path":178,"title":179},"/docs/changelog/v16.9.0","v16.9.0",{"_path":181,"title":182},"/docs/changelog/v16.16.4","v16.16.4",{"_path":184,"title":185},"/docs/changelog/v16.16.13","v16.16.13",{"_path":187,"title":188},"/docs/changelog/v16.16.37","v16.16.37",{"_path":190,"title":191},"/docs/changelog/v16.16.9","v16.16.9",{"_path":193,"title":194},"/docs/changelog/v16.16.25","v16.16.25",{"_path":196,"title":197},"/docs/changelog/v16.16.24","v16.16.24",{"_path":199,"title":200},"/docs/changelog/v16.16.3","v16.16.3",{"_path":202,"title":203},"/docs/changelog/v16.10.0","v16.10.0",{"_path":205,"title":206},"/docs/changelog/v16.16.16","v16.16.16",{"_path":208,"title":209},"/docs/changelog/v16.16.33","v16.16.33",{"_path":211,"title":212},"/docs/changelog/v16.16.26","v16.16.26",{"_path":214,"title":215},"/docs/changelog/v16.16.43","v16.16.43",{"_path":217,"title":218},"/docs/changelog/v16.11.0","v16.11.0",{"_path":220,"title":221},"/docs/changelog/v16.16.29","v16.16.29",{"_path":223,"title":224},"/docs/changelog/v16.16.5","v16.16.5",{"_path":226,"title":227},"/docs/changelog/v16.16.39","v16.16.39",{"_path":229,"title":230},"/docs/changelog/v16.16.2","v16.16.2",{"_path":232,"title":233},"/docs/changelog/v16.16.7","v16.16.7",{"_path":235,"title":236},"/docs/changelog/v16.16.23","v16.16.23",{"_path":238,"title":239},"/docs/changelog/v16.16.0","v16.16.0",{"_path":241,"title":242},"/docs/changelog/v16.16.30","v16.16.30",{"_path":244,"title":245},"/docs/changelog/v16.16.21","v16.16.21",{"_path":247,"title":248},"/docs/changelog/v16.16.19","v16.16.19",{"_path":178,"_dir":250,"_draft":251,"_partial":251,"_locale":252,"title":179,"description":253,"date":254,"body":255,"_type":688,"_id":689,"_source":690,"_file":691,"_stem":692,"_extension":693},"changelog",false,"","Major sync overhaul with WebSocket multiplexing, new landing page, and extensive performance improvements.","2025-11-07",{"type":256,"children":257,"toc":678},"root",[258,266,278,285,289,295,360,366,438,444,487,493,526,532,565,571,599,605],{"type":259,"tag":260,"props":261,"children":263},"element","h1",{"id":262},"v1690",[264],{"type":265,"value":179},"text",{"type":259,"tag":267,"props":268,"children":269},"p",{},[270,276],{"type":259,"tag":271,"props":272,"children":273},"strong",{},[274],{"type":265,"value":275},"Release Date:",{"type":265,"value":277}," November 7, 2025",{"type":259,"tag":279,"props":280,"children":282},"h2",{"id":281},"overview",[283],{"type":265,"value":284},"Overview",{"type":259,"tag":267,"props":286,"children":287},{},[288],{"type":265,"value":253},{"type":259,"tag":279,"props":290,"children":292},{"id":291},"new-features",[293],{"type":265,"value":294},"New Features",{"type":259,"tag":296,"props":297,"children":298},"ul",{},[299,310,320,330,340,350],{"type":259,"tag":300,"props":301,"children":302},"li",{},[303,308],{"type":259,"tag":271,"props":304,"children":305},{},[306],{"type":265,"value":307},"WebSocket Multiplexing",{"type":265,"value":309},": New connection multiplexing with workspace:block document format for efficient sync",{"type":259,"tag":300,"props":311,"children":312},{},[313,318],{"type":259,"tag":271,"props":314,"children":315},{},[316],{"type":265,"value":317},"Sync Progress Indicator",{"type":265,"value":319},": Elegant floating sync indicator above heap button with manual sync trigger",{"type":259,"tag":300,"props":321,"children":322},{},[323,328],{"type":259,"tag":271,"props":324,"children":325},{},[326],{"type":265,"value":327},"Pinch-Zoom",{"type":265,"value":329},": Added pinch-zoom functionality for image and video previews",{"type":259,"tag":300,"props":331,"children":332},{},[333,338],{"type":259,"tag":271,"props":334,"children":335},{},[336],{"type":265,"value":337},"Block Compaction",{"type":265,"value":339},": Implement block compaction feature for YDoc optimization",{"type":259,"tag":300,"props":341,"children":342},{},[343,348],{"type":259,"tag":271,"props":344,"children":345},{},[346],{"type":265,"value":347},"YDoc Inspector",{"type":265,"value":349},": Debug tool for inspecting YJS documents",{"type":259,"tag":300,"props":351,"children":352},{},[353,358],{"type":259,"tag":271,"props":354,"children":355},{},[356],{"type":265,"value":357},"New Landing Page",{"type":265,"value":359},": Revamped landing page with landing videos",{"type":259,"tag":279,"props":361,"children":363},{"id":362},"improvements",[364],{"type":265,"value":365},"Improvements",{"type":259,"tag":296,"props":367,"children":368},{},[369,383,388,393,398,403,408,413,418,423,428,433],{"type":259,"tag":300,"props":370,"children":371},{},[372,374,381],{"type":265,"value":373},"Optimized ",{"type":259,"tag":375,"props":376,"children":378},"code",{"className":377},[],[379],{"type":265,"value":380},"getBlockManagers",{"type":265,"value":382}," to load blocks in parallel",{"type":259,"tag":300,"props":384,"children":385},{},[386],{"type":265,"value":387},"Performance logging for heap switching",{"type":259,"tag":300,"props":389,"children":390},{},[391],{"type":265,"value":392},"Selection sidebar shows YJS info instantly",{"type":259,"tag":300,"props":394,"children":395},{},[396],{"type":265,"value":397},"Better pinned blocks display and section",{"type":259,"tag":300,"props":399,"children":400},{},[401],{"type":265,"value":402},"Watchers for sidebar order and block changes to reload pinned blocks",{"type":259,"tag":300,"props":404,"children":405},{},[406],{"type":265,"value":407},"Advanced selection sidebar section",{"type":259,"tag":300,"props":409,"children":410},{},[411],{"type":265,"value":412},"Proper HTTPS for WebSockets",{"type":259,"tag":300,"props":414,"children":415},{},[416],{"type":265,"value":417},"Selection sidebar design improvements with image size and word count",{"type":259,"tag":300,"props":419,"children":420},{},[421],{"type":265,"value":422},"Height for horizontal grid app properly set",{"type":259,"tag":300,"props":424,"children":425},{},[426],{"type":265,"value":427},"Content resize transitions work correctly",{"type":259,"tag":300,"props":429,"children":430},{},[431],{"type":265,"value":432},"Serverside preview generation for medium thumbnails",{"type":259,"tag":300,"props":434,"children":435},{},[436],{"type":265,"value":437},"Video previews via sprite for new Caddy file",{"type":259,"tag":279,"props":439,"children":441},{"id":440},"sync-system",[442],{"type":265,"value":443},"Sync System",{"type":259,"tag":296,"props":445,"children":446},{},[447,452,457,462,467,472,477,482],{"type":259,"tag":300,"props":448,"children":449},{},[450],{"type":265,"value":451},"Centralized sync implementation in SyncService",{"type":259,"tag":300,"props":453,"children":454},{},[455],{"type":265,"value":456},"WebSocket connection multiplexing",{"type":259,"tag":300,"props":458,"children":459},{},[460],{"type":265,"value":461},"Race condition fixes with ON CONFLICT clauses",{"type":259,"tag":300,"props":463,"children":464},{},[465],{"type":265,"value":466},"Server-scanned files marked as is_uploaded = true",{"type":259,"tag":300,"props":468,"children":469},{},[470],{"type":265,"value":471},"Sync delays optimization",{"type":259,"tag":300,"props":473,"children":474},{},[475],{"type":265,"value":476},"Light sync and hard sync refresh events",{"type":259,"tag":300,"props":478,"children":479},{},[480],{"type":265,"value":481},"Fix for UI lockup during sync on Capacitor apps",{"type":259,"tag":300,"props":483,"children":484},{},[485],{"type":265,"value":486},"Fixed blocks being saved with null workspace_id",{"type":259,"tag":279,"props":488,"children":490},{"id":489},"self-hosted",[491],{"type":265,"value":492},"Self-Hosted",{"type":259,"tag":296,"props":494,"children":495},{},[496,501,506,511,516,521],{"type":259,"tag":300,"props":497,"children":498},{},[499],{"type":265,"value":500},"Pull heap flow for self-hosted",{"type":259,"tag":300,"props":502,"children":503},{},[504],{"type":265,"value":505},"Better select for heap switching and syncing",{"type":259,"tag":300,"props":507,"children":508},{},[509],{"type":265,"value":510},"Dev servers are now removable",{"type":259,"tag":300,"props":512,"children":513},{},[514],{"type":265,"value":515},"Fixed storage progressbar",{"type":259,"tag":300,"props":517,"children":518},{},[519],{"type":265,"value":520},"Better server migration",{"type":259,"tag":300,"props":522,"children":523},{},[524],{"type":265,"value":525},"Added git branchless commands to readme",{"type":259,"tag":279,"props":527,"children":529},{"id":528},"mobile",[530],{"type":265,"value":531},"Mobile",{"type":259,"tag":296,"props":533,"children":534},{},[535,540,545,550,555,560],{"type":259,"tag":300,"props":536,"children":537},{},[538],{"type":265,"value":539},"Android proper keyboard handling",{"type":259,"tag":300,"props":541,"children":542},{},[543],{"type":265,"value":544},"Create sheet resumable fix",{"type":259,"tag":300,"props":546,"children":547},{},[548],{"type":265,"value":549},"Search working with composable",{"type":259,"tag":300,"props":551,"children":552},{},[553],{"type":265,"value":554},"Sync retain block manager logic",{"type":259,"tag":300,"props":556,"children":557},{},[558],{"type":265,"value":559},"New keyboard event listeners in centralized store",{"type":259,"tag":300,"props":561,"children":562},{},[563],{"type":265,"value":564},"Compatible mode for Android bars",{"type":259,"tag":279,"props":566,"children":568},{"id":567},"uiux",[569],{"type":265,"value":570},"UI/UX",{"type":259,"tag":296,"props":572,"children":573},{},[574,579,584,589,594],{"type":259,"tag":300,"props":575,"children":576},{},[577],{"type":265,"value":578},"Styled collaboration cursor",{"type":259,"tag":300,"props":580,"children":581},{},[582],{"type":265,"value":583},"Collaboration info and IDs in sidebar",{"type":259,"tag":300,"props":585,"children":586},{},[587],{"type":265,"value":588},"Removed bottom nav height from grid app horizontal (with min height)",{"type":259,"tag":300,"props":590,"children":591},{},[592],{"type":265,"value":593},"Settings has padding",{"type":259,"tag":300,"props":595,"children":596},{},[597],{"type":265,"value":598},"Pinned block migration for existing setups",{"type":259,"tag":279,"props":600,"children":602},{"id":601},"bug-fixes",[603],{"type":265,"value":604},"Bug Fixes",{"type":259,"tag":296,"props":606,"children":607},{},[608,613,618,623,628,633,638,643,648,653,658,663,668,673],{"type":259,"tag":300,"props":609,"children":610},{},[611],{"type":265,"value":612},"Fixed connection status badge with multiplexing",{"type":259,"tag":300,"props":614,"children":615},{},[616],{"type":265,"value":617},"Fixed GridApp seamless filter and refresh",{"type":259,"tag":300,"props":619,"children":620},{},[621],{"type":265,"value":622},"No sync on startup with nicer indicator appear",{"type":259,"tag":300,"props":624,"children":625},{},[626],{"type":265,"value":627},"Fixed sync indicator jarring animation",{"type":259,"tag":300,"props":629,"children":630},{},[631],{"type":265,"value":632},"Fixed sync indicator clipping by teleporting to modals container",{"type":259,"tag":300,"props":634,"children":635},{},[636],{"type":265,"value":637},"Fixed MultiGrid refresh after sync using event bus",{"type":259,"tag":300,"props":639,"children":640},{},[641],{"type":265,"value":642},"Removed excessive 'No requested files' logging",{"type":259,"tag":300,"props":644,"children":645},{},[646],{"type":265,"value":647},"Only changes update the updated_at for a block",{"type":259,"tag":300,"props":649,"children":650},{},[651],{"type":265,"value":652},"BlockManager clones YDoc for size estimation (fix type already defined error)",{"type":259,"tag":300,"props":654,"children":655},{},[656],{"type":265,"value":657},"Fixed first boot flow",{"type":259,"tag":300,"props":659,"children":660},{},[661],{"type":265,"value":662},"Delete heap flow corrected",{"type":259,"tag":300,"props":664,"children":665},{},[666],{"type":265,"value":667},"Keep account tab",{"type":259,"tag":300,"props":669,"children":670},{},[671],{"type":265,"value":672},"No duplicate prod servers",{"type":259,"tag":300,"props":674,"children":675},{},[676],{"type":265,"value":677},"User public URL first, fetch user data after login",{"title":252,"searchDepth":25,"depth":25,"links":679},[680,681,682,683,684,685,686,687],{"id":281,"depth":25,"text":284},{"id":291,"depth":25,"text":294},{"id":362,"depth":25,"text":365},{"id":440,"depth":25,"text":443},{"id":489,"depth":25,"text":492},{"id":528,"depth":25,"text":531},{"id":567,"depth":25,"text":570},{"id":601,"depth":25,"text":604},"markdown","content:docs:changelog:v16.9.0.md","content","docs/changelog/v16.9.0.md","docs/changelog/v16.9.0","md",1774954236821]