v0.4.3: Lock contention overhaul, StoragePool, mobile bottom nav, text scaling
Eliminate all conn_mgr lock holds during network I/O across 14 actor commands and bi-stream handlers. PostFetch, TcpPunch, PullFromPeer, FetchEngagement, ResolveAddress, AnchorProbe use brief locks for data gathering only. WormLookup, ContentSearch, WormQuery use connection snapshots for lock-free cascade fan-out. RelayIntroduce extracts forwarding data under brief lock, does I/O outside. BlobRequest, PostFetchRequest, ManifestRefresh use Arc clones instead of conn_mgr lock. ConnectionActor hoists shared Arcs (storage, blob_store, endpoint) for lock-free access. ResolveAddress adds 5s per-query timeout (was unbounded). Initial exchange failure now aborts mesh upgrade (was silently continuing with broken connection). connect_to_peer/connect_to_anchor use consistent 15s timeout. Rebalance connects outside the lock via pending_connects pattern. StoragePool: 8 concurrent SQLite connections in WAL mode replace single Mutex<Storage>. Reads run fully parallel; writes serialize at SQLite level only. PRAGMA busy_timeout=5000 for graceful write contention. Mobile bottom nav bar (<=768px) with icon tabs. Text sizes: XS/S/M/L/XL (75%/100%/125%/150%/200%), default M. localStorage persistence for instant restore. Toast repositioned above mobile nav. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f17535d61d
commit
43adbbdf7d
15 changed files with 1546 additions and 618 deletions
|
|
@ -30,11 +30,11 @@
|
|||
|
||||
<main>
|
||||
<nav id="tabs">
|
||||
<button class="tab" data-tab="feed">Feed</button>
|
||||
<button class="tab" data-tab="myposts">My Posts</button>
|
||||
<button class="tab" data-tab="people">People</button>
|
||||
<button class="tab" data-tab="messages">Messages</button>
|
||||
<button class="tab" data-tab="settings">Settings</button>
|
||||
<button class="tab" data-tab="feed"><span class="tab-icon">📰</span><span class="tab-label">Feed</span></button>
|
||||
<button class="tab" data-tab="myposts"><span class="tab-icon">✍</span><span class="tab-label">My Posts</span></button>
|
||||
<button class="tab" data-tab="people"><span class="tab-icon">👥</span><span class="tab-label">People</span></button>
|
||||
<button class="tab" data-tab="messages"><span class="tab-icon">💬</span><span class="tab-label">Messages</span></button>
|
||||
<button class="tab" data-tab="settings"><span class="tab-icon">⚙</span><span class="tab-label">Settings</span></button>
|
||||
</nav>
|
||||
|
||||
<!-- Welcome (shown on startup) -->
|
||||
|
|
@ -229,9 +229,11 @@
|
|||
<div class="section-card">
|
||||
<h3>Text Size</h3>
|
||||
<div id="text-size-btns" style="display:flex;gap:0.4rem;margin-top:0.3rem">
|
||||
<button class="notif-opt text-size-opt" data-size="small">Small</button>
|
||||
<button class="notif-opt text-size-opt active" data-size="normal">Normal</button>
|
||||
<button class="notif-opt text-size-opt" data-size="large">Large</button>
|
||||
<button class="notif-opt text-size-opt" data-size="xsmall">XS</button>
|
||||
<button class="notif-opt text-size-opt" data-size="small">S</button>
|
||||
<button class="notif-opt text-size-opt active" data-size="normal">M</button>
|
||||
<button class="notif-opt text-size-opt" data-size="large">L</button>
|
||||
<button class="notif-opt text-size-opt" data-size="xlarge">XL</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue