Skip to content

Latest commit

 

History

History
1453 lines (745 loc) · 92.7 KB

File metadata and controls

1453 lines (745 loc) · 92.7 KB

Changelog

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

[Unreleased]

Protocol — Wired 3.2

  • Bumped <p7:protocol version="3.2">. The 3.2 spec is wire-compatible with 3.1 via the per-session compatibility diff introduced in #87 — a 3.2 server can serve a 3.1 client and vice-versa with the new fields/messages filtered transparently on the wire.
  • Public-chat broadcasts now carry a server-stamped wired.chat.message.id (length-prefixed string, UUID rendered as text). 3.1 receivers silently skip it via the receiver-tolerance machinery.
  • New chat reactions API mirroring wired.board.reaction.*: wired.chat.add_reaction, wired.chat.remove_reaction, wired.chat.get_reactions, wired.chat.reaction_list, wired.chat.reaction_added, wired.chat.reaction_removed.
  • New permission wired.account.chat.add_reactions.
  • Reactions live in an in-memory ring buffer (default 500 messages per chat); when a message scrolls off the buffer its reactions are dropped — consistent with the "chat is a stream" model. No on-disk persistence in 3.2.

[3.0-beta.24+50] — 2026-05-05

Features

  • Chat reactions and server-stamped message IDs (Wired 3.2) (786893c)

  • Backward/forward compatibility between minor versions (411273d)

Other

  • Revert "Merge pull request #91 from nark/feature/issue-90-chat-reactions" (2b0aeba)

Testing

  • Bump expected handshake remoteVersion to 3.2 (05727ef)

[3.0-beta.23+49] — 2026-05-05

Bug Fixes

  • Stop main-thread hang in appendLog during server startup (09a1acc)

  • Hide macOS Icon\r sidecar from directory listings (42ba97c)

  • Declare wired.account.user.list_offline_users field (5f2e4e4)

  • Return permission_denied for unknown recipient (a02c9fe)

  • Restrict list_offline_users migration to admin accounts only (568e35c)

  • Walk up from executable to find resource bundle in tests (223317e)

  • Use bundleURL not deletingLastPathComponent for xctest discovery (af62836)

  • Add Bundle(for:) candidate to fix test bundle discovery on CI (2ce4f4f)

  • Restore wired.xml discovery for macOS and Linux SPM tests (15bd982)

  • Use wired.message.offline.recipient_login instead of wired.user.login (d13bf47)

  • Add wired.account.user.list_offline_users privilege (d416f9b)

  • Address Nark's security review findings (eba3460)

  • Set is_legacy=1 in Python migration script (f24c32e)

  • Require E2E encryption unconditionally (6aa1ed5)

  • Avoid Bundle.module crash when SPM resource bundle is missing (995bee3)

  • Use GRDB native Date decoding for sent_at column (79151a3)

  • Only show last_nick in offline list, never login or full_name (845f410)

  • Exclude never-logged-in accounts from offline user list (43b8028)

  • Always drop index_ad trigger before bulk delete (bb93e63)

  • Allow pre-release suffixes in WIRED_MARKETING_VERSION (c20a8b3)

  • Checkpoint WAL on startup and add FTS5 integrity probe (ddf444d)

  • Avoid SQLITE_IOERR on FTS5 cleanup after crash restart (8b63515)

  • Report actual CPU architecture instead of hardcoded x86_64 (2cd615e)

  • Handle .idle case in PortStatus color switch (537fa73)

  • Restore wired.xml discovery for macOS and Linux SPM tests (6afaa5b)

  • Avoid Bundle.module crash when SPM resource bundle is missing (15bde0f)

  • Align consent dialog keys with main, add idle port status (74edb99)

  • Clear newAdminPassword after use in all paths (bc04f0b)

  • Fix port TextField resetting to '4' while typing (2fb07cb)

  • Remove persistent consent — port check asks every time, no auto-check (e7f4f16)

  • Replace check-host.net with EU-hosted portchecker.co, add opt-in consent (6f54c88)

  • Strip LaunchDaemon/TouchID code from Tabs.swift not in upstream (b6fa1ae)

  • Make admin password field visible with roundedBorder style (b44297d)

  • Use local @State buffer for admin password field (940902c)

  • Use Locale.preferredLanguages only for language resolution (9726178)

  • Use Bundle.module to find localized strings (61e190f)

  • Use 3 probe nodes for external port check reliability (808ba62)

  • Address review feedback on migration robustness (3af6210)

  • Don't assign password salt during legacy login (b0bc197)

  • Avoid SQLITE_IOERR on FTS5 cleanup after crash restart (2e3a9ac)

Documentation

  • Update README offline messaging docs (2f81483)

  • Note that Wired 3.0 is not compatible with Wired 2.x clients (e77e7f6)

Features

  • Broadcast offline_list updates on disconnect and on privilege grant (84b06f0)

  • End-to-end encrypted offline messages via X25519+ChaCha20-Poly1305 (8c0096b)

  • Include sender nick in offline message delivery (ea17072)

  • Persist last_nick and use it in offline user list (1a4dfcb)

  • Fix click handling, 30-day filter, full name, privilege backfill (5093249)

  • Implement server-side offline messaging and offline user list (0d8713a)

  • Warn when files directory is under /Users/ in daemon mode (1195dc6)

  • Add German localization support (6323528)

  • External port reachability check + Network tab UI (a195460)

  • Replace brittle SHA1-detection heuristic with is_legacy DB column (6106eeb)

  • Support legacy SHA1 passwords from Wired 2.5 migration (4d599c7)

  • Add Wired 2.5 → Wired 3 database migration (1791aa6)

Other

  • Retry notarization on transient network errors (537b249)

  • Use bash in Docker runtime stage (eebcf94)

  • Make Docker apt mirror configurable (44ec664)

Testing

  • Resolve wired.xml from #filePath instead of Bundle.module (6fd836c)

[3.0-beta.22+42] — 2026-04-20

Bug Fixes

Documentation

  • Rename WiredBot changelog references (0982bfa)

Refactoring

  • Move WiredChatBot in separated repo (6166223)

[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)