2025-03-17 2.8.1 (API 0.9.65) released

2025-03-14 zzz
 * Update translations

2025-03-08 zzz
 * Tunnels: Fix UOE on timeout of OB client tunnel test

2025-03-07 zzz
 * installer: Add logo to first panel, add progress bar

2025-03-06 zzz
 * i2ptunnel: Change encryption type radio to dropdown, update tooltips

2025-03-01 zzz
 * Console: Add error page test servlet
 * GeoIP 2025-03-01
 * Installer: Fix installation to path with spaces

2025-02-28 zzz
 * Transport: Ban routers with RI format errors if signature verifies

2025-02-25 zzz
 * Console: Move certs page to a debug page tab
 * Streaming: Prevent AIOOBE when verifying large signed packets
 * SusiDNS: Add bubble support

2025-02-24 zzz
 * Console: Improve writing efficiency

2025-02-23 zzz
 * SusiDNS: Reduce memory usage in AddressBean
 * Tests: Fix build

2025-02-22 zzz
 * Console: Add support for notification bubbles

2025-02-21 zzz
 * Client: Deprecate getters for unused encryption private key
 * i2psnark: Set bulk profile
 * i2ptunnel: Set bulk profile for servers
 * Tunnels: Prep for bw params (prop. 168)

2025-02-20 zzz
 * Tunnels: Fix tunnel test for OB client tunnels

2025-02-17 zzz
 * i2ptunnel: Add .i2p.alt support to HTTP and SOCKS client tunnels (MR 222)
 * SusiDNS: Implement sort-by-added-date (MR 231)

2025-02-14 zzz
 * SusiDNS: Navbar CSS fixes/tweaks

2025-02-11 zzz
 * i2ptunnel: Proxy error page improvements

2025-02-10 zzz
 * Router: Unused stats removal
 * Transport: More SSU1 code removal

2025-02-09 zzz
 * SusiDNS: Remove null checks in comparator

2025-02-07 zzz
 * Build: Check for mismatched version in Izpack config files
 * Crypto:
   - Allow external use of pooled SHA256 instances
   - Use pooled SHA256 instances in Noise lib
 * Data:
   - Fix compression of RouterIdentities
   - Check key order when parsing RI mappings and fail-fast if out-of-order
 * i2psnark: Reduce PeerCoordinator CHECK_PERIOD interval
 * Transport:
   - Remove old NTCP 1 stats
   - SSU 1 removal part 10/n (UDPPacket)

2025-02-04 2.8.0 (API 0.9.65) released

2025-02-03 zzz
 * Data: Fix compressible padding detection and expansion
 * NetDB: Fix reversed conditional in ExpireLeasesJob.java

2025-01-31 zzz
 * Pull translations from Transifex

2025-01-30 zzz
 * NetDB: Debounce RI publishing at startup
 * susidns: Dark theme fixes/tweaks

2025-01-29 zzz
 * NetDB: Reseed update

2025-01-28 zzz
 * NetDB: More RI publishing improvements

2025-01-27 zzz
 * NetDB: RI publishing improvements

2025-01-26 zzz
 * Transport: Increase min peer test version

2025-01-21 zzz
 * Util: Recognize zen5 processors

2025-01-20 zzz
 * Build: Create jammy build to handle Jetty API change (Gitlab #496)

2025-01-18 zzz
 * BW Test:
   - Disable some status messages
   - Set connection timeout
   - Tag status strings for translation
   - Unused code removal
   - Use IP provided by test server

2025-01-17 zzz
 * i2psnark: Require POST on forms
 * susidns: Require POST on forms

2025-01-12 zzz
 * CLI: Improve selfsignedgenerator usage help

2024-12-26 zzz
 * NetDB:
   - Reduce max ff response time
   - Base lookup timeout on peer's average response time
 * Profiles: Remove unused 10m and 24h rates for DB response time

2024-12-18 zzz
 * NetDB: Aggressive expire for leasesets when over limits

2024-11-29 zzz
 * Build: Prep for izpack 5.2.3 (Github #86)
 * Transport: Better message on UPnP tab when enabled but fails to start (Github #84)

2024-11-28 zzz
 * Build: Suppress JNI warnings from Java 24 for CLI and i2psnark-standalone

2024-11-26 zzz
 * Console: Move jar dump link from summary bar to debug page tab
 * New complete Gan Chinese translation

2024-11-17 zzz
 * Profiles: Extend time to treat E routers as severely congested
 * Streaming: Reduce batch delay

2024-11-14 zzz
 * Router: Change cap for sym. nat

2024-11-08 zzz
 * SSU2: Don't send separate ack for relay intro (Gitlab MR #220)

2024-11-04 zzz
 * Console: Increase interval change for larger/smaller interval buttons on /graph
 * Router: Periodically recheck family of negative cached RIs
 * SSU2:
   - Detect and drop dup relay messages as Bob
   - More SSU1 code removal

2024-11-02 zzz
 * Console: remove dark theme override of router log colors
 * SSU2: Hopefully fix rare deadlock

2024-10-22 zzz
 * Console: Merge in more upstream rrd4j changes for 3.10

2024-10-08 2.7.0 (API 0.9.64) released

2024-10-08 idk
 * Fix failing tests

2024-09-21 zzz
 * streaming: Allow i2p.streaming.profile != 1

2024-09-20 zzz
 * i2psnark: Fix broken infohash after torrent edit (Gitlab MR #216)

2024-09-10 zzz
 * Console: Refactor netdb search (Gitlab MR #217)

2024-08-31 zzz
 * Console: Consolidate hash comparators (Gitlab MR #214)

2024-08-23 zzz
 * I2CP: Don't include lease about to expire in LS request

2024-08-19 zzz
 * i2psnark: Fix clear messages button (light theme) (Gitlab #479, Github #81)

2024-08-17 zzz
 * Naming: lookup fixes

2024-08-16 zzz
 * NetDB, I2CP: Fix tunnels going yellow for several minutes (Gitlab #487)
 * SVG: Optimize output for horizontal/vertical segments in paths

2024-08-12 zzz
 * Util: Add temp dir timestamper to prevent deletion by systemd

2024-08-11 zzz
 * NetDB:
   - Don't expire entries in test mode
   - Don't immediately expire entries for Android

2024-08-09 zzz
 * i2psnark: Reduce minimum banwdith, reduce max connections if low bandwidth
 * i2psnark, susimail: Normalize strings when searching (Gitlab #488)
 * susimail: Fix searches for multiple terms
 * Tunnels: Do not select ElG routers for tunnels
 * Util: Reduce number of PRNG output buffers

2024-08-07 2.6.1 (API 0.9.63) released

2024-08-07 idk
 * update geoip database

2024-07-25 zzz
 * Console:
   - Add translation status report (Gitlab MR !207)
   - Convert graphs to SVG (Gitlab MR !208)
   - Enable compression of js and svg files
 * i2ptunnel: Additional fixes for invalid entries in filter file (Gitlab #483)
 * imagegen: Convert identicons to SVG
 * Installer: Fix some izpack5 translated languages
 * rrd4j: More optimizations for graph generation
 * Util: Add new processors for CPUID

2024-07-19 2.6.0 (API 0.9.63) released

2024-07-19 idk
 * Fix failing integration tests

2024-07-15 zzz
 * Pull translations from Transifex

2024-07-06 zzz
 * Console: Fix tunnel.Bps.* graphs sometimes not rendering

2024-07-05 zzz
 * I2CP: Send DestroySessionMessage with dummy SessionID if unset
 * imagegen: QR code text size/placement tweaks

2024-07-02 zzz
 * Jetty: Don't show null exception message in XSSFilter

2024-07-01 zzz
 * Tunnels: Peer selection tweak

2024-06-30 zzz
 * i2psnark: Fix alignment of torrent names (light/vanilla themes) (Github #76)
 * Router: Remove ancient test code for variable leasesets
 * Tunnels: Remove old check for buggy routers now that MIN_VERSION is higher
 * Util: Don't classify ARM servers as slow (Github #77)

2024-06-29 zzz
 * i2psnark: Fix config display of limit for max up bw after restart (Github #75)
 * Util: Remove discontinued DoH server (Github PR #79)

2024-06-27 zzz
 * I2CP: Increase % of router bandwidth reported to clients

2024-06-26 zzz
 * Console: Fix typo in Permissions-Policy header

2024-06-20 zzz
 * susimail: Update size limits to match current postman limits

2024-06-20 zzz
 * i2ptunnel: Reduce severity of access filter errors (Gitlab #483)

2024-06-11 zzz
 * Build: Put JspC wrapper in its own jar, used only at build time

2024-06-10 zzz
 * Router: Increase min version for floodfills, tunnels, reseed

2024-06-04 zzz
 * Console: Add js refresh on /graphs (Gitlab MR !199)
 * i2psnark:
   - Fix leaked requests, partial pieces, and temp files (Gitlab MR !203)
   - Make PEX more efficient
 * Reseed: Increase min version when creating bundles; CLI improvements
 * Router: Add synthetic stats for client and expl. build success rate

2024-06-01 zzz
 * I2CP: Store local destination in lookup cache (Gitlab #482)
 * Router: Don't update rates for full stats when not enabled
 * Transport: Remove SSU1 code from UDPTransport (Gitlab MR !197)

2024-05-29 zzz
 * Console: More graph improvements

2024-05-28 zzz
 * Console: Graph improvements

2024-05-26 zzz
 * Susimail: CSS fixups (dark theme)

2024-05-23 zzz
 * i2ptunnel: Fix CTCP ACTION (Gitlab #481)

2024-05-21 zzz
 * Build: maketorblocklist.sh fixups (Gitlab MR !198 by kytv)
 * Susimail: XHR search (Gitlab MR !196)
 * Transport: Remove SSU1 code from IES/OES/PacketReader/HMAC (Gitlab MR !197)
 * Tunnels: Don't parse messages at the OBEP (Gitlab MR !194)

2024-05-19 zzz
 * i2psnark: Fix NPE when attempting to create torrent with too many files

2024-05-18 zzz
 * Console: js global scope fixes (Gitlab MR !195)
 * Transport: Remove SSU1 code from PacketBuilder/PeerState/OMF (Gitlab MR !193)

2024-05-17 zzz
 * Build: Add script to make Tor blocklist

2024-05-16 zzz
 * I2CP: Hopefully fix rare NPE
 * Util: Remove ST2 timers from queue on cancel

2024-05-15 2.5.2 (API 0.9.62) released

2024-05-14 zzz
 * i2ptunnel: Fix keepalive bug causing truncation of chunked content
 * Pull translations from Transifex
 * Router: Update Tor blocklist

2024-05-12 zzz
 * Console: Update rrd4j to 3.9.1 preview

2024-05-08 zzz
 * i2ptunnel: Fix custom options form width (light theme)
 * Router: Publish G cap if symmetric natted
 * Tunnels: Validate peer RI expiration in TunnelPeerSelector

2024-05-06 2.5.1 (API 0.9.62) released

2024-05-05 zzz
 * NetDB: Various fixes and adjustments
 * Pull translations from Transifex

2024-05-03 zzz
 * NetDB: Don't lookup RI if temp. banlisted
 * Router: Add Tor blocklist
 * Tunnels: OBEP distributor: Check and charge RI lookup bandwidth

2024-05-02 zzz
 * Profiles: Fixes for firstHeardAbout and/or lastHeardAbout being zero

2024-05-01 zzz
 * NetDB:
   - Limit number of DSRM entries to follow
   - Deny old ANY lookup type to non-ff

2024-04-27 zzz
 * Sybil: Disable IP checks for now

2024-04-26 zzz
 * Susimail: Search fixes

2024-04-25 zzz
 * Susimail: Add search box (Gitlab MR !190)
 * Transport: Remove SSU1 code from IMF/IMS (Gitlab MR !189)

2024-04-22 zzz
 * Addressbook: Use standard time formatting for log
 * Profiles: Don't update last heard time on tunnel failure
 * Transport: Remove SSU1 code from PeerTest and IntroductionManager (Gitlab MRs !185, !186)

2024-04-17 zzz
 * Build: Update to Tomcat 9.0.88

2024-04-15 zzz
 * Susimail: Don't show multipart/related CID images as attachments also

2024-04-13 zzz
 * Susimail:
   - Reply-all improvements
   - Add sender name to default config, use when replying
   - Don't show attachment flag for HTML emails
   - Increase compose form width (dark theme)
   - Add missing div ids for DnD
   - Improve validateAddress()

2024-04-08 2.5.0 (API 0.9.62) released

2024-04-05 zzz
 * Susimail:
   - Fix truncation of quoted-printable encoded attachments
   - Fix loading mail bodies in non-inbox/drafts folders
 * Translation updates

2024-04-04 zzz
 * Susimail:
   - Only parse mail headers once
   - Fix initialization of textarea height
   - Fix 413 error forwarding email with attachments
   - Fix forwarding email with attachments lacking specified encoding
   - Fix forwarding html-only email

2024-03-26 zzz
 * NetDB: Store message handling changes
 * Transports: Incoming connection checks
 * Tunnels:
   - Refactor message distribution
   - Tunnel test changes

2024-03-23 zzz
 * i2psnark: Preserve private=0 in torrent files

2024-03-20 zzz
 * New translations for some subsystems: Japanese, Hungarian, Slovenian, Estonian

2024-03-09 zzz
 * i2psnark: Fix buttons on torrent details page (JRE 21)

2024-03-03 zzz
 * i2psnark:
   - Fix DnD js syntax error
   - Add torrent section and config page CSS fixes (non-default themes)

2024-03-01 zzz
 * SSU2: Cancel peer test if Bob picked a Charlie without a B cap

2024-02-29 zzz
 * SSU2: Treat IPv6 peer test result as unknown if no response from firewalled Charlie

2024-02-26 zzz
 * Console: Use same color for visted links (dark theme)
 * i2psnark:
   - Don't allow changing data dir when connected
   - Delete all torrents except magnets when changing data dir

2024-02-25 zzz
 * SSU2:
   - Increase min version for peer test
   - Update last rcv time when receiving data, not acks

2024-02-14 zzz
 * i2ptunnel: Implement server-side persistence (Gitlab MR !181)

2024-02-02 zzz
 * i2ptunnel: Implement client-side persistence (Gitlab MR !176)
 * susimail: Add support for HTML email (Gitlab MR !177)

2024-01-31 zzz
 * CLI: Add sdns stamp decoder

2024-01-30 zzz
 * Naming: Add .i2p.alt support
 * Util: DoH server list update

2024-01-29 zzz
 * Crypto:
   - More efficient enum lookup by code
   - Verify RSA sigs after signing
 * i2psnark: Sanitize unicode LTR/RTL control chars
 * Util: Add .alt to selfsigned cert alt names

2024-01-28 zzz
 * Build: Update gradlew to 8.5 (Gitlab MR !180)

2024-01-27 zzz
 * Console: Update RRD4J to 3.9 (Gitlab MR !178)
 * Transport: Remove SSU1 code from EstablishmentManager (Gitlab MR !179)

2024-01-23 zzz
 * i2ptunnel, susidns: Fix IDN decoding for newer codepoints

2024-01-22 zzz
 * i2psnark: Add drag-and-drop for torrent files and links (Gitlab MR !165)
 * susimail: Add drag-and-drop for attachments (Gitlab MR !171)

2024-01-15 zzz
 * I2CP: Prevent loopback messages to same session (i2pd Github #2005, Gitlab MR !173)
 * i2psnark: Bandwidth limiter improvements (Gitlab MR !164)

2024-01-14 zzz
 * Data: Store compressed RI and LS in compressed form (Gitlab MR !171)
 * i2ptunnel:
   - Add utilities for keepalive (WIP) (Gitlab MR !166)
   - Don't send HTML errors on CONNECT sockets (Gitlab MR !175)
 * Transport: Remove SSU1 code from PacketHandler (Gitlab MR !174)

2024-01-10 zzz
 * Console: Fix iframe size issues (Gitlab MR !160)
 * Susimail: Add markdown js for plain text content (Gitlab MR !161)
 * SSU2: Delay sending relay tag (Gitlab MR !169)

2024-01-08 zzz
 * Transport: Ignore SSU1 enable config

2024-01-02 zzz
 * Console: News fetch improvements (Gitlab MR !163)
 * Router: Enforce max RI size (Gitlab MR !168)
 * Susimail: Speed up initial loading (Gitlab MR !162)
 * Tunnels: Peer selection adjustments (Gitlab MR !167)

2023-12-23 zzz
 * Susimail:
   - Add dropdown on login page for multiple accounts
   - Add logo to footer
   - Add regex util (WIP)
   - Auto-resize compose box
   - Extract multipart type and content id (WIP)
   - Logging enhancements on file read failures
   - Put error messages at the top
   - Show size and thumbnail of draft attachments
   - Show user name on folder view
 * Util: Move SyntheticREDQueue from router to core

2023-12-22 zzz
 * Blockfile: Fix bug in unused getNames()
 * Console: Fix encoding issues in persisted news
 * I2CP: Add router rates to bandwidth limits message
 * i2psnark: Adjust max peers for small torrents
 * i2ptunnel:
   - Change return code for host-not-in-addressbook to 502
   - Log correct server host/port on error when there are multiple targets configured
 * NTCP2: Add key validity check
 * Plugins: Don't auto-update in test mode
 * Ratchet: Use correct method for Elg2 keygen
 * Susimail: Include attachment sizes in displayed draft size
 * Transports: Don't flood huge RIs
 * Util:
   - Catch OOM in timer
   - Add 2nd order comparison in ObjectCounterUnsafe sort

2023-12-18 2.4.0 (API 0.9.61) released

2023-12-15 idk
 * Pull translations from Transifex
 * Fix updating router profile in SearchUpdateReplyFoundJob

2023-12-15 zzz
 * Pull translations from Transifex

2023-12-14 zzz
 * Console: Whitespace fixes on config pages

2023-12-08 zzz
 * Installer: Fix rare misidentification of OS

2023-12-07 zzz
 * Susimail:
   - Fix placement of bottom page nav
   - Show spam flags for all in spam folder
   - Dark theme fixes

2023-12-06 zzz
 * Susimail:
   - Flush output to fix truncated mails
   - Close output for attachments
   - Fix setting encoding for attachments
   - Set length for binary encoding

2023-12-05 zzz
 * Build: poupdate-source
 * i2ptunnel: Remove dup headers in error pages

2023-12-02 zzz
 * Console: Fix sidebar not immediately showing results of /configsidebar changes
 * Susimail:
   - Fix binary content-encoding
   - Fix incorrect "previous" icons

2023-12-01 zzz
 * Console:
   - Clear out "proxy must be running" status after success
   - Don't lose tabs in log messages
   - Fix HTML errors on /configupdate
   - Fix sidebar not immediately showing results of manual update check
   - Prevent overflow of sidebar status
 * i2psnark: Change js mime type as per RFC 9239

2023-11-29 zzz
 * Build: Handle QUALIFIER
 * UPnP:
   - Fix missing port in Host header causing failures on libupnp-based devices
   - Fix handing of multiple IGDs
   - Improve logging about multiple IGDs
   - Make case of HTTP headers more standard

2023-11-27 zzz
 * i2psnark: Delay bandwidth limits check briefly

2023-11-21 zzz
 * Addressbook: Workaround for i2p-projekt.i2p etag bug (Gitlab #454)
 * Console: Don't list inner classes on /configlogging
 * i2ptunnel: Add thread number to server thread names
 * Profiles: Increase congestion cap penalties (Gitlab #412)

2023-11-19 zzz
 * Router: Don't log events in test mode

2023-11-18 zzz
 * i2psnark: Uncomment and fix local torrent file picker

2023-11-17 zzz
 * Console: Add "required" to input fields where necessary
 * i2ptunnel: Edit and wizard form improvements

2023-11-16 zzz
 * Build: Force build to die on fatal JspC errors

2023-11-15 zzz
 * i2psnark:
   - Handle metainfo url-list as single byte string
   - Increase comment bucket size to reduce duplicates
   - Sort tracker list on details page

2023-11-12 zzz
 * Banlist: Throw if banning far in the past, to catch bugs
 * Router: Temp. ban routers publishing in the future
 * Sybil: Don't ban NAT64 addresses

2023-11-11 zzz
 * Console: Sybil page CSS fixes
 * Router: Fix congestion cap publishing

2023-11-10 zzz
 * i2ptunnel: Exempt tunnel name from XSS filter (Gitlab #467)
 * NetDB: Lookup handler/throttler fixes
   - Allow limited lookups when non-ff, but still disallow expl. lookups
   - Remove unnecessary banlist checks in handler
   - Add lower non-ff limit in throttler
   - Fix check for our RI
   - Remove now-unused stats

2023-11-09 zzz
 * Console: Fix published LS count on the debug LS tab

2023-11-08 zzz
 * NetDB: Fix and deprecate unused store() method

2023-11-07 zzz
 * Translations: Fix config file for v3

2023-11-04 zzz
 * NetDB: Type changes (Gitlab #402)
   - Revert ctx.netDb() return type change
   - Revert all DummyNetworkDatabaseFacade changes
   - Add DummyNetworkDatabaseSegmentor
   - FNDS/SNDF return type changes
   - Add back casts of netDb() calls to FNDF where necessary
   - Fix console NPE when using DummyNDF

2023-11-03 zzz
 * Console: RTL CSS tweaks

2023-11-02 zzz
 * Console:
   - Use RTL CSS for Persian
   - Profiles definitions CSS fixes
 * NetDB: Enforce no RIs in subdbs (Gitlab #465)
   - Throw IAE if attempting to store/publish RI to subdb
   - Log warnings if attempting to lookup RI in subdb
   - Revert changes to createPeerSelector()
   - Revert peer selector changes in SearchJob and StoreJob
   - Use common PeerSelector and KBucketSet for all dbs
   - Revert/fix FloodfillVerifyStoreJob to looukp RIs in the main DB
   - Don't start ExpireRoutersJob in subdbs
   - Revert change in InboundMessageDistributor that was looking up RI in subdb
   - Remove KNDF.isMainDb(), replace with !isClientDb()

2023-10-29 zzz
 * Console: Netdb tab fixes and cleanup (Gitlab #465)

2023-10-28 zzz
 * i2ptunnel:
   - Remove nonstandard Proxy-Connection headers (Gitlab #452)
   - Fix gzip footer check in GunzipOutputStream (Gitlab #458)
 * NetDB: Fix lifecycle issues for subsessions (Gitlab #460, #406)
   - Don't create subdb for subsession and lose ref for primary subsession;
   - Simplify CCR.getFNDF() to simply return the subdb or null; nothing else is necessary
   - Do not unpublish LS from main db on session shutdown; not necessary, it is not in there

2023-10-25 zzz
 * Console: Tweaks to advanced peers summary bar section

2023-10-24 zzz
 * Netdb: Subdb lifecycle fixes (Gitlab #406)
   - Disable RefreshRoutersJob for subdbs
   - Cancel ExpireRoutersJob and ExpireLeasesJob at netdb shutdown
   - Do not run ExpireRoutersJob at shutdown for subdbs
   - Do not create _exploreKeys HashMap for subdbs, and add checks for subdbs
   - Convert NegativeLookupCache timer to SimpleTimer2 so we may cancel it
   - Add method to cancel NegativeLookupCache timer; cancel it when netdb shuts down

2023-10-21 zzz
 * Tests: Disable console scala tests in gradle tests

2023-10-21 zzz
 * SAM: Reset incoming socket if no subsession is matched (Gitlab #456)
 * Tests: Exclude BuildMessageTestStandalone from gradle tests

2023-10-20 zzz
 * Build: Gradle build fixes

2023-10-12 zzz
 * i2ptunnel: HTTPResponseOutputStream cleanups

2023-10-10 zzz
 * Add ramble.i2p to hosts.txt
 * i2psnark:
   - Shutdown incomplete torrents first
   - Add shutdown button to systray (standalone only)

2023-10-09 zzz
 * Console: Fix visibility of radio/checkboxes (light theme)

2023-10-03 zzz
 * SSU2: Prevent rare IAE in peer test timer (Gitlab #433)

2023-09-29 zzz
 * i2psnark: Search box CSS tweaks when iframed (Gitlab #448)
 * SAM: Fix accept after soft restart (Gitlab #399)
 * Transport: Disable SSU1 by default (Gitlab #427)

2023-09-27 zzz
 * Console: Change all DOCTYPEs to standard html (Gitlab #426)
 * Debian: Change JRE dependency order (Gitlab #443, Debian #1024461)
 * i2psnark: Prevent start-all from within search results erroring (Gitlab #445)
 * NTCP2: Fix updating address on transition to firewalled (Gitlab #435)
 * SSU2: Fix uncaught IAE caused by itags with zero values (Gitlab #415)
 * Transport: Fix NPE during soft restart (Gitlab #437)

2023-06-28 2.3.0 (API 0.9.59) released

2023-06-28 idk
 * Cache stores of multihomed leaseSets when stored from multihome peers,
   and if our local leaseSet is not in the keyspace return the multihome instead
 * When updating a leaseSet because receiving it as published always make a
   complete copy of the leaseSet before merging the flags.
 * Rate-Limit lookups

2023-05-29 idk
 * Adds "virtual contexts" to bloom filter, where each entity that
   passes an i2np message to the bloom filter xor's the messageID with a random, local value.
   credit Xe Iaso for discovering the issue, obscuratus for the solution

2023-04-12 2.2.1 (API 0.9.58) released

2023-04-12 idk
 * Fix missing Java options in docker/rootfs/startapp.sh
 * Detect when running in Podman instead of regular Docker
 * Update Tor Browser User-Agent String
 * Update local GeoIP database
 * Remove invalid signing keys from old installs
 * Update Tomcat version in Ubuntu Lunar and Debian Sid

2023-03-13 2.2.0 (API 0.9.58) released

2023-03-13 idk
 * Send and check target destination in first streaming SYN packet

2023-02-18 zzz
 * DTG: Remove "Start I2P" menu item in non-router context
 * Sybil: Don't catch all the i2pds publishing ::1

2023-02-17 zzz
 * Console: Add legend for congestion caps (proposal 162)

2023-02-16 zzz
 * Transports: Add new inbound connection throttler

2023-02-15 zzz
 * Router:
   - Disable Sybil analysis when in test mode
   - Store feed blocklist in main array for efficiency
 * Tunnels: Re-enable using U routers in some expl. tunnels

2023-02-13 zzz
 * Profiles:
   - Change the new-router bonus to a penalty
   - Remove unused failing peers map

2023-02-12 zzz
 * Console: Reduce max age of displayed profiles
 * NetDB:
   - Don't create profile unless peer is reachable
   - Store handler updates
 * Profiles:
   - Adjust capacity for send success/failure
   - Don't create new profile on message or lookup failures
   - Downrate capacity of slow/unreachable peers
   - Limit storage and memory usage
 * Router: Increase min version for tunnels and netdb to 0.9.51
 * Tunnels: Don't build through U routers

2023-02-11 zzz
 * NetDB:
   - Expiration tweaks
   - Increase flood thottle time

2023-02-10 zzz
 * Router: Tighten skew calculation window

2023-02-09 zzz
 * DTG: Support notification disable/enable in non-router context
 * NetDB:
   - Don't lookup before dropping after shutdown initiated
   - Improve efficiency of ExpireRoutersJob
 * Profiles: Don't delete old profiles from disk until 90m uptime

2023-02-08 zzz
 * Console:
   - Add routing key to router infos (advanced)
   - Debug page sockets table cleanup
   - Load router infos more efficiently
 * NetDB:
   - Don't explore if we have enough RIs
   - Further restrict what RIs we lookup before dropping
   - Implement faster RI expiration mode
   - Increase closest-floodfill search size
   - Reduce min RI expiration
   - Reduce max floodfill fail rate
   - Replace Set with List in ExpireLeasesJob for efficiency
   - Set max routers to load at startup
 * NTCP2:
   - Ban peers that ban us
   - Block IP on failed inbound
   - Increase temp. inbound IP block time
   - Route RI block of another router to InNetMessagePool
 * Router:
   - Don't set congestion cap at startup because of high job lag
 * Sybil:
   - Don't do pair distance check unless enough memory
   - Thread analyzer at reduced priority
 * Transports: Check RI in handshake for matching IP
 * Tunnels: Load RIs more efficiently in peer selector

2023-02-04 zzz
 * Router:
   - Continue work on congestion caps (proposal 162)
   - Stat cleanup

2023-02-03 zzz
 * i2psnark: Fix failure on torrents with '#' in the name
 * Util: Fix check for illegal chars in storeProps()

2023-02-01 zzz
 * Console: Don't list same client SKM twice on /debug for subsessions
 * Profiles:
   - Count all build rejections in tunnel history
   - Remove 30m tunnel history rates
 * Ratchet: Don't bundle LS with ratchet ACK

2023-01-30 zzz
 * Blocklist:
   - Don't maintain IPv6 blocklist unless we have an IPv6 address
   - Don't read in same-country blocklist unless configured or in strict country
 * NTCP2: Ensure we publish a "6" address on transition to firewalled
 * Streaming: Refactor sig checking
 * Tunnels:
   - Refactor peer selection
   - Improve expl. build success in well-connected routers during congestion
 * Util: Add experimental config to bypass Fortuna and just use /dev/random

2023-01-27 zzz
 * Console: Debug page cleanups
 * Tools: Add CLI reseed test
 * Tunnels: Reduce grace period from 120 to 90 sec.

2023-01-26 zzz
 * Console: Add revision and build date to version info
 * i2psnark: Search fixes

2023-01-25 zzz
 * Util: New thread-unsafe version of ObjectCounter

2023-01-24 zzz
 * Router: Preliminary support for congestion caps (proposal 162)

2023-01-23 zzz
 * i2psnark standalone: Fix running from outside the directory

2023-01-22 zzz
 * Build: Fix list of changed files in manifests
 * i2psnark: Add max files per torrent config

2023-01-21 zzz
 * Console:
   - Remove ERR- and WARN- prefixes from status strings
   - Catch graph error in Docker (Gitlab #383)
 * i2psnark: Search box CSS
 * NTCP: Do not rebind internal port if only SSU external port changed
 * SSU:
   - Eliminate Symmetric NAT errors for "full cone" NATs
   - Fix rare peer test NPE
   - Fix initial SSU2 MTU when SSU1 disabled

2023-01-19 zzz
 * Build: Add i2psnark-release target

2023-01-18 zzz
 * i2psnark: Search CSS and JS

2023-01-17 zzz
 * i2psnark:
   - Add basic search box
   - Recognize more clients
 * i2ptunnel: Fix typo for SSL outproxy host

2023-01-15 zzz
 * Console:
   - Fix displayed BPS for SSU peers
   - Add netdb search by introducer count
 * i2ptunnel:
   - Interrupt client tunnel build when stop button is clicked
   - Return error message from IRC client on failure to build tunnels
   - Return 503 from HTTP client on failure to build tunnels
   - Return error code from SOCKS client on failure to build tunnels

2023-01-12 zzz
 * Router: Simplify published stats values
 * SAM: Abort tunnel build if control socket closes

2023-01-11 zzz
 * Console: Add ability to search netdb for a range of ports

2023-01-10 2.1.0 (API 0.9.57) released

2023-01-08 zzz
 * AppArmor: Allow classes.jsa in other locations
 * SSU:
   - Fix NPE handling SSU1 peer test msg 7
   - Build fix for Java 7

2023-01-03 zzz
 * Console: Add link to sort netdb country chart by count

2023-01-01 zzz
 * GeoIP 2023-01-01
 * I2CP: Reduce session limit to 50, limit is 0 for vmCommSystem
 * i2psnark:
   - Add missing button icons (dark/light themes)
   - Prep for JS DnD (Gitlab MR !73)
 * i2ptunnel: Do not retry if session limit exceeded

2022-12-31 zzz
 * Console: Change color palette for graphs on dark theme
 * i2psnark:
   - Update tracker list after editing torrent (Gitlab #380)
   - Throttle torrent startup to prevent OOMs

2022-12-30 zzz
 * UPnP: Catch AssertionError when closing SSDP multicast socket
 * Util: Add methods to convert IPv6 addresses to canonical RFC 5952 strings

2022-12-29 zzz
 * Tunnels: Limit requested client tunnels during congestion

2022-12-26 zzz
 * Console: Sort tunnels by name on /tunnels, /configtunnels, /i2ptunnel
 * Router: Don't blocklist our own IP
 * SSU:
   - Fix NPE when SSU2 disabled
   - Redesign peer test symmetric NAT detection

2022-12-23 zzz
 * SSU2:
   - More peer test fixes
   - Refactor in-session PacketBuilder2 methods to throw IOE

2022-12-22 zzz
 * SSU:
   - Further restrict states to publish peer test cap
   - Peer test scheduling fixes
 * SSU2:
   - Further restrict states to be a peer test Charlie
   - Peer test fixes

2022-12-21 zzz
 * CLI: Add a "help" command, improve command listing
 * Router: Add IPv6 analysis to Sybil checker

2022-12-20 zzz
 * Router: Add IPv6 localhost and wildcard to blocklist
 * SSU2: Peer test improvements and fixes
 * Util: Speed up IP string to byte conversion

2022-12-19 zzz
 * CLI: Add NewsHandler CLI to fetch news from servers
 * Console: Fix IPv6 searches for compressed/expanded address format
 * Router: Time initialization fixes and cleanups
   - Require two peers that agree for transports to initialize time
   - Allow SSU2 to initialize time even for large skews
   - Do not allow NTCP2 inbound to initialize time for large skews
   - Adjust SSU2 skew for RTT
   - Disable SSU1 time initialization when SSU2 is enabled
   - Round time sent in NTCP2 DateTime block

2022-12-18 zzz
 * SSU2: Compress and bundle Alice RI with relay intro

2022-12-17 zzz
 * Console: Fix UDP disabled error when SSU 1 disabled
 * SSU:
   - Don't call rebuildIfNecessary() from dropPeer() and addPeer() every time
   - Don't call test forceRunSoon() in addPeer() every time
   - Fix IP closeness check when firewalled
 * SSU2:
   - Immediately remove establish state from EstablishmentManager on fatal error
   - Send in-session termination after certain session confirmed errors
 * Transport: Fix multiple v4/v6 RouterAddresses

2022-12-15 zzz
 * Router: Change transient IPv4 blocklist to LHMCache
 * SSU2:
   - Check banlist after session confirmed
   - Don't attempt to connect to ourselves as an introducer
   - Fix retransmission of session confirmed

2022-12-14 zzz
 * Crypto: Fix wrong arguments order in ChaCha20 encrypt, breaking encrypted LS2
 * NTCP:
   - Fix rare NPE sending termination
   - Log source of clock adjustment at startup
 * SSU2:
   - Catch "shift too big" IAE from acked bitfield while sending termination
   - Drop short session request messages in packet handler
   - Preliminary fixes for handling retransmitted retries
   - Reject peer test or relay as Charlie if snatted
   - Update activity on path challenge/response

2022-12-13 zzz
 * SSU: Don't publish B cap when snatted
 * Tunnels: Tighten the hop throttle more

2022-12-12 zzz
 * SSU2: Bob asks another Peer Test Charlie on rejection

2022-12-11 zzz
 * SSU2:
   - Ban peer if he bans us in retry
   - Destroy PS2 cipher states when done
   - Handle retransmitted token request
   - Handle skew reason in termination, possibly ban peer
   - Send termination on inbound session/token request
   - Wait longer for session request after retry

2022-12-10 zzz
 * Graphs: Fix RRD time skew handling
 * SSU: Update activity timestamps for relay and peer test messages
 * SSU2: Peer Test fixes

2022-12-09 zzz
 * SSU: Don't bid on SSU1 addresses when disabled
 * Tunnels: Tighten the hop throttle

2022-12-08 zzz
 * SSU2: Fix rare IAE creating ACK block

2022-12-07 zzz
 * Console: Profile tabs cleanup
 * SSU2: Post-termination handler improvements

2022-12-06 zzz
 * SSU2: Add handler to process post-termination messages

2022-12-04 zzz
 * SSU2: Token improvements and fixes

2022-12-02 zzz
 * Debian: Fix for stray symlinks in / (gitlab #376)

2022-11-30 zzz
 * SSU: Start work on option to disable SSU 1

2022-11-28 zzz
 * i2ptunnel: Update encryption type defaults
 * Util: Add path length constraint = 0 to selfsigned certs

2022-11-26 zzz
 * Console: Hide IPv4/v6 columns on /peers status tab
 * i2ptunnel: Fix SOCKS outproxy port configuration
 * SSU: Don't build a 4 cap address at startup if configured for IPv6-only
 * SSU2: Avoid rare NPE handling apparent session confirmed without inbound state
 * Util: Fast check for random nextInt(1) and nextLong(1)

2022-11-25 zzz
 * i2ptunnel: Allow IRCv3 ACCOUNT and CHGHOST through the filter
 * Profiles: Don't let one corrupt file kill the loader thread

2022-11-24 zzz
 * Console, i2psnark standalone: Fix UI configuration for Argentinan Spanish
 * i2psnark: Add partial Danish translation
 * i2psnark standalone: Enable zh_TW UI configuration

2022-11-23 zzz
 * Build: Add debcheckpatch to release targets
 * CLI: Sort MTU output by address
 * Console:
   - Add LS lookup to search form
   - Add status and banned tabs to /peers (WIP)
   - Change mtn tunnel in help FAQ to git
   - Cleanup /debug update and app manager sections
   - Dark theme banlist margin fix
   - /configlogging fixes
 * Crypto: Don't use AccessController in I2PProvider, deprecated as of Java 17
 * i2ptunnel:
   - SOCKS 5 tunnel improvements and torsocks support
   - Fix log message on config migration
 * Router: KeysAndCert compressible padding (Proposal 161, Gitlab MR !66)
 * SSU: Remove unneeded queue latency check in UDPSender
 * SSU2: Increase Session Created max padding
 * SusiDNS: Fix off-by-one in next page last item number
 * Tunnels: Adjust expiration job start if default reject time overridden by config

2022-11-21 2.0.0 (API 0.9.56) released

2022-11-12 zzz
 * i2ptunnel: Fix IRC USER filtering

2022-11-09 zzz
 * SAM: Add warning at startup if not bound to localhost

2022-11-01 zzz
 * GeoIP 2022-11-01
 * SSU:
   - Fail SSU2 on all session request after retry errors
   - Temporarily ban peer after inbound handshake failure
   - Prefer in China

2022-10-19 zzz
 * Console: Register NavHelper with ClientAppManager as NavService
 * Debian: Change dependency from transitional package libservlet3.1-java
   to libjsp-api-java and libservlet-api-java
 * i2psnark: Register additional instances with NavService
 * SusiMail: Add icons to the buttons that were missing them (dark theme)

2022-10-17 zzz
 * Console: CSS fixes for lists in news entries
 * Tunnels: ConnectChecker fixes

2022-10-16 zzz
 * SSU2: Use from port in hole punch if different from relay response port

2022-10-15 zzz
 * i2psnark: Increase piece limit to 64K

2022-10-10 zzz
 * SSU2: Track recently-closed sessions (gitlab #370)

2022-09-28 zzz
 * Installer: Fix error on Windows when username contains a space (gitlab #367)
 * SSU2: Enable by default

2022-09-23 zzz
 * SSU2:
   - Fail handshakes while inside sync
   - Convert 1276 MTU to 1280 to workaround bug in 1.9.0
   - Ensure min packet size for pings

2022-09-20 zzz
 * i2ptunnel, eepget: Add support for SHA-256 digest proxy auth (RFC 7616)

2022-09-09 zzz
 * SSU2: Enable handling of ack-immediate flag by default

2022-09-07 zzz
 * SSU: Fallback processing for MTU detection
 * Transports: Don't rekey noise params on testnet

2022-09-06 zzz
 * NetDB: Fix reseeding when clock is skewed
 * SSU2: Don't publish or connect if our MTU becomes too small

2022-09-04 zzz
 * SusiDNS: Fix adding to empty address book

2022-09-03 zzz
 * NetDB: Query connected peers for their RI directly
 * UPnP: Fix opening IPv6 ports

2022-09-01 zzz
 * Router: Ensure database store message is processed before reply job (Gitlab #364)

2022-08-29 zzz
 * SSU2: Implement ack-immediate flag

2022-08-28 zzz
 * Console:
   - Add notification and summary bar info on deadlock
   - Linkify router hash even if not in netdb
 * Util: Add option to gzip router logs

2022-08-25 zzz
 * Router: Fix deadlock via rebuildRouterAddress() and UDPTransport
 * SSU2:
   - Implement path challenge and connection migration
   - Fix packets exceeding MTU by up to 3 bytes
   - Immediately fail session request containing zero token

2022-08-23 zzz
 * Router: Add deadlocks to event log

2022-08-22 1.9.0 (API 0.9.55) released

2022-08-10 zzz
 * SSU2: Enable for Android, ARM, and 2% of others

2022-08-06 zzz
 * GeoIP 2022-08
 * Router: Hopefully fix clock/job queue deadlock after clock shift

2022-08-05 zzz
 * SSU: Try to keep a mix of v1/v2 introducers

2022-08-04 zzz
 * i2ptunnel: New outproxy (new installs only)
 * SSU2: Block bob's IP in relay response from charlie

2022-08-02 zzz
 * SSU2: More Path challenge WIP

2022-07-31 zzz
 * SSU2: Add state lookup by conn ID

2022-07-29 zzz
 * LogManager: Prevent hangs at shutdown on Mac after dock right-click-quit (Gitlab #363)

2022-07-27 zzz
 * NetDB: Publish ff stats based on current caps, not previous
 * Router: Log warning if no family keys loaded
 * SSU: Decrease MTU only on retransmit of large packets
 * SSU2: Stub out path challenge

2022-07-26 zzz
 * SSU2: Send termination in response to termination

2022-07-25 zzz
 * SSU2: Fix bitfield shifts of 256 or more

2022-07-21 zzz
 * Console: Fix saving flat clients.config file

2022-07-19 zzz
 * GeoIP: Don't lookup route48 addresses
 * SSU:
   - Reduce max establishment time
   - Retransmit handshake messages faster and expire faster (SSU 1/2)
 * SSU2:
    - Shorten token expiration based on cache size
    - Retransmit session confirmed after receiving apparent retransmitted session created
    - Fix storage/checking of local firewalled IP address/port in token file

2022-07-17 zzz
 * SSU2:
   - More MTU fixes
   - Verify static key in RI
   - Don't put DateTime block after Termination block
   - Fix first message fail check

2022-07-15 zzz
 * SSU2:
   - MTU fixes
   - Send retry with termination on clock skew

2022-07-12 zzz
 * SSU2: Fail session if first outbound message fails

2022-07-10 zzz
 * SSU2: Fix NACK handling

2022-07-09 zzz
 * Console: Only display news if a new entry is found
 * SSU2: Support other reason codes in destroy message

2022-07-08 zzz
 * SSU: Initialize MTUs
 * SSU2: Persist SSU2 tokens
 * Transports: Don't lookup RI in wasUnreachable()

2022-07-05 zzz
 * SSU2: Fix peer test throttling

2022-07-04 zzz
 * Console: Add cancel button to netdb search form
 * NetDB: Lookup handling cleanups

2022-07-02 zzz
 * SSU: Remove copy of peers in idle timeout checker

2022-06-25 zzz
 * SSU: MTU fixes for IPv6 and SSU2

2022-06-24 zzz
 * SSU2: Peer test message 1 checks

2022-06-23 zzz
 * Debian: Update apparmor profile
 * JBigI: Drop 32-bit OSX libs

2022-06-22 zzz
 * SSU: PMTU improvements

2022-06-20 zzz
 * SSU2:
   - Fix overhead calculation for followon fragments
   - First fragments can be 5 bytes larger than followon fragments
   - Fix peer test connection ids

2022-06-19 zzz
 * SSU2:
   - Add delayed lookup of RI for relay and peer test
   - Don't delete empty ipv6 address at startup
 * Util: HostTxtParser CLI improvements

2022-06-17 zzz
 * Crypto: Fix equality checking of ECParameterSpecs
 * SusiDNS: Fix classloading on Java 11+
 * Util: ArraySet improvements, prep for use

2022-06-16 zzz
 * SSU2: Hole punch processing and fixes

2022-06-14 zzz
 * SSU2:
   - Add per-introducer relay state machine
   - Enable relay

2022-06-12 zzz
 * SSU2:
   - Fix peer test msg 1 signature
   - Relay fixes

2022-06-11 zzz
 * SSU: Don't send SSU1 relay request to SSU2 peer

2022-06-10 zzz
 * SSU: Fix for HMAC NPE take 2
 * SSU2: Continue work on relay

2022-06-08 zzz
 * NetDb: Bypass checks on lookups of our router hash
 * SSU: Request RI from introducers if missing
 * SSU2: Set timer to remove peer test state

2022-06-07 zzz
 * SSU: Ban IP on bad handshake signature
 * SSU2: Peer test fixes
 * Transport:
   - Don't requeue message after multiple failures
   - Don't remove from netdb after a failure

2022-06-06 zzz
 * Console: Add deadlock detector
 * SSU: Don't allow Android introducers
 * SSU2: Continue work on relay
 * SSU2: Peer test fixes

2022-06-03 zzz
 * SSU: Possible fix for rare HMAC NPE
 * Transports: Periodically send RI to connected peers
   (Gitlab ticket #356)

2022-06-02 zzz
 * SSU2: Relay partial implementation

2022-06-01 zzz
 * SSU2: Enable peer test

2022-05-30 zzz
 * SSLEepGet: Send Host header to HTTPS proxy

2022-05-29 zzz
 * SSU2: Remove role field from peer test block

2022-05-28 zzz
 * Console: Require full restart on transport enable/disable
 * Crypto: Handle conversion from Java JCA 15+ EdEC keys
 * I2CP: Only send one notification to each session listener
 * i2psnark: Fix DHT not restarting after router restart
 * i2psnark: Fix scrollbar hiding X box on Firefox 100
 * Router: Don't fail to start up on unchecked family key errors

2022-05-27 zzz
 * Streaming: Improve error message on unsupported sig type
 * UPnP: Don't bind HTTP listen sockets to all addresses at startup

2022-05-26 zzz
 * Addressbook: Add CLI handler

2022-05-25 zzz
 * Crypto: Throw checked exception from ElGamal
   so console key import reports the correct error

2022-05-23 1.8.0 (API 0.9.54) released

2022-05-19 zzz
 * Pull translations from Transifex

2022-05-17 zzz
 * i2psnark: Fix remaining size calculation causing tracker errors

2022-05-11 zzz
 * Transport: Fix thrashing of UPnP IPv6 listen sockets
 * Util: Rename modified apache classes (Gitlab ticket #353)

2022-05-02 zzz
 * GeoIP 2022-05-01
 * Tomcat 9.0.62

2022-04-27 zzz
 * SSU2: Peer test updates and fixes

2022-04-24 zzz
 * SSU: Publish empty IPv6 address when missing introducers
 * SSU2: Finish peer test implementation

2022-04-17 zzz
 * More soft restart fixes

2022-04-14 zzz
 * Startup: Don't set our RI loaded from disk if too old

2022-04-13 zzz
 * Router:
   - Reset uptime on soft restart
   - Don't rekey after failure to store our RI due to clock skew
   - Change comm system state during soft restart

2022-04-12 zzz
 * Console: Fix Sybil closest hash tabs
 * Transport: Fix UPnP deadlock
 * Tunnels: Don't build client tunnels less than min length

2022-04-11 zzz
 * I2CP: Fix external I2CP broken when session ID is 0

2022-04-05 zzz
 * SSU2: Fragmented Session Confirmed

2022-03-27 zzz
 * Crypto: Fix CertUtil loading EdDSA certs, check sigs
 * Router: Validate family sig at startup
 * SSU: Increase min pending establish states limit
 * SSU2: Misc. fixes, prep for fragmented RI

2022-03-26 zzz
 * Crypto: Add official EdDSA OIDs to provider
 * SSU: Reduce ack delay to minimize addition to measured RTT
 * SSU2: Hook in IMF Bloom filter to detect dups

2022-03-25 zzz
 * Console: Prevent creating a family that another router is using

2022-03-23 zzz
 * I2CP: Synch fixes
 * SSU2: Refactor tokens

2022-03-22 zzz
 * Router family fixes

2022-03-20 zzz
 * NetDB:
   - Refactor family validation
   - Remove duplicate store in FloodOnlyLookupMatchJob
   - Don't store an entry which is older

2022-03-18 zzz
 * Console: Fix rare IAE on destination sort
 * SSU2: Implement peer test state machine

2022-03-17 zzz
 * SSU: Peer Test refactor
 * SSU2: Relay and Peer Test WIP

2022-03-15 zzz
 * SSU2: Fixes

2022-03-13 zzz
 * SSU2: Fixes, stubs for relay and peer test (phase 2)

2022-03-12 zzz
 * SSU2: Fixes
 * Tunnels: Reduce build reply timeout

2022-03-11 zzz
 * i2psnark standalone: Add DTG

2022-03-10 zzz
 * SSU2: Fixes

2022-03-09 zzz
 * DTG: Add new ExternalMain class for app context use

2022-03-08 zzz
 * I2NP: Fix TunnelGatewayMessage.calculateWrittenLength()
 * SSU2: Fixes

2022-03-06 zzz
 * Console: Improve class selection on /configlogging
 * SSU2: Fixes

2022-03-04 zzz
 * Console: Add SSU version column to /peers


----------------

EARLIER HISTORY IS AVAILABLE IN THE SOURCE PACKAGE