Jekyll2026-02-23T18:36:25+02:00https://airdcpp-web.github.io/feed.xmlAirDC++ Web ClientA peer-to-peer file sharing client with a responsive web user interface for frequent sharing of files and directories within groups of people. Web Client 2.14.1 Beta2026-02-23T18:20:00+02:002026-02-23T18:20:00+02:00https://airdcpp-web.github.io/2026/02/23/version-2.14.1

Changelog

Common

  • Add a UI setting for configuring the minimun auto search interval
  • Fix viewing of own temp shared files (#518)

Web Client 2.14.1

  • Replace the websocketpp library with Boost Beast (new build dependency)
  • Fix a crash when receiving direct private messages before the connection has been fully negotiated
  • Fix possible errors with viewed files where a file disappears from the list but remains open (windows#169)
  • Queue API: fix incorrectly reported minutes until next search when manually searching bundles for alternatives
  • Queue API: include the bundle ID in “queue_file_updated” events
  • Queue API: the bundle files endpoint also returns finished items
  • Portable builds: build with Buildroot 2026.02
  • Portable builds: restore compatibility with old x86_64 CPUs that don’t fully support SSE4 (#496)

Web UI 2.14.1

  • File browser layout: fix recovering from content fetch API errors (#517)
  • Fix chat file upload when using a proxy server with authentication (#516)
  • Fix table menu actions possibly being applied for wrong items
  • Add new status colors for hub connect states
  • Add coloring for queue bundle rows based on their state
  • Never skip showing notifications for non-loggable events
  • Disable pasting of files in message composer if the user doesn’t have upload permissions
  • Truncate long toast notification messages
  • Queue tab: show status bar for in-progress bundles with an error

Beta builds (Linux)

]]>
maksis
AirDC++ 4.30 for Windows2025-09-13T11:53:00+03:002025-09-13T11:53:00+03:00https://airdcpp-web.github.io/2025/09/13/airdc-4.30

Changelog

API and Web UI changes

Changed

  • Change the license to GPLv3
  • Allow the operating system to choose the default listening ports instead of assigning random ones
  • Improve chat link detection and parsing
  • Let the operating system choose the correct file explorer when using “Open folder” (#461)
  • Add timestamps in the CDM debug frame
  • Lower the default minimum search interval
  • Lower the auto reconnect delay on severe flood
  • Idle (finished) download connections can now be forced
  • Show spam rate when receiving CTM/search/incoming connection flood
  • Improve parsing of relative config paths in dcppboot.xml
  • Parse HBRI validation addresses received from the hub with the correct IP protocol
  • Dupe detection is now more accurate
  • Internal: rewrite build system to use CMake, use vcpkg for third-party libraries, new scripts for localizations
  • Support all string field types for extension settings, add a multiline text field
  • Node.js updated to version 22.19.0

Fixed

  • Show a proper error message for unclean TLS connection closures
  • Fix an error when loading previously opened own filelist on startup
  • Fix possible issues with duplicate CIDs being generated for different clients
  • Ensure that the hub column stays up-to-date for transfer
  • Don’t attempt to start filelist downloads via an incorrect hub when the user comes online
  • Various filelist-related bug and crash fixes
  • Fix an incorrect error message when removing NAT-PMP port mappings
  • Add/remove port mappings when the auto detection mode is enabled/disabled
  • Fix the “engname” country format param (#88)
  • Avoid unneeded list filter iterations (#120)
  • Don’t incorrectly announce bundles to be shared if nothing was added
  • Fix a possible incorrect “User offline” error for transfers
  • Prevent adding duplicate search extensions for search types, fix adding of extensions separated with ; (#148)
  • Ensure that no duplicate search results are being sent
  • Detect all auto speed limits correctly from the limiter values
  • Fix a possible memory leak in the MiniUPnPc mapper (DC++)
  • Other misc stability fixes

Removed

  • Partial file sharing is no longer supported in NMDC hubs
  • Support for loading of legacy XML settings for web server (the new format was added in AirDC++ 4.10)

Note that existing AirDC++ users should use the inbuilt updating function (File -> Update check).

]]>
maksis
Web Client 2.14.02025-09-07T19:10:00+03:002025-09-07T19:10:00+03:00https://airdcpp-web.github.io/2025/09/07/version-2.14.0

Changelog

Common

  • Add separate web user permissions for viewing and editing share settings (note: these need be added manually for existing non-admin users requiring those permissions)
  • Add context menu items for granting slots (#509)
  • Add new form field types (email, URL, password)
  • Add support for deeply nested remote context menus

Web Client 2.14.0

  • Fix various issues with multiple per-user connections
  • Fix handling of hub redirections
  • Fix a possible “Unable to open port” error on Linux when editing connectivity modes
  • Fix possible incorrect “User offline” errors for transfers
  • Improve link detection in chat messages
  • Remove confusing “No files available” and “No free block” messages for downloads
  • Skip download limit checks (e.g. max download speed) when a new segment is assigned for a connection
  • Detect auto speed limits correctly from the limiter values
  • Fix an application freeze when sharing items with certain special characters (#500)
  • Don’t follow symbolic links pointing to files/directories inside shared directories (#507)
  • Fix a crash when trying to send viewed file chunks larger than 32 megabytes (hardcoded limit in websocketpp: websocketpp#1009)
  • Fix root modification dates in filelist for directories that contain no subdirectories (#514)
  • Fix establishing of CCPM connections with passive users
  • Don’t incorrectly announce bundles to have been added in share if nothing was added
  • API: correct a few incorrect response codes
  • API hooks: report data deserialization errors in the event log
  • Filelist API: fix an occasional “Item x was not found” error when calling a filelist item getter
  • ADC command API: fix sending of custom user ADC supports
  • View file API: add view_file_created subscription for consistency, “view_file_added” is now deprecated
  • Queue API: return an explicit ID for file/bundle sources
  • Share: fix share_refresh_started, share_temp_item_added and share_temp_item_removed listeners never being fired
  • Transfer API: correct the mistyped path for the transferred_bytes method (tranferred_bytes is now deprecated)
  • Connectivity API: serialize auto detection status messages as regular log messages
  • Web server: pass various response headers for proxied HTTP downloads
  • Web server: pass localhost to extensions as a connect address instead of an actual IP (fixes possible extension startup issues due to a websocketpp bug)
  • Extensions: don’t incorrectly announce older extension versions as major updates, update beta versions automatically
  • Portable builds: build with Buildroot 2025.05.1
  • Compilation: fix compatibility with Boost 1.89

Web UI 2.14.0

  • Readd “Browse content” and “Result details” in the search result file column action menu (#503)
  • Don’t show the “Copy size” menu item when it can’t be used
  • Improve the logic for determining whether the user is active
  • Implement functional keyboard navigation
  • Add tooltips for various icon buttons
  • Open chat links without a protocol properly
  • Don’t override the offline icon color for bots
  • Fixes for dropdown opening directions
  • Action menu: merge menu items from the same subscriber when combining different menu types
  • Show the direct encrypted private messaging channel state if the connection has been established even if the other user is missing support for the feature
  • Fix applying of spell checker suggestions in the chat message composer (#501)
  • Disable autofocus for the filename input when opening the file browser dialog (#462)
  • Keep the message composer input focused when switching between chat sessions
  • Misc style tweaks
]]>
maksis
Web Client 2.13.32025-01-19T17:55:00+02:002025-01-19T17:55:00+02:00https://airdcpp-web.github.io/2025/01/19/version-2.13.3

Changelog

Web Client 2.13.3

  • Remove finished idle download connections instantly instead of putting them in the “Disconnected” state
  • Fix loading of viewed files that are also in queue (but not yet finished)
  • Build: add support for Boost 1.87
  • Portable builds: update to Buildroot 2024.11.1,
  • Portable builds: the 64-bit version supports older CPUs without SSE 4.x again (#496)

Web UI 2.13.1

  • Re-add total sizes for share profiles listed under “Browse own share…”
  • Fix “Browse files” action for share profiles
  • Update the page URL correctly when pressing “Cancel” in the download target browse dialog (#494)
  • Use a new charting library in the transfer widget (the previous one is no longer maintained)
  • Trim text fields in forms
  • Fix saving of hub’s userlist visibility state
  • Small file browser dialog tweaks
  • Prevent table filters from stealing focus when a previously empty table is being rendered
]]>
maksis
Web Client 2.13.22024-12-07T19:45:00+02:002024-12-07T19:45:00+02:00https://airdcpp-web.github.io/2024/12/07/version-2.13.2

Version 2.13.x focuses on modernizing the core application codebase and providing new API features for developers.

ADC commands API

The new ADC commands allows developers to interact directly with the ADC protocol via hubs or directory with other clients over TCP or UDP protocol.

It’s possible to send ADC commands, read incoming ADC commands and add new parameters in outgoing commands. It’s also possible to advertise custom protocol supports to hubs/other clients so it’s fully possible to design and implement new ADC protocol extensions!

Example code

Here’s a very simplied version of an imaginary partial file sharing extension demonstrating a way to exchange information between the clients about finished files that aren’t shared yet. Note that there’s actual partial sharing functionality already implement in the client and it’s a lot more complicated than this.

Show code

  // Add a support for our imaginary partial sharing extension (PSE0) that 
  // is advertised to other hub users in case we need it for other functionality
  // It's not used in this example and in real use cases you shouldn't 
  // add supports "just in case" in order to save hub's bandwidth
  await socket.post(`adc_commands/supports/hub/PSE0`)

  await socket.addListener(
    `search`, 
    'search_incoming_search', 
    async ({ results, query, user }) => {
      if (!query.tth || results.length > 0) {
        // No need to match text searches or if we have results already
        return
      }

      // Check if we have something queued
      const files = socket.post('queue', `files/${query.tth}`)
      if (!files.length) {
        return
      }

      // Send information about all queued files over UDP
      for (const file of files) {
        await socket.post(`adc_commands/udp_command`, {
          command: {
              type: 'U',
              command: 'PSE',
              params: [
                `TH${file.tth}`,
              ]
          },
          user,
        });
      }
    }
  )



  // Listener for incoming partial bundle sharing commands 
  // sent by other clients (PSE)
  await socket.addListener(
    `adc_commands`, 
    'incoming_udp_command/PSE', 
    async (commandData) => {
      const tth = getAdcCommandParam(commandData, 'TH');
      if (tth) {
        // ...add source for the file or do something else
      }

    }
  )

Changelog

Common

  • Dupe detection is more accurate (new dupe types)
  • Allow adding custom context menu items for sessions (hubs, private chats, filelists, viewed files)
  • Add generic window-specific menu item contexts (events, queue, favorite hubs, share, transfers)
  • Allow installed extensions to be disabled (no autostart)

Web Client 2.13.2

API

  • New API module: ADC commands
  • Share API: add endpoints for fetching share content information by real path (#438)
  • Queue and Share APIs: add methods for getting files by TTH
  • Hash API: add listeners for successfully hashed and failed files
  • Share and filelist APIs: add hooks for filtering filelist directories/files and search results (#126)
  • Search API: add listener for incoming searches
  • Search API: add various new fields for user search results (non-grouped results)
  • Hub API: Add ADC support fields for hubs and hub users
  • Min and max size can now be set simultaneously for search queries

Core

  • Ensure that the excluded directory always contains trailing slash
  • Show spam rate when receiving CTM/search/incoming connection flood
  • Fix possible issues with identical CIDs being generated for different clients
  • Fix a crash when launching the app on the latest FreeBSD versions
  • Various filelist-related bug and crash fixes
  • Prevent adding duplicate search extensions for search types
  • Idle (finished) download connections can now be forced
  • Ensure that no duplicate search results are being sent
  • Parse HBRI validation addresses received from the hub with the correct IP protocol
  • Build: rewrite build scripts
  • Other misc stability fixes
  • Remove support for loading of legacy XML web server settings (the new format was added in Web Client 2.11.0)
  • Partial file sharing is no longer available in NMDC hubs
  • Fix setting of thread priorities
  • Allow specifying a custom resource directory in dcppboot.xml, improve handling of relative paths
  • Fix cases where the refreshing symbol was shown in the UI even after the refresh was completed
  • Portable builds: fix debugging symbols

Web UI 2.13.0

  • Allow cloning share profiles
  • Fix adding of search types (#473)
  • Fix bugs with loading/moving of Home layout widgets
  • Change a few help URLs to use HTTPS
  • Determine the UI height correctly on mobile devices (#483)
  • Correct the help link for setting variables (#477)
  • Fix various issues with the hinted user form field type in custom forms
]]>
maksis
Web Client 2.12.22024-07-07T11:00:00+03:002024-07-07T11:00:00+03:00https://airdcpp-web.github.io/2024/07/07/version-2.12.2

Changelog

Web Client 2.12.2

  • Allow the operating system to choose the default listening ports instead of assigning random ones
  • Pick the most common filename for the grouped file search results (#113)
  • More reliable extension engine detection on Linux
  • Show a proper error message for unclean TLS connection closures
  • Lower the default minimum search interval
  • Lower the auto reconnect delay on severe flood
  • API: fix context menu item select events for message highlights
  • API: entry file shouldn’t be required for remote extensions
  • Build: the nlohmann JSON library is no longer included with the source (new build dependency)
  • Build: add support for miniupnpc 2.2.8
  • Change the license to GPLv3

Web UI 2.12.1

  • Add “Copy” context submenu for downloadable item
  • Show additional connection information on the auto detection page
  • Fix the event count label color for warnings
  • Fix incorrect values being changed on setting pages that contain multiple forms
  • Fix the notification message when adding/removing ignored users
  • Fix /me chat command
  • File browser: disable autofocus for the filename input (#462)
]]>
maksis
AirDC++ 4.21 for Windows2023-08-27T12:00:00+03:002023-08-27T12:00:00+03:00https://airdcpp-web.github.io/2023/08/27/airdc-4.21

Changelog

API and Web UI changes: Web Client 2.12.0

Added

  • Add flood limits for incoming and outgoing connect requests to avoid crashes in case of severe flood (#63)
  • Add “verbose” status message severity

Changed

  • Update Node.js to version 18.17.1
  • Lower the default minimum search interval to 5/10 seconds

Fixed

  • Fix transfer connections not being created in some cases when download sources are added
  • Fix sources column in download queue not being updated in some cases when download sources are added
  • Fix an additional whitespace being added after user nicks in some cases
  • Fix “engname” country format param (#88)

Note that existing AirDC++ users should use the inbuilt updating function (File -> Update check).

]]>
maksis
Web Client 2.12.12023-05-22T19:30:00+03:002023-05-23T21:30:00+03:00https://airdcpp-web.github.io/2023/05/22/version-2.12.0

Changelog

Common

  • Use a submenu for extension context menu items when there is more than one item to show
  • Add types for chat status messages to allow different formatting/caching behavior
  • Prevent UI table filters from getting out of sync with the backend (fixes filter issues in search and filelists)
  • Add “verbose” status message severity

Web Client 2.12.1

  • Fix an encoding issue that breaks fetching of cached hub messages in NMDC hubs in some cases

Web Client 2.12.0

  • Add flood limits for incoming and outgoing connect requests to avoid crashes in case of severe flood (#450)
  • Fix transfer connections not being created in some cases when download sources are added (#447)
  • Fix a missing error message when connecting to an NMDC hub and the nick is taken (affects mostly hubs running on Ptokax)
  • Fix an additional whitespace being added after user nicks in some cases
  • API: allow chat status messages to be sent to a specific UI instance
  • API: add an API method for listing hook subscribers
  • API: add dupe information for files/directories in own filelist
  • Build: fix build warnings with the latest Clang version

Web UI 2.12.0

  • Use darker color for directory dupes in message views
  • Fix unread private message counts being displayed incorrectly in some cases
  • Style fixes
]]>
maksis
AirDC++ 4.20 for Windows2023-03-13T17:30:00+02:002023-03-13T17:30:00+02:00https://airdcpp-web.github.io/2023/03/13/airdc-4.20

Changelog

API and Web UI changes:

Added

  • Report certain incorrectly forwarded ADC protocol messages
  • Add a new hublist server (hublist.pwiam.com)
  • New language: Ukrainian
  • Add extension support in chat views (highlights and context menu items)

Changed

  • Discussion forum and issue tracker links now point to Github
  • Put extension context menu items under an extension-specific submenu in if there are more than two menu items
  • Improve logging of partial filelist transfers
  • Disable maximum size for shared files when using the RAR profile
  • Update Node.js to version 18.15.0

Fixed

  • Fix a filelist-related crash (LP#1944724)
  • Fix saving of web server settings (LP#1950519)
  • Remove additional waiting time when using “Find and view NFO” and no results are found
  • Don’t clear user commands when attempting to connect to a hub that is open already (LP#1981763))
  • SOCKS5: don’t fail if the proxy server doesn’t send any port for regular connect attempts
  • Remove non-existing commands from /help
  • Don’t ignore filenames containing semicolons in SFV files

Removed

  • The “Search sites” feature has been replaced with an extension (must be installed manually)
  • Remove warnings for old LuaDCH hubsoft version
  • Removed an inaccessible hublist server address

Note that existing AirDC++ users should use the inbuilt updating function (File -> Update check).

]]>
maksis
Web Client 2.11.42023-03-11T18:25:00+02:002023-03-11T18:25:00+02:00https://airdcpp-web.github.io/2023/03/11/version-2.11.4

Changelog

Web Client 2.11.4

  • Fix temp share item detection in private chat
  • Fix broken list filtering after the current directory was reloaded in own filelist
  • Improve logging of partial filelist transfers
  • Portable builds: build with Buildroot 2023.02

Web UI 2.11.5

  • Fix emoji URLs by updating dependencies
  • Make message author and other text dropdown captions copyable (#442)
  • Ensure that the sidebar won’t remain larger than the window after resizing
  • Fix table column resizing while the table data is being updated (#444)
  • Fix possible table-related crashes (#443)
]]>
maksis