Wired Server

GitHub

Changelog

All notable changes to WiredSwift are documented here. Format follows Keep a Changelog.

[3.0-beta.21+38] — 2026-04-13

Bug Fixes

  • Fix WiredServerApp lint violations (198b849)

Features

  • Persist tracker registry and watch external changes (fc4c602)

  • Add dashboard overview to WiredServerApp (a57e9d2)

  • Add database settings UI and auto event retention reload (4c5388d)

  • Implement file executable handling (d051a1c)

  • Add wired.file.link support on the server (56eb59d)

Other

  • Document attachment behavior and quotas in README (62adcdf)

  • Mirror modern Finder color tags on macOS (23d7cd2)

Refactoring

  • Split FilesController metadata helpers (db3e3f8)

[3.0-beta.20+37] — 2026-04-11

Bug Fixes

  • Fix IndexController build error after wiredFileLabel removal (43536de)

  • Fix Finder label color mapping and reliable xattr update (359c32b)

  • Fix attachment controller lint issues (827fc09)

  • Fix board post attachment edit broadcasts (2f409cc)

Features

  • Add file comment and label metadata support (02ce2fa)

  • Add English translation of Wired 2/3 feature comparison document (7f2fc16)

  • Persist private message attachments across reconnects (69dc1c4)

  • Add generic message attachments (3d7c046)

  • Align managed directory counts with classic Wired behavior (1cc7259)

Refactoring

  • Reduce FilesController below 1200-line SwiftLint limit (a8cb0c1)

  • Inline Finder label mapping to stay under 1200-line SwiftLint limit (08547d7)

  • Replace absolute paths with relative paths in feature comparison doc (1f71144)

Testing

  • Double server startup timeout in integration tests (10s → 20s) (79ca7be)

[3.0-beta.19+36] — 2026-04-08

Bug Fixes

  • Fix Debian config write permissions (8810d66)

Documentation

Features

  • Add remote file preview support (9228526)

[3.0-beta.18+35] — 2026-04-06

Bug Fixes

  • Fix remaining swiftlint blockers (b1d9d54)

  • Fix symlink path resolution and transfer queue hangs (64cbb48)

  • Fix idle status in user join broadcast (cd5e974)

Documentation

  • Update README to remove –root option from commands (d0f0e84)

Features

  • Add outgoing tracker registration (16b79e8)

  • Implement incoming tracker server support (9be9d06)

  • Implement monitor user listing (8dcddf4)

  • Add active transfer status to user info (486bef7)

Other

  • Suppress transfer controller type length lint (ec3644e)

  • Match legacy idle behavior on server (d769a4b)

[3.0-beta.17+33] — 2026-04-02

Bug Fixes

  • Align server version path with Core layout (afee8c1)

  • Preserve wired3 service state across upgrades (2f68374)

  • Stabilize accounts-changed integration broadcast assertion (f101f87)

  • Cast shutdown mode to Int32 in server stop (27356b1)

  • Stabilize paths, index file size, and server shutdown (9480546)

  • Remove legacy LinuxMain test entrypoint (13d6bf0)

  • Use platform-safe SOCK_STREAM type on Linux (987a2fe)

  • Exclude WiredServerApp target and product on Linux (2ead167)

  • Install full linux native deps for wired3 build (cfc8f66)

  • Run linux dependency install step with bash (2454ee1)

  • Install sqlite dev and enable GRDBCUSTOMSQLITE on linux (3700b1f)

  • Resolve SwiftLint CI errors after ServerController split (bdd0b51)

  • Fix two regressions introduced during warning cleanup (3cd6f07)

  • Stabilize integration tests with distinct admin sessions (54b1faf)

  • Fix integration flake: idempotent disconnect and stronger CI diagnostics (160abe3)

  • Stabilize integration socket reads against transient timeouts (fcba51d)

  • Fix WiredServerApp actor-safe self captures (646ec2a)

  • Fix upload message initialization in TransfersController (730575a)

Documentation

  • Simplify feature matrix wording (25b7040)

  • Improve feature matrix with visual status markers (9ffe82e)

  • Fix symbol heading rendering in connection patterns (00ca8d5)

  • Consolidate integration guides into a compact structure (77bbaa0)

  • Add catalog, CI generation, and pages publishing (4329c24)

  • Add CODE_OF_CONDUCT.md and cliff.toml (b19dc08)

  • Add SECURITY.md with vulnerability reporting policy (ffdb991)

  • Add /// documentation to all public API (e79afd0)

  • Add /// documentation to all public API (f21420c)

Features

  • Add sync concurrency integration tests (b906365)

  • Align client identity metadata across targets (901c5e6)

  • Implement quota fields — max_file_size_bytes, max_tree_size_bytes, exclude_patterns (361a214)

  • Implement sync folder permissions and admin sync management fixes (ace9b1c)

  • Add sync folder type with server invariants, ACL, and upload conflict handling (4749c99)

  • Add SwiftLint 0.63 with zero-error baseline (ccd160d)

  • Add coverage-driven unit tests for events, spec metadata, and resource fork helpers (4a400aa)

  • Add integration test suite and GitHub Actions CI pipeline (1607c18)

Other

  • Document continuous folder sync (f60ebca)

  • Handle wired send ping on server (9f3f657)

  • Finish async ping transactions (44b6aeb)

  • Refresh connection activity on incoming messages (2a33e78)

  • Refine sync policy and server sync uploads (fea96a0)

  • Add git-cliff CHANGELOG.md to the repository (f1e8237)

  • Expand boards/transfers unit coverage and harden flaky chat integration test (8af8ac1)

  • Expand integration coverage for boards files messages and transfers (c7141e2)

  • Expand wired3 unit coverage for users and banlist controllers (caa22bb)

  • Use static BSD license badge (45e372f)

  • Add CI, platform, version, license, and coverage badges (1431e03)

  • Fix llvm-cov test binary detection and make summary non-blocking (b45a578)

  • Publish llvm-cov coverage summary in job output (4da4861)

  • Harden chat integration test against nil chat ID (46680d5)

  • Expand integration coverage for groups, banlist listing, events, and file change notifications (df53991)

  • Expand integration coverage, enable CI code coverage, and harden event broadcast teardown (1ba4d41)

  • Expand integration coverage for auth/subscriptions/accounts and harden event teardown (c80db93)

  • Remove unsupported no-parallel and upload test diagnostics (01f0869)

  • Simplify test execution to single swift test run (2efaab6)

  • Run tests sequentially by suite to reduce integration flakes (d7c962c)

  • Guard disconnect path against App teardown in integration runs (d1ba7a0)

  • Avoid building WiredServerApp in default workflow (8705f10)

Refactoring

  • Split sync reservation helpers from transfers controller (fb5adf9)

  • Unify wired protocol spec (9e95dfb)

  • Split ServerController into domain-specific extensions (c2e84f5)

  • Reorganize sources into Core/, Models/, Controllers/, Database/ (914ddb9)

  • Improve coverage with focused core and domain model tests (f341597)

  • Reduce chat integration race by delaying second client login (c83abce)

  • Reduce integration teardown races by disabling auto cleanup (17a6f0e)

Testing

  • Harden macOS pipeline against flaky integration timing (1e3caa1)

  • Fix race condition in sendAndWaitMany tests (c2cea3b)

  • Expand wired3 controller coverage for bootstrap clients logs (86cc30e)

  • Expand file model and async connection coverage (f4ec7ab)

  • Harden flaky chat integration and expand connection coverage (8b7a504)

  • Deepen connection and p7 socket coverage (0289b7a)

  • Expand coverage for connection and p7 socket io (8e3a2f1)

  • Extend coverage for logger, p7 message, file manager and chats controller (7122e74)

  • Harden and massively expand coverage (86fd747)

  • Add IndexController unit coverage (3afb8e0)

  • Expand integration coverage for user status and board reactions (5330e2d)

  • Harden transfer integration coverage for upload/download flows (338d66a)

  • Expand network coverage and enforce project-only coverage gate (fe27916)

  • Expand TransfersController queue and run coverage (4ce8403)

[3.0-beta.14+27] — 2026-03-25

Bug Fixes

  • Enforce one reaction per user, fix persistence (ddcbf41)

  • Correct migration SQL for add_reactions privilege (563a483)

  • Migrate add_reactions privilege for existing accounts (54d1b2b)

Features

  • Emoji reaction system for board threads and posts (1c39f86)

  • Add reaction.emojis and reaction.nicks fields (6029, 6030) (c79e44d)

  • Include reactor nicks in reaction_list response (3d19c1a)

  • Include thread emoji summary in thread_list protocol message (c1e3375)

  • Implement emoji reaction system for board threads and posts (900b324)

[3.0-beta.13+25] — 2026-03-24

Bug Fixes

  • Use stored errno from Socket.Error instead of global errno (07d50e6)

Features

  • Add emoji reaction system to boards (15d9309)

  • Implement wired.log.* protocol + fix Logger re-entrancy deadlock (30e78f1)

Other

[3.0-beta.12+24] — 2026-03-23

Documentation

  • Split Wired 3.0 into features and security (8a8413a)

Features

  • Add chat typing indicator support (e18bf0e)

  • Add prefix matching to board and file search (a9ff661)

[3.0-beta.11+23] — 2026-03-20

Features

  • Implement server-side events and exhaustive event logging (ff4454a)

  • Add moderation actions and persistent ban list (7e467b4)

  • Add server-side board search protocol support (c47d594)

[3.0-beta.10+22] — 2026-03-19

Bug Fixes

  • Persist and reload strict identity toggle (e161366)

  • Preserve strict_identity in generated configs (59a8ecc)

  • Fix chat synchronization and ID handling (a98eae8)

[3.0-beta.9+21] — 2026-03-18

Bug Fixes

  • Fix board bootstrap seeding and global thread loading (ac03be1)

  • Fix public chat create/delete to reply wired.okay per spec (b0a291a)

  • Include stored password hash in read_user response (3d09753)

  • Don’t regenerate salt on permissions-only account edits (afe1286)

  • Guest login fails after permission edit (double-salted password bug) (f48bef1)

Features

  • Add restart prompt after binary update and initial admin password alert (ef065e2)

  • Implement wired.account.change_password on server (b3400ec)

Other

Refactoring

  • Rewrite README with user-friendly structure, security comparison, and protocol overview (b414848)

[3.0-beta.8+18] — 2026-03-17

Bug Fixes

  • Refine GeneralTabView — split versions into own section, fix labels and window height (a3257c9)

  • Restrict wired-identity.key to 0600, harden packaging (5e6e2af)

  • FINDING_F_016 — close TOCTOU window in delete/move/setPermissions (2db894f)

  • Address FUZZ_001, FUZZ_002; close A_012 and A_013 (988eefc)

  • Send builtinProtocolVersion in handshake instead of hardcoded “1.0” (52fe9a3)

  • Remove double-swap on enum field deserialization (8d8fcaa)

  • Revert auto-rehash that broke P7 key exchange (8e6530c)

Documentation

  • Document admin password setup and server identity (TOFU) in README (d734074)

  • Add final security audit report — 72 findings, 65 patched (d35084e)

Features

  • Add serverTrustHandler for P7 v1.3 TOFU compatibility (2f688f7)

  • Display P7 and Wired protocol versions in GeneralTabView (1a6ef8a)

  • Add server identity section to AdvancedTabView (TOFU) (c4a772f)

  • Forward serverTrustHandler to P7Socket in Connection (a62ea68)

  • FINDING_A_009 — implement TOFU server identity (P7 v1.3) (7808961)

  • Implement per-user stored salt key exchange (breaking, P7 v1.2) (f806993)

  • Add per-session password salt to key exchange (breaking, P7 v1.1) (ccfed72)

Other

  • Fix A_015 regression — reject NONE cipher clients with clear error instead of silent fallback (1664c40)

  • Fix FINDING_A_004 — salted SHA-256 for password storage (8732836)

  • Fix FINDING_A_014 — use dummy password on unknown user in key exchange (fcdf0d4)

  • Fix FINDING_A_014 — prevent username enumeration via timing (374f887)

  • Fix FINDING_Z_003 — enforce handshake read deadline to prevent thread-pool exhaustion (76c8182)

  • Update audit metadata for A_010, C_007, C_011, F_008, F_017, P_019, A_014, C_014, F_016 (76130e5)

  • Fix A_010/C_011/F_008, C_007, F_017, P_019 (6018a6e)

  • Update audit metadata for A_006, A_009, A_012, A_013 (dd485ac)

  • Fix FINDING_A_006 — protect nextUserID() with NSLock (38b848b)

  • Fix FINDING_P_017 — return nil for unknown P7 spec types (80ee91a)

  • Fix FINDING_P_010 and FINDING_P_015 — safe unwrap in P7Spec (14d8649)

  • Fix FINDING_P_008 — recompute length header after compression in writeOOB() (ec43e07)

  • Fix FINDING_C_012 — broadcast rate limiting (5/min per user) (9a26632)

  • Fix FINDING_C_002, FINDING_C_006, FINDING_C_013 — chat input validation and rate limiting (a7a20cc)

  • Fix FINDING_P_011 — replace force unwraps with nil-coalescing in logging (dbb02f2)

  • Fix FINDING_P_009 — log warning when P7Message name not found in spec (1bd4fd6)

  • Fix FINDING_F_014 — reorder deletePublicChat to DB-delete-first (2c4bd41)

  • Fix FINDING_F_012 — add maxDepth and maxEntries limits to recursive directory listing (83f43dc)

  • Fix FINDING_F_010, FINDING_F_011 — directory permissions and dropbox check (eb8192e)

  • Fix FINDING_F_009 — bounds check in FilePrivilege.init?(path:) (ae5ea85)

  • Fix FINDING_A_015 — reject NONE cipher to prevent plaintext credentials (e4651c7)

  • Fix FINDING_C_010 — add per-recipient offline message limit trigger to legacy migration (b569d8b)

  • Fix FINDING_P_013 — implement receiveCompatibilityCheck() validation (25be9df)

  • Fix FINDING_P_012 — implement version validation in isCompatibleWithProtocol() (37732a0)

  • Fix FINDING_C_008 FINDING_C_009 — private chat limits and nextChatID race condition (01b62ca)

  • Fix FINDING_A_005 — replace hardcoded admin password with random generation (ca09f77)

  • Fix FINDING_F_015 — filter search results inside dropboxes (7befced)

  • Fix FINDING_F_013 — prevent root directory deletion (74c1aeb)

  • Fix FINDING_A_016 — invalidate sessions on password change (581709e)

  • Fix FINDING_F_003, FINDING_F_004 — symlink resolution and root-path jail check (827ccc0)

  • Fix FINDING_P_016 — safe unwrap XMLParser init (af985d6)

  • Fix FINDING_P_006 — bound OOB read message length (66321fd)

  • Fix FINDING_P_005 and FINDING_P_014 (c0435d4)

  • Fix FINDING_A_002 — guard against nil client.user force unwrap crash (2a76c6a)

  • Fix FINDING_A_001 — rate limit login attempts per IP (b074806)

  • Fix FINDING_P_007, FINDING_P_020 — safe unwrap response.name and propagate cipher errors (0ababa1)

  • Fix FINDING_F_006 — prevent privilege escalation via receiveAccountEditUser (7dd47be)

  • Fix FINDING_F_005 — replace 25+ client.user! force unwraps with guard let (231309a)

  • Fix FINDING_C_001 — add lock to PrivateChat.invitedClients (c79eca0)

  • Fix FINDING_C_003, FINDING_C_004, FINDING_C_005 — eliminate force-unwrap crashes and race condition in ChatsController (6f17e44)

  • Fix FINDING_A_003 — remove password hashes from account listing responses (b91e453)

  • Fix FINDING_A_007 — block re-authentication when already logged in (f1ad3c8)

  • Fix FINDING_F_001 + FINDING_F_002 — path traversal hardening (cc54315)

  • Fix FINDING_P_002 + FINDING_P_003 — bounds checks and max field size in TLV parser (c3b7906)

  • Fix FINDING_P_001 — bound check on P7 message length to prevent OOM DoS (7c1fa79)

[3.0-beta.7+15] — 2026-03-13

Features

  • Add search_files privilege, migration, and auto-sync wired.xml (b962d37)

  • Add FTS5 file search index with periodic reindex and CLI flag (175ecfd)

  • Add –reload flag and hot-reload config support (70398ef)

Other

  • Ensure wired.xml is updated when package copy differs (7dd228e)

[3.0-beta.5+13] — 2026-03-13

Bug Fixes

  • Fix port parsing and enforce integer-only validation (4c18d85)

Documentation

  • Add Linux RPM and Docker usage/build guides (87bea5e)

Features

  • Add multi-stage image for wired3 runtime (fc5ab0d)

[3.0-beta.4+12] — 2026-03-13

Bug Fixes

  • Fix amd64 RPM architecture validation pattern (c03f675)

  • Prevent auto-install on refresh and keep uninstall effective (96a9daf)

  • Fix RPM workflow script generation without nested heredocs (6404685)

Features

  • Add optional RPM packaging artifacts to Linux CI workflow (93458e3)

Other

  • Use server version constants in wired.server_info (9615c22)

  • Document GRDB custom SQLite build flag for Linux (777f5d9)

[3.0-beta.2+10] — 2026-03-12

Bug Fixes

  • Fix sqlite3 nil contextual type errors in legacy migrations (32d958f)

  • Fallback to bundled wired3 hash when metadata hash drifts (d607fa1)

  • Hash plaintext password updates and normalize SHA-256 (de2e99f)

Features

  • Auto-update bundled wired3 with hash verification and rollback (3550ef3)

  • Migrate from Fluent/NIO to GRDB v6 (81d46c8)

Other

  • Work around missing sqlite snapshot symbols in Linux CI (1221a7a)

  • Remove obsolete sqlite-nio Linux compatibility shim (c6dcfd2)

[3.0-beta.1+8] — 2026-03-10

Bug Fixes

  • Fix build script (bf5f222)

  • Prevent LLM from echoing nick: prefix in chat responses (a8023f7)

  • Add explicit CodingKeys enums to fix build error in BotConfig (538fecc)

  • Encode nil optionals as null in generate-config output (7acaf70)

  • Don’t prepend nick to LLM input for board events (0527ead)

  • Format llmPromptPrefix variables before LLM dispatch (095a353)

  • Add useLLM branch and debug logs in BoardEventHandler (b4bbd46)

  • Route wired.board.thread_changed instead of post_added (851d70e)

  • Subscribe to board broadcasts after login (8da6e5f)

  • Import FoundationNetworking in all LLM providers (ce14369)

  • Fix build: restore parameterless init() on all config structs (afee059)

  • Fix two compilation errors (d53ed10)

Documentation

  • Update README with respondToConversation and respondInUserLanguage (e4ab71e)

Features

  • Configurable identity preamble via identity.identityPreamble (872dd41)

  • Structured identity preamble in system prompt (self-awareness) (04dbe7f)

  • Respond naturally after bot-initiated messages (respondAfterBotPost) (30cc00f)

  • Inject board threads into channel context for follow-up chat (94feed2)

  • Replace announceNewThreads with trigger-based board events (92e8449)

  • Add board_post trigger support with example (b24321d)

  • Add respondToConversation — follow active conversations (f09a7be)

  • Add respondInUserLanguage option (ab728a4)

  • Add comprehensive debug logging across the LLM pipeline (d88c2cd)

  • Implement multi-user context strategy (6 improvements) (c6ab807)

  • Add WiredChatBot-README.md — documentation complète (2dd1c05)

  • Add WiredChatBot — AI-powered chatbot daemon for Wired 3 (bd8065c)

  • Bootstrap default Upload/DropBox and Welcome board content (1c4deeb)

Other

  • Make config Codable resilient to missing/unknown fields (97e2ec8)

  • Translate WiredChatBot-README.md to English (276ecac)

[3.0+5] — 2026-03-07

Bug Fixes

  • Fix git safe.directory in containerized deb workflow (a31b303)

  • Fix Swift dependency copy in Linux deb workflow (1b591b5)

  • Fix Swift runtime lib path detection in Linux deb workflow (8cc2272)

  • Fix missing libswiftCore in deb package (ae2c7c0)

Documentation

  • Update README with Swiftly installation steps (5a0ad19)

  • Adopt unified 3.0+N versioning across targets (fec893f)

Other

  • Package default runtime files and bootstrap Linux paths (f637561)

  • Remove legacy Linux deb workflow (85f5ef1)

  • Harden Debian service user and working directory (4097dac)

  • Force bash shell in containerized deb jobs (6e7dbbc)

  • Build Linux deb packages in jammy Swift container (d8f56f8)

[3.0+999] — 2026-03-06

Documentation

  • Rewrite onboarding and clarify library/server version tags (88cf8be)

Other

[3.0+4] — 2026-03-06

Bug Fixes

  • Fix GitHub Action workflow for Linux distribution (83e1fd7)

  • Fix GitHub Action workflow for Linux distribution (4cd0d2a)

  • Fix GitHub Action workflow for Linux distribution (45358a6)

  • Fix GitHub Action workflow for Linux distribution (accc5e8)

  • Fix GitHub Action workflow for Linux distribution (5b376e3)

  • Fix Linux SQLite symbol mapping for CSQLite (e4e87f3)

  • Fix Linux SQLite module conflict with sqlite-nio (cc8fd98)

  • Fix SQLite3 dependency for Linux (3b784b1)

  • Fix build script (b9450bf)

  • Fix privilege refresh broadcast matching for logged-in users (ee64fd0)

  • Preserve empty string fields when decoding P7 messages (268bf27)

  • Fix upload queue stalls and enforce transfer I/O deadlines (32bb16c)

  • Fix LZ4F version type for Linux build (9609d36)

  • Fix compression pipeline order for LZ4/LZFSE and DEFLATE (fc3841e)

  • Fix Linux build: use POSIX write in TransfersController (e395dc3)

  • Fix NSInterger issue (0d38bc2)

  • Fix github CI build action (80) (5f681a4)

  • Fix github CI build action (79) (a5b733e)

  • Fix github CI build action (77) (615027f)

  • Fix github CI build action (77) (196beab)

  • Fix github CI build action (76) (13e5ba4)

  • Fix github CI build action (75) (2929edd)

  • Fix github CI build action (75) (812fbcb)

  • Fix github CI build action (74) (0a2a882)

  • Fix github CI build action (73) (de71408)

  • Fix github CI build action (72) (761ea9b)

  • Fix github CI build action (2) (36c5222)

  • Fix github CI build action (2) (cd0d391)

  • Fix github CI build action (2) (c8a0157)

  • Fix github CI build action (2) (3697544)

  • Fix github CI build action (2) (64ac0a6)

  • Fix github CI build action (da24849)

  • Fix files index (2) (8a63b05)

  • Fix files index (c755538)

  • Fix handshake encryption negociation and add new digest (HMAC, Poly1305) (2) (7c74623)

  • Fix handshake encryption negociation and add new digest (HMAC, Poly1305) (909abe1)

  • Fix executable package for wired3 (07f9688)

  • Fix package (e7d63ff)

  • Fix ping timer (971f667)

  • Fix test URL (bdaec62)

  • Fix clientInfo() (b607e55)

  • Fix version in Xcode project (fb389d7)

  • Fix XMLParser init (96f86be)

  • Fix namespace error (e0be92b)

  • Fix namespace error (4c6b817)

  • Fix SPM deployment targets (9dad2d5)

  • Fix display bug on iPhone 6 (78d6e64)

  • Fix wired.chat.me message (b35c171)

  • Correct some typos (f48495a)

  • Fix compatibility check (551e462)

  • Fix project setting (signing) (d0387d7)

  • Fix fix fix fix (9be81b1)

  • Fix fix fix (81711bb)

  • Fix Xcode issue (4e64bd8)

  • Fix race condition in Boards/threads loading? (888d192)

  • Fix remove transfer from context menu (0ebf337)

  • Fix github CI (ce3cc0a)

  • Fix message view bug with initials text color (1b4d77b)

  • Fix user idle status in chat list (6cc3637)

  • Fix transfer progress (9044f02)

  • Fix missing MessageKit framework in build dependencies (553ff0f)

  • Fix socket read (yay) (72a9d10)

  • Fix connection close when closing tab (266925d)

  • Fix plist (7612675)

Documentation

Features

  • Add GitHub Action workflow for Linux distribution (547a047)

  • Add WiredServerApp and switch advanced crypto config to text modes (9114c07)

  • Implement boards server-side handlers and stability fixes (0aa95e8)

  • Add boards data models (WiredBoard, WiredThread, WiredPost, BoardsManager) (4f8e61a)

  • Persist group account color and expose it in account messages (ff3a4c8)

  • Implement private chat invitation/decline flow and tighten chat membership checks (05d57f5)

  • Implement account change broadcasts and privilege reloads (a89be53)

  • Implement account management and transfer error handling (45991f6)

  • Implement recursive file listing for folder downloads (db20073)

  • Implement directory subscribe/unsubscribe and change notifications (8851c31)

  • Support Apple bv4* LZ4 header variants on Linux (5e8b0c1)

  • Add detailed LZ4/compression debug logging (039777f)

  • Align Linux LZ4 format with Apple Compression (ab8e436)

  • Add Linux support for P7 compression algorithms (383d2f5)

  • Add config and persistent server settings (a052da4)

  • Add ECDSA password challenge support (5dd8398)

  • Add SHA3-256 support (6e3d307)

  • Add ChaCha20 cipher support (86c424a)

  • Add missing swift-argument-parser in package (3) (c3119bd)

  • Add missing swift-argument-parser in package (2) (cac8540)

  • Add missing swift-argument-parser in package (ac069eb)

  • Add wired3 to SPM (e8c76ea)

  • Add wired3 to SPM (747caa8)

  • Add simple send method to BlockConnection (3028dd4)

  • Add reconnect method (public) (a676a54)

  • Add reconnect method (28ee3a4)

  • Add test for block connections (092f9e3)

  • Add block connections based on wired.transaction (9e17d20)

  • Add checksum support to P7Socket (oob data) (f051b0b)

  • Add checksum support to P7Socket (fix cipher config) (53d9645)

  • Add checksum support to P7Socket (1acbf78)

  • Add support for left/join messages (add22f1)

  • Add camera support (a4585de)

  • Add iOS support to WiredSwift framework (4aecaee)

  • Add user info panel (83ac5d0)

  • Add UUID support (7b5b0df)

  • Support for ieee754 double (d0c0b96)

  • Add message time in conversations list (34eb71d)

  • Add transfer buttons (acd5bce)

  • Add transfers controller and view (a211af5)

  • Add minimal files browser (7589e85)

  • Add Tab support for messages, boards, files, etc. views (f3b8255)

  • Add resources split view + icon (9453d3c)

  • Add Preferences window (empty) (a7e33ed)

  • Add minimal Wired error support (864b84c)

  • Add gitignore (142e2cb)

  • Add LICENSE & minimal README (c7a922c)

Other

  • Update Package.resolved lockfile (6d763f1)

  • Better UI layout (527a899)

  • Adopt macOS Settings-style split view for WiredServerApp (e488fc2)

  • Bundle original Wired Server icon into app package (b93f741)

  • Bootstrap runtime working directory and server settings paths (42d180f)

  • Send account colors in list messages and set bootstrap defaults (47f1fd6)

  • Harden P7 numeric serialization to avoid UInt32 cast crash (6cd32ec)

  • Always include account color in privileges payloads (4f33bb5)

  • Handle account color enum and broadcast user colors (f4e3680)

  • Fix create_directory permissions and behavior (e5fa501)

  • Update READEME (9d9b8be)

  • Remove unused SWCompression dependency (eb98d9f)

  • Clean temporary LZ4 debug logs (69efd12)

  • Force deterministic LZ4 store framing across platforms (6ea8a65)

  • Use Apple-compatible stored LZ4 framing on Linux (729bb50)

  • Update gitignore (e549c74)

  • Make Linux LZFSE optional via runtime detection (9c89de9)

  • Vendor SocketSwift no-TLS fork for Linux (ae02d20)

  • Minor fixes (272d4b7)

  • Clean ignore (683ed65)

  • Update gitignore (91bc46a)

  • Before transfers queue (c7ca90d)

  • Server settings (22ad318)

  • Before lock (44dc146)

  • Remove useless print (55c87ad)

  • Testing basic semaphores (3) (810ac7e)

  • Testing basic semaphores (2) (bb9b3a8)

  • Testing basic semaphores (1271055)

  • Transfer round trip OK (c4beaf0)

  • Upload support (274c737)

  • AES IV is also derived from ECDH key (31e5202)

  • Update Xcode project required settings (f33803d)

  • Clean project from warnings (f0f0e39)

  • Wrap ECDSA in a class and clean key exchange (22b17e6)

  • Clear SPM package (9d91066)

  • Try to replace RSA/AES by ECDH/AES (3) (b27c094)

  • Try to replace RSA/AES by ECDH/AES (2) (0f96c11)

  • Try to replace RSA/AES by ECDH/AES (de77576)

  • Switch from GRDB to Fluent ORM for Linux support (3) (1a2abf1)

  • Switch from GRDB to Fluent ORM for Linux support (2) (453c9ed)

  • Switch from GRDB to Fluent ORM for Linux support (6de38fa)

  • Updated wired3 server + a lot of fixes (1e95763)

  • Enforce SHA256 usage for password hashing (2d9f272)

  • Make Wired macOS Swift client a test platform (f8a63c8)

  • Remove banner from server_info for now (80595b3)

  • Maybe Wired 3 (effaab1)

  • Reconnect test passed (da5a28c)

  • Better socket diconnect (baa716e)

  • Make BlockConnection class public (4ef1650)

  • Continue relay message to delegates (b694dcf)

  • Thread safe block connection (755792f)

  • New delegate methods in Connection class to handle app name, version and build number (95cf5c1)

  • Load spec from URL (fix typo) (da05d03)

  • Load spec from URL (b9ce9ed)

  • Update github workflow (6) (18f39f7)

  • Update github workflow (5) (0d2a153)

  • Update github workflow (4) (30a1602)

  • Update github workflow (3) (1277c2a)

  • Update github workflow (2) (53464fd)

  • Update github workflow (b59fa06)

  • Better package structure (feb7ea9)

  • Organize somes files (0f23665)

  • Better debug scenario (72fa244)

  • Try to use CryptorRSA (only on Linux) (31e727c)

  • Clean some cached files (3f0f062)

  • Update Xcode project version to 1.0.5 (a3609b1)

  • Clean repo and remove macOS and iOS targets (b05beda)

  • Import FoundationXML (a1db61d)

  • Remove CommonCrypto (seems unused) (1ea6f29)

  • Remove BBCodeString (2605769)

  • Big cleaning: remove the Wired macOS target (456ec5f)

  • Minimal boards + WiredSwift fixes and SPM (f6fe458)

  • Rollback and remove Linux platform (e05fc8b)

  • Rollback and and Linux platform (470168a)

  • Try without any platforms in SPM manifest (6f37bf1)

  • Try to add SPM support (9ee3712)

  • Full fr localisation + fixes (6c8040e)

  • Fr localisation + new send button (7b09f2f)

  • Wired iOS: Add onboarding and review design (f16daa5)

  • Wired iOS: prevent sending empty message with text attachment (cf57e59)

  • Reimplement P7Message.xml() method with AEXML library (very handy to debug messages in console) (a8a4475)

  • Wired iOS: fix image picker for user icon and split view on iPad (222c9e4)

  • Wired iOS: support idle status in users list (b087fd5)

  • Wired iOS: support disconnect, kick and ban messages in chat (15a6fbd)

  • Wired iOS: support topic (9f4890d)

  • Wired iOS: clean and refactor (372a112)

  • Find a lot of strings that was not translated. (a83ae9b)

  • Added localiz. for calender strings (d8ec810)

  • Added german localisation for calender entries. (df1e43b)

  • Delete project.pbxproj (012ea3d)

  • Update UsersViewController.swift (b412c8b)

  • Added german localisation for calender entries. (d0aa331)

  • Fixed unreadable colors in Darkmode for Userlist. Added Theme change detection. (83a1df6)

  • Added missing console localization (ff8c522)

  • Fixed user view status color in darkmode. Prepared Theme detection (dark/light) for nickname color change. (87c82ce)

  • Wired iOS: clean and refactor (21bb764)

  • Clean repo (6d24c08)

  • Wired macOS: display received images in chat and messages (11c0d04)

  • Minor iOS fix + framework adjustments (bf1ee43)

  • Try to link framwork for device (edfce2c)

  • Minimal iOS client (16de950)

  • German Translation completed (f4382c4)

  • Join public chat from iOS simulator works (8490be3)

  • Merege latest changes (c5be3e2)

  • Added german translation partly. Added Sparkle Update Framework. (60041e2)

  • Remove MessageKit(macos) (c1f0dfa)

  • Fixes fixes fixes (5040e8b)

  • Banner is back in main window toolbar (6a034ce)

  • Search race condition (0b504c8)

  • User info displays in a popover (44cb6ba)

  • Better menu validation of sidebar items (01f42de)

  • Better auto-reconnect (62a43b1)

  • Safe disconnect when ping failed or network is unreachable (7841128)

  • Try auto-reconnect every 10 sec when disconnected (fix #4) (f858f64)

  • Missing snippet in README (1b6d110)

  • Missing snippet in README (0fbd726)

  • Auto-connect bookmark at startup fix #1 (e788a64)

  • Read boards (0f7c98b)

  • Load and display thread posts (f2f449b)

  • Thread row has dynamic height (fffaa6e)

  • Load threads for board (a296ff0)

  • Minimal boards loading and UI (30b1769)

  • Files navigation history and better sync of list and browser views - fix #12 (9e59190)

  • Xcode cleaning (c1834a0)

  • Better double unpack (ca93a84)

  • Minimal server info (0a660a1)

  • Review transfers and files buttons design (4f46eaa)

  • Better unexpected disconnect handling (62a8f41)

  • Clean logs (7339387)

  • Upload file working (8df516c)

  • Better transfers controls (7882d5a)

  • Better connections managment (edcd074)

  • Better window management (ae84126)

  • Resumable download transfers + Disconnect/reconnect (74f3f4d)

  • Complete server infos (ab4e6a1)

  • Update user icon (890faa5)

  • Better transfers error support (f86e8d9)

  • Better socket error support (c71263e)

  • Better emoji substitution (6bce5f0)

  • Update chat pref pane with emoji substitutions (449cfbb)

  • Minimal emojis substitution support (3985910)

  • Local notifications support (55c19a8)

  • Minimal unread support (0c4b658)

  • Minimal message suppor (be40fc2)

  • Better window management (2ab4661)

  • Minor fixes (bd64e0c)

  • Prepare upload transfer + try deflate socket without success (0b51dd6)

  • Migrate Transfer class to Core Data (f6b498a)

  • Better download finish (4e3a4b2)

  • First working transfer (0d2e58a)

  • Working on transfers, not that easy, will take some time (ca073ce)

  • Prepare transfers tableview (0864339)

  • Update github action setup (3) (9e75d89)

  • Update github action setup (2) (4d42212)

  • Update github action setup (eef40ed)

  • Organizing project + comments (c6faf6e)

  • Make chat input the first responder, always (1f3c6a5)

  • Minimal bookmarks support (Core Data + Keychain) (38bee97)

  • Disconnect when closing window/tab (8632d67)

  • Resources sidebar and window tabs (60758cd)

  • Display status in chat user list (439690c)

  • Create workflow (b5d034a)

  • Better remote connexion support (2c456b6)

  • It works, renamed to WiredSwift (b44dcef)

  • Initial Commit (50d3a1e)

Refactoring

  • Improve WiredServer app UX and launch wired3 at login (584b861)

  • Improve Linux LZ4 interop using frame format (14f4e82)

  • Replace DataCompression by SWCompression for Linux support (2a63c26)

  • Move new delegate methods to ClientInfoDelegate (29a6c1e)

  • Move RSA in separated class (fbab769)

  • Move SparkeFramework from WiredSwift to Wired (6856395)

  • Reduce warnings and fix Swift 5 deprecated in framework (5dab878)

  • Rename and refactor (4d430aa)

Wired Client

GitHub

Changelog

All notable changes to Wired Client are documented here. Format follows Keep a Changelog.

[3.0-beta.21+38] — 2026-04-13

Bug Fixes

  • Fix remote file drag and drop move/link behavior (326ec0c)

  • Handle folder overwrite prompt correctly on drag-and-drop (6936447)

  • Skip false overwrite prompt when dragging folders from server (00724f0)

Features

  • Add interactive files breadcrumb and server stats (cf1d7e2)

  • Sync Wired file labels with macOS Finder color tags (600740d)

Other

  • Preserve executable metadata in file browser and uploads (c5a4876)

  • Add icons to context menus (193035f)

  • Add icons to context menus (0696638)

  • Write modern Finder color tags on downloads (c6b9068)

[3.0-beta.20+37] — 2026-04-11

Bug Fixes

  • Fix swiftlint line length error in ChatAttachment (3ef725e)

  • Fix board post lint issues (667dadf)

  • Fix easter egg overlay glyph bytes (f835adc)

  • Fix file preview selection in column view (32fa956)

Features

  • Add label picker to file context menus and fix column view UI (d5dff97)

  • Add board attachment composition and preview UX (a9ac70e)

  • Add Quick Look for message images (c744b09)

  • Add attachment support to chats and private messages (9396453)

  • Add Connection menu and Window toolbar shortcuts (b12e12d)

  • Show directory counts in tree size column (faf794a)

Other

  • Enrich FilePreviewColumn with label and sync pair info (1b61eee)

  • Tint Finder folder icons with file label color (a86cb48)

  • Persist private message attachment metadata (f5edc29)

  • Restore private message avatar padding (bd5362c)

  • Work around tree header overlap on first row (6fcf1ad)

  • Persist tree view sort preferences (3722f9d)

  • Persist preferred files view mode (23a0207)

  • Relax SwiftLint CI severity (7e4ed9d)

Performance

  • Optimize private message conversation rendering (b06b856)

Refactoring

[3.0-beta.19+36] — 2026-04-08

Bug Fixes

  • Make bookmark queries Xcode 16.2 compatible (f780864)

  • Remove unsupported toolbar background helper call (b66120e)

  • Fix public chat deletion sending wrong chat ID (420b1ba)

CI

  • Use dedicated scheme for app unit tests (b403796)

  • Select latest Xcode in GitHub Actions (5150e61)

Documentation

  • Rewrite README for Wired Client (a5f4dd0)

Features

  • Add README screenshots (5ebdef0)

  • Add community docs and changelog tooling (5663ff3)

  • Add Quick Look previews for remote files (3b5e71e)

  • Focus searchable fields with Command-F (4353f6a)

  • Add sortable columns to files tree view (620e47e)

  • Add GitHub Actions coverage for app unit tests (fbb6bad)

  • Add wiredsyncd and app unit test coverage (2a11c16)

  • Add SwiftLint CI workflow (836c19d)

  • Show bookmark name in Chat History connection list when available (d86c63b)

  • Add chat history archiving, browsing window, and live chat integration (9049b4a)

  • Add hidden /generate debug command to inject 100 fake messages (e5e5987)

  • Add windowed message display with async load-more (51b634d)

Other

  • Update README wording (6d322a8)

  • Restore toolbar glass helper and fix Xcode 16.2 parse error (3a9f791)

  • Disable structural lint rules for legacy connection controller (02e7943)

  • Align test deployment targets with macOS app (59ce251)

  • Relax SwiftLint structural limits for legacy files (692faa3)

  • Rename @main app file (77659f7)

  • Apply low-risk SwiftLint fixes (ca5ad75)

  • Remove unused Carthage artifacts (dc02665)

Performance

  • Optimize chat message rendering with pre-calculated grouping flags (4f2f0f3)

  • Optimize chat rendering performance for large message counts (92fdbb4)

Refactoring

  • Split wiredsyncd daemon into multiple files (b455fe4)

  • Refactor feature folders and split FilesView (a4a0228)

[3.0-beta.18+35] — 2026-04-06

Bug Fixes

  • Avoid sidebar deadlock on disconnect (2db0a51)

  • Fix command autocomplete for no-arg commands (b2ca53c)

Features

  • Add tracker browsing UI (bbb2257)

  • Add server monitor UI (dcdaf96)

  • Show active transfer progress in user info (40f1aca)

  • Implement /clear chat command (d7f2320)

  • Implement /afk chat command (cb329b0)

Other

  • Anchor tracker info popover to sidebar rows (5d5fc59)

  • Refine tracker sidebar navigation (1b662bb)

  • Align tracker settings UI with tracker URLs (aa238c1)

  • Remove client-side idle timer (dae54e5)

  • Handle /broadcast in chat commands (e3908ed)

Refactoring

  • Improve bookmark and tracker form state handling (413206b)

[3.0-beta.17+33] — 2026-04-02

Bug Fixes

  • Sign wiredsyncd with hardened runtime (4467632)

  • Make wiredsyncd paths test-configurable (cbf60e8)

  • Stabilize wiredsyncd sqlite store (905c5d4)

  • Secure wiredsyncd credentials in keychain (952a649)

  • Sync wired.xml in Wired-macOS bundle with quota fields (7031/7032/7033) (04f490c)

  • Fix bidirectional sync loop, missed syncs, and deletions (daemon v11) (b717a5b)

  • Log daemon version update outcome instead of silently swallowing errors (57d249a)

  • Fix daemon startup timeout on sync folder rename (6b93107)

  • Fix rename errors for sync folders (3ccce97)

  • Make WiredSyncPairDescriptor internal to match WiredSyncDaemonIPC visibility (18134d5)

  • Stabilize sync pair policy and daemon reconciliation (1921148)

  • Fix GIF cropping by disabling NSImageView intrinsic content size (30db536)

CI

  • Point wiredsyncd CI at WiredSwift main (6fd4c1f)

Features

  • Add wiredsyncd GitHub Actions workflow (d6fb4d7)

  • Implement persistent wiredsyncd pair sessions (d548c2f)

  • Rename packaged app to Wired Client (3587baa)

  • Implement quota fields — max_file_size_bytes, max_tree_size_bytes, exclude_patterns (daemon v12) (ad926fd)

  • Add folder rename in FileInfoSheet with sync pair update (173d0fa)

  • Add wiredsyncd integration and sync pair reconciliation (08b9a0f)

  • Add client sync folder support and standalone wiredsyncd daemon (43c8596)

  • Display large emoji for short emoji-only messages (3179506)

  • Animate GIF images in ChatRemoteImageBubbleView on macOS (b2d8119)

Other

  • Pin WiredSwift sync branch in wiredsyncd CI (3eea842)

  • Set wiredsyncd nick explicitly (789becd)

  • Modernize FileInfoSheet with card-based layout (160a6c5)

Refactoring

  • Consume shared wired protocol spec (976d150)

[3.0-beta.15+28] — 2026-03-26

Bug Fixes

  • Fix toolbar layout on macOS Sonoma by scoping .searchable() to boardsList column (3ec0624)

  • Fix stale binding in ChatInputField coordinator causing text to appear in wrong chat (0c120f9)

  • Replace delete-all/reinsert with upsert to fix SwiftData crash on Sonoma (e4bf24f)

[3.0-beta.14+27] — 2026-03-25

Bug Fixes

  • Fix deferred shake animation never playing on thread open (5ab1baa)

  • Hide scrollbar in emoji picker for cleaner look (97bab86)

  • Delay hover popover by 500 ms to avoid blocking clicks (29d2744)

  • Implement real summary popover + clean up dead code (7493d3d)

  • Update topReactionEmojis before reactionsLoaded guard (d122a0b)

  • Refresh after toggle without breaking broadcast update (6c7310d)

  • Show reaction bar immediately without waiting for async load (d71ecf4)

  • Update bundled protocol spec with reaction additions (2933766)

  • Sync protocol spec with reaction additions (a91e493)

Features

  • Emoji reaction system for board threads and posts (c17eb36)

  • Deferred shake animation on thread open (48bc7b6)

  • Unread badges + shake animation for incoming reactions (c7f6d5c)

  • Add Board Reaction Received event with sound, dock and notification (1bea72c)

  • Add reaction.emojis and reaction.nicks fields (6029, 6030) (4f7f702)

  • Add search field to emoji picker (8d3a5ab)

  • Full categorised emoji picker with sticky section headers (e1729d4)

  • Replace summary button with hover popover on chips (cebd011)

  • Display reactor nicks in summary popover (8a8332b)

  • Parse thread emoji summary from thread_list, keep in sync with broadcasts (718d4ba)

  • Improved UI — inline controls, emoji picker, thread list preview (f325441)

  • Implement emoji reaction system for board posts (743d1f7)

Other

  • Minor fixes to thread/post editor (9e61537)

  • Package resolved update (e1f5cb8)

  • Remove .scrollIndicators(.hidden) from emoji picker scroll views (5409fad)

[3.0-beta.13+25] — 2026-03-24

Bug Fixes

  • Auto-focus ChatInputField when isEnabled transitions false→true (956a274)

  • Sync NSTextView editability with isEnabled and fix composer placeholder (4d54095)

  • Route join/leave/nick events to the correct chat instead of public chat (22e3ca4)

  • Retry up to 3 times on transient connect errors (EHOSTUNREACH) (31645de)

Features

  • Implement wired.log.* client runtime and ServerLog settings view (1c34c74)

  • Persist scroll position in FilesView tree and column views (39e8a6c)

  • Persist selected ServerSettingsCategory across tab switches (e03180e)

  • Persist smart board selection across tab switches (2f025e6)

  • Preserve board and thread selection across tab switches (497441d)

  • Preserve private message composer draft across tab switches (6f81bb2)

  • Preserve chat composer draft across tab switches (c3703f0)

  • Add content marging to chat scroll indicators (1c7cad8)

Other

[3.0-beta.12+24] — 2026-03-23

Bug Fixes

  • Fix command suggestions panel appearing below the window (0b33349)

  • Fix image bubble layout, polish typing-to-image morph animation (1a23d0f)

  • Fix delayed loading of server events (bbddfc0)

Features

  • Add keyboard navigation to slash-command autocomplete (ced20ca)

  • Add ChatCommand enum and slash-command autocomplete in composer (86c0225)

  • Add delay to chat topic mouse hover (8f819a2)

  • Add action to create/delete user and group accounts (0073aa9)

  • Add chat typing indicator UI and client handling (6af559f)

Other

  • Display image bubbles in private message conversations (5ba4cd2)

  • Join public chat with double-clic (6f6ef09)

  • Handle Enter key to apply command autocomplete suggestion (51c5768)

  • Move chat row context menu to list-level selection context menu (b727b7c)

  • Refine chat typing transcript behavior (5e8b3e2)

  • Polish chat typing indicator bubble (826a751)

  • Checkpoint typing handoff polish (8f5bff0)

  • Checkpoint typing bubble morphing (1a41fdb)

  • WIP typing indicator transcript integration (f9d7501)

  • Refine chat typing indicator bubble UI (2751bc6)

[3.0-beta.11+23] — 2026-03-20

Features

  • Implement client events view and live event support (9296e4a)

  • Add moderation UI and ban management (37586c1)

  • Add file navigation progress indicator (815e9ec)

  • Add transient chat search progress indicator (93b5182)

  • Add board search UI and client integration (b4c17a0)

  • Add chat search and fix empty detail layout (ac908a2)

  • Add message conversation search and filtering (b521bd3)

Other

  • Refine board and message search progress indicators (0ff4413)

  • Minor layout adjustment on boards list bottom bar (101438c)

  • Move selected file view type into files view model (19ba6f8)

  • Add searchable toolbar for chats, messages, boards and files (172d4ac)

[3.0-beta.10+22] — 2026-03-19

Bug Fixes

  • Fix Sonoma main window toolbar crash (b0a695f)

Features

  • Add hover popovers to message timestamps (d5f3683)

  • Add timestamps to private messages (630ded0)

  • Add inline chat timestamps (b9e053e)

  • Add board unread actions (7a2111c)

Other

  • Minor change (3678156)

  • Refine join chat view (fffdaff)

  • Hide private chats section when empty (3da80ef)

  • Refine ChatTopicView layout (7c58578)

  • Surface chat operation failures in the client (871639b)

  • Timestamp chat messages (6544ce9)

Refactoring

  • Refactor SettingsView: replace custom components with native SwiftUI Form (af118b1)

[3.0-beta.9+21] — 2026-03-18

Bug Fixes

  • Fix 46 compilation warnings, SwiftUI runtime warnings, and public chat sheet (dad04b5)

  • Fix private messages sent to self instead of recipient (b9aabb0)

  • Fix transfers toggle button color in DM (7b6ce09)

  • Fix password issue (a184434)

  • Clear stale keychain password on auth failure (88a5916)

  • Don’t send password on permissions-only edits (56df6e1)

Features

  • Add user confirmation dialog on server identity change (944887d)

  • Implement change password UI (wired.account.change_password) (e173adf)

  • Add clear button on password field (d12d479)

Other

  • Refine layout of MessagesView (bec615c)

  • Refine unread badges in chat lists (90eef4c)

  • Match private message layout to chat view (027f67f)

  • Refine chat topic header layout (e0db04d)

  • Align edge fade with container background (fd2c90f)

  • Refine chat edge fade and scroll indicator inset (8f95251)

  • Remove automatic keychain clearing on auth failure (c0f5092)

  • Remove passwordExplicitlySet workaround (c518132)

  • Some liquid UI experiments (450f1fa)

Refactoring

  • Improve boards bootstrap, auto-read threads, and chat/board UI refinements (821c2bb)

[3.0-beta.8+18] — 2026-03-17

Bug Fixes

  • Constrain ServerInfoView width, center content, add top padding (9e5f324)

  • Improve ServerInfoView layout — breathing room, two-column grid alignment (7838328)

  • Fix duplicate Error Log/Settings menu entries (b889d54)

Features

  • Add missing file (dc54048)

  • Show P7 and Wired protocol versions in ServerInfoView and UserInfosView (92d3cec)

  • Add server identity badge to ServerInfoView (TOFU) (abd7a2f)

  • Implement client-side TOFU for server identity (A_009) (cd4b087)

Other

  • Some experiments around liquid glass design (13db977)

  • Minor layout fix (2d01f2e)

  • Minor layout fix (10cfef7)

  • Refine chat topic UI, permissions, and iPad/iPhone navigation behavior (eaae99c)

  • IOS cross-platform fixes (layout, boards, navigation) (254da3d)

Refactoring

  • Refactor app shell and settings for iOS cross-platform support (f2166d7)

[3.0-beta.7+15] — 2026-03-13

Bug Fixes

  • Clear search mode when navigating history (b89e029)

  • Preserve search results when switching between column and tree views (0e5172e)

  • Fix column view not refreshing after permission grant (63dc65b)

Features

  • Add file search with wired.file.search protocol (6e10bdf)

Other

  • Adjust toolbar red badges vertical position by 2px (3ddee5f)

  • Harden ServerInfo loading for slow links and reconnect (e97eecc)

[3.0-beta.6+14] — 2026-03-13

Bug Fixes

  • Fix download queue failure on zero-byte files (df79662)

  • Fix ServerInfo refresh when server metadata changes (46bbf11)

  • Fix chat unread badge when active chat tab is foreground (1d28825)

Other

  • Update live identity sync and refine sidebar Connect behavior (9f62c4a)

Refactoring

  • Improve server settings autosave UX while typing (42dfcd5)

[3.0-beta.4+12] — 2026-03-13

Bug Fixes

  • Fix server info UI refresh on wired.server_info (e93776e)

Features

  • Implement message conversation deletion with confirmation (d8d6d48)

[3.0-beta.2+10] — 2026-03-12

Bug Fixes

  • Fix boards layout with HSplitView (7fc28cf)

  • Fix compilation error: move lineWidth into StrokeStyle (f58a455)

  • Fix blue stroke appearing on non-future messages (2e56e27)

  • Fix crash when selecting text in chat bubbles (e3b4047)

  • Fix duplicate public chats on connection (0791346)

Features

  • Add chat highlights settings and bubble color previews (fbb21fa)

Other

  • Splited view layout fix in v26 (e322f42)

  • Update bundle ID and fix keychain issue (1e3a136)

  • Remove tracked .DS_Store files and keep them ignored (2db1129)

  • Refine grouped message spacing in chat and PM lists (51d64db)

  • Group consecutive messages by sender in chat and PM views (c73caaf)

Refactoring

  • Improve chat/message bubbles, unread handling, and new message animations (85defeb)

[3.0+5] — 2026-03-06

Bug Fixes

[3.0+4] — 2026-03-05

Bug Fixes

  • Fix private messages conversation madness (47c826a)

  • Fix boardPostAdded event not firing on replies for unloaded threads (3406524)

  • Stabilize new-connection sheet routing and close confirmations (9d632d1)

  • Fix SwiftData store location and legacy migration (fa0eaa8)

  • Fix SwiftData store path for non-sandbox macOS builds (9d161ae)

  • Fix chat history navigation with Cmd+Up/Cmd+Down (20bf18e)

  • Fix stale connection error alert state (c4be982)

  • Fix optional user status handling and settings notifications (c4fd2c4)

  • Fix Files tab initial load race in SwiftUI (c441414)

  • Fix download conflict policy and transfer resume UX (68f1687)

  • Stabilize AppKit file browser tree/columns and Finder drag-drop (521b965)

  • Fix file double-click download gesture in tree and columns (19213d7)

  • Fix clear transfers persistence in SwiftData (6341c5f)

  • Fix tree/columns sync to avoid file_not_found on file selection (5a62ade)

Features

  • Add Events settings panel and configurable event actions (b0f4cda)

  • Add support for boards/threads drag and drop WIP (f0795d2)

  • Add board support (76559e0)

  • Add per-bookmark nick/status overrides and tighten close/quit prompts (e13273d)

  • Add unread badges to chats and messages toolbar items (735d123)

  • Implement persisted private messages/broadcasts and messages UI refactor (05f9241)

  • Add wired color picker and colorize user nicknames (620244e)

  • Show account color permission even when spec omits it (38bb7db)

  • Add private chat UX flow with invitations, accept/decline, and cleanup on leave (d533d8b)

  • Add server settings accounts UI and transfer error surfacing (bf71e61)

  • Add transient retry for early network connect failures (4124b19)

  • Add quit confirmation when transfers are active (835f298)

  • Add icons and help text to transfers buttons (789c63e)

  • Add animated transfers badge and auto-open drawer on activity (d18b9a7)

  • Add transfer reveal actions and context menu support (924e96d)

Other

  • Update gitignore (d07481e)

  • Update Info.plist (00ebcb4)

  • Migrate settings to dedicated preferences window (252da7e)

  • Refine Events settings table layout and dynamic pane sizing (be00e11)

  • Board/thread drag-drop transferable refactor (bddcf81)

  • Restore MessagesView changes from saved boards stash (f0085fb)

  • Boards UX and drag-drop refinements (3a23a98)

  • Stabilize tabs/sidebar behavior and window chrome experiments (a58e45f)

  • Right-align permission toggles in settings list (789eefc)

  • Remove searchable from server accounts settings to avoid toolbar crash (990786d)

  • Group account permissions by category in settings (8bcf2e4)

  • Colorize account list rows from wired.account.color (7a36f4a)

  • Parse account color enum in permissions and user updates (e0bb6cc)

  • Ensure public chat 1 is selected when chat view appears (392d71a)

  • Enable text selection in chat messages (0b37100)

  • Handle internal wired3 links and make chat URLs clickable (864efbf)

  • Wired 3: support remote folder creation from UI (ae1315b)

  • Wired 3: improve files navigation and multi-selection delete (bb2ab09)

  • Handle account change broadcasts in Wired 3 settings (254aab2)

  • Wired 3: add remote folder history and dynamic tree root (24202b4)

  • Wired 3: checkpoint permissions fichiers et UI settings/comptes (648c27a)

  • Persist main window frame across launches (7a207d5)

  • Update default compression algo to LZ4 (9b8a05f)

  • Use server name and confirm before remove (0accb89)

  • Enable folder download actions and Finder drag export (9e4ff19)

  • Harden transfer worker for directory upload retries and ping handling (4ee2888)

  • Update bookmark transfer security defaults (40e15c8)

  • Use bookmark security settings in TransferWorker (ea7cdb7)

  • Handle directory subscription events and ignore stale file_not_found on delete (e81e9af)

  • Better preview layout (ed5079b)

  • Polish files browser selection and drag export behavior (33b4a57)

  • Rework remote file browser with tree mode, resizable columns, and Finder-style preview (4e2ec47)

  • Before transfers queue (cd010b9)

  • Wired 3 client (bb33557)

  • Conform to ClientInfoDelegate and returns right client infos (8eab40d)

  • Separated from original repo nark/WiredSwift (87f4d88)

Refactoring

  • Refactor settings window UI (ea485c6)

  • Improve chat input with multiline autoresize, history, and wrapping (ecb4ebb)

  • Refactor connections to support temporary sessions and wired3 URLs (00a2c7e)

  • Improve files selection responsiveness in tree and columns (c774076)

  • Refactor transfer engine and persistence lifecycle (3c43b37)