Releases: mk6i/retro-aim-server
Releases · mk6i/retro-aim-server
v0.15.1
What's new?
Retro AIM Server now supports the TOC protocol, a text-based alternative to the OSCAR protocol.
What you can do with TOC
- Rediscover AOL's Obscure AIM Clients – Explore short-lived AIM clients like TiK and Quick Buddy. Check out the TiK Client Setup documentation to get started.
- Easily Develop Chat Bots – The simple text-based nature of TOC makes it ideal for bot development.
Community Updates
- MattKC Bytes showcased Retro AIM Server, bringing it to a wider audience!
- UFDTech discussed the feature in a YouTube Short, spreading the word even further.
- Digital Scriptorium released a comprehensive video tutorial covering RAS setup on macOS, Linux, and Windows.
- The RAS Discord channel has surpassed 500 members! Thank you for being part of the journey. Here's to the next 500!
Changelog
- 408105a update README.md
- 59de6e7 toc: support additional html tags in profile
- 393af7d issue #89 - reflect chat message back to TOC sender
- f776bd5 issue #90 - add down migration
- 1eeb901 fix go vet
- b0d6e85 issue #87 - fully parse profile HTML
- 4bec0d4 toc: document TiK client setup
- 066339d toc: handle unexpected non-GET HTTP reqs
- 2e88ac7 toc: read fixed number of bytes for FLAPON
- 10a0b38 toc: check TOC command length
- 82f16a9 toc: replace readline with bufio.scanner
- 99fef1b update mocks
- 883edf1 update dependencies
- a118ced toc: code review fixes
- dfad2bd fix go vet and lint errors
- 070a7e6 implement TOC support
- 1cd8918 add validation check for 0.0.0.0 OSCAR_HOST
- 775140c don't auto-create accts with malformatted screen names
- 2287599 Merge pull request #82 from niraethm/patch-1
- c9cce1c Update wine command to proper filename
- 017a1f4 Merge pull request #79 from Bildcraft1/main
- f9141c9 Docker support
- 48aeda4 fix bad go fmt
- 6c3f28b wire: support marshal/unmarshal arrays
- e984f5d fix: empty buddy list when AIM<=3.5 boots >3.5 client
- 1ea668a pd: set permit/deny mode on empty list
- dcd9eaa Merge pull request #75 from engirugger42/update-systemd-example
- 967d853 Update ras.service to include missing API_PORT argument
- a2ce935 Update README.md
v0.14.0
What's new?
- RAS now includes robust support for Permit/Deny functionality. This is a significant improvement from prior versions, where the only privacy feature was to block individual users. These new visibility features work seamlessly between client-side and server-side buddy lists. You can now:
- Allow communication only from users on your buddy list.
- Only allow specific contacts on an allow list.
- Block everybody if you wanted!
Changelog
v0.13.0
What's new?
-
Full Support for Windows AIM 1.x Clients!
…except for version v1.7.486. -
Chat Dice Roller is Back! 🎲
Spice up your chats with the in-chat AIM dice roller. Try your luck with://roll
(default 2x 6-sided dice)//roll-sides8
(custom side count)//roll-dice3
(custom die count)//roll-sides3-dice2
(set both side and die count)
-
Graceful Exits for Clients:
AIM now logs off smoothly when the server shuts down or another client signs in with the same screen name. -
Streamlined Configs:
TheFAIL_FAST
option has officially left the chat! Cleaner configs ahead.
Changelog
- 3ec2aba Update README.md
- 4efe8ed Update README.md
- 2ebaaf2 Update README.md
- 1c7cc69 force shutdown if connections don't close
- 9665333 fix crash at login in AIM 1.7.563-1.1.8.924
- 1762cf2 issue #23 - add roll dice chatroom support
- 457f8ed make chat room lookup case-insensitive
- d4b86c1 mgmt api: unescape ampersands in gochat URLs
- 093cd2a implement UserLookup food group
- f43386c remove FAIL_FAST from systemd config
- 1f0e0a1 remove FailFast config
- 8a43ff6 upgrade dependencies, mocks
- 7d9091d improve connection management, refactor main pkg
- 647b677 issue #70 - stop prematurely removing chat session manager records
- 21e249f issue #69 - don't sign out BOS session on admin svc disconnect
v0.12.0
What's new?
- Make your account searchable in the AIM directory by setting your contact info and interest keywords in the profile editor. Be sure to read the setup instructions for configuring search keywords for your users to select.
Changelog
- c9edc69 fix internal server error on macos client
- fac5e74 add powershell examples to additionals setup doc
- c4e0ac6 implement SNAC(0x02,0x0C) - LocateGetDirReply
- cef0bfd revert OSCAR_HOST
- bd125a5 refactor InfoQuery
- 2b88cb4 fix doc typo
- 4126914 update to goreleaser v2.3.2 (incl go 1.23.1)
- c5bdd2c document keyword setup
- f2d4949 fix ODir bugs
- 92c37bc implement ODir food group / user directory search
- 7425ba0 upgrade sqlite dependency
- 4e13afa upgrade sqlite dependency
v0.11.0
What's new?
- Issue #56 - Chat rooms now work in AIM 4.0.9 for macOS 8/9.
- Issue #42 - New endpoints for retrieving user status, away message, buddy icon, etc.
- New management API endpoints for retrieving user status, away message, buddy icon, etc.
- Various improvements to the user experience of building, configuring and running the application.
Changelog
- 44c696d documentation update
- 279504a replace native sqlite driver with pure go driver
- bb42dce load env file at application startup
- ed705e7 fix chat room crash in aim 2.0
- 5cc3a60 support user search and icq2000->icq2001 user auth
- ebe48cf Merge pull request #63 from jgknight/mgmt-api-version-endpoint
- a85a4b3 Merge pull request #62 from jgknight/mgmt-api-bugfix-content-type
- 79b20ab Add /version endpoint and --version cli flag
- 699075e Bug fix for non-gif buddy icons
- 2e0cf41 Merge pull request #61 from jgknight/mgmt-api-user-details
- 79d73de Update mgmt api and buddy unit tests
- d369eb4 Mgmt api improvements
- dece73f use a proper display screen name in RegisterBOSSession test
- 94af959 fix regression in admin service
- fac3fb8 upgrade mocks
- 2c9cf04 correct ICQ struct prefix
- bbe48be fix buddy departure events in macos aim v4.0.0
- 574b262 issue #56 - fix chat rooms in macOS AIM 4.0.9
v0.10.0
What's new?
- Issue #13 - Retro AIM Server now supports ICQ 2000b! Most core features are supported, including messaging, presence, offline messages, user profiles, and user directory search. Get started today.
- Issue #55 - Fixed a regression that caused AIM 4.xx for macOS 8/9 to hang during the login sequence..
Community Updates
Changelog
- b0c943a documentation tweaks
- 992caa6 implement SNAC(15,02)/07D0/04BA - short user info
- 784cdac release drafts by default
- f967e85 issue #60 - make service request return bos cookie
- 9b3d49e implement ICQ offline messages
- 02dd53c fix instances where isICQ is not set/read
- 7b4138e determine UIN by checking numeric screen names
- 3d26ddb issue #13 - support icq 2000b
- 353888e validate screen name when logging in with auth disabled
- 14f7ca1 small password validation refactor
- 4173088 update password validation rules based on jgknight feedback
- a5f9920 implement screen name/password validation
- 4a7151f add user handle/password validation
- f77e293 set status bitmask on session from SetUserInfoFields
- 71984cf append user info flag TLV to buddy departure events
- 83319d3 fix go vet error
- 835c383 stop reading/writing null byte for empty strings
- f5202c9 integrate ICQ into session mangagement
- 58f68d7 return correct auth error codes for icq/aim
- fa33cdf wire: handle marshalling null-terminated strings
- 899663f supply full user info in ICBMChannelMsgToClient
- 99d72d1 issue #55 - stub PermitDeny subgroup handlers
v0.9.0
What's new?
- Screen name formatting can be changed within the AIM client.
- Connecting to chat rooms works in Pidgin.
- Users can set their email address, confirm their account, and store privacy preferences. Note: privacy preferences do not take effect yet. (#50)
- All required struct marshaling features for handling ICQ protocol messages have been implemented. ICQ support will begin in the next release.
Note for Windows Users
Windows Defender has recently started to flag and delete the RAS executable upon running. You will need to add an exception to Windows Defender in order to run RAS.
Changelog
- 20fc3e5 fix typo in migration rollback
- 3a3bc85 issue #48 - fix chat in pidgin client
- 966f115 wire: add little-endian struct marshalling
- 723e8cc optional struct tag for SNAC(0x01,0x10) evil notif
- ef3b784 wire: add optional struct tag
- 495f33e use len_prefix for FLAP frame buffer
- f5edf66 Merge pull request #50 from jgknight/additional-admin-functions
- acc373a Update unit tests for additional admin changes
- 27e1983 Additional admin functions
- 91a5d3b fix go vet error
- c38ae1a wire: add struct length prefix struct tag
- 5241751 remove TestAuthService_RegisterBOSSession_SessionNotFound
- f07c787 fix buggy revert migration
- a6b3794 mgmt api: add user ID to repsonse body
- 107c6d3 Merge pull request #47 from jgknight/fix-missing-chatroom-disconnect
- 23cbee7 Update ChatNav unit tests
- 21a4ca2 Add chatroom example API calls to readme
- 6ff7bbe Send ChatNavError SNAC for common chatroom errors
- ca2b8e5 Merge pull request #46 from jgknight/admin-send-oservice-userinfo
- b20e60a Send OServiceUserInfoUpdate when formatting screenname
- 840ca35 Merge pull request #45 from jgknight/admin-service-formatsn
- b7280a4 Add admin service unit tests
- ca64417 Add admin service and screenname formatting
v0.8.0
What's new?
- The server has a concept of a public and private chat exchanges. Operators can create public chat rooms using the management API.
- Users can join existing chat rooms using AIM URLs. For example:
aim:gochat?exchange=4&roomname=my+chat+room
. - A new management API endpoint for programmatically sending IMs from/to any users.
Changelog
- b4e8f88 chores
- 46b3156 issue #44 - add endpoint for sending IM
- aa3b21f update deps
- ce63818 impl public chat exchange and persistent rooms
- 2201e12 remove bart flags check from RetrieveItem.RetrieveItem
- 92b6d8a Merge pull request #43 from jgknight/fix-evil-screenname-format
- 23c1d2e Use DisplayScreenName when sending an evil notification
- b99fada update mock buddy broadcaster
- 376afae update codecov
v0.7.0
What's new?
- Users can create formatted screen names at signup. (The ability to change the format for existing users will be available in the next release.)
- Fix the
INVALID_SNAC
gaim error that occurs when loading a buddy icon. - Fix crash when warning offline user.
- Clients use ephemeral tokens to authenticate with BOS and Chat servers. Previously, the static session ID was passed around. This makes session hijack attacks more difficult.
Community Updates
- @jgknight made his first contribution to RAS! In addition, he open-sourced a Docker image for running the Pork CLI AIM client.
- @Endedman open-sourced a management frontend for RAS.
Changelog
- 79e5f48 encapsulate buddyBroadcaster
- 51b4d44 encapsulate cookie logic within AuthService
- e217539 add support for user-defined screen name formatting
- ca608a1 upgrade github actions
- 3efdf20 Fix INVALID_SNAC error in gaim when loading icon
- f95c180 return error SNAC from OService ServiceRequest for unknown SNAC
- 944cb56 use separate session manager for chat
- 27c8761 consolidate OServiceService
- 331b64f converted buddy arrival/departure funcs to methods
- 77bf07d decouple auth service from bos service
- 7dc2057 Merge pull request #40 from jgknight/add-evil-offline-unittest
- fe8db5c Add unit tests for warning offline user
- d03adfc Merge pull request #39 from jgknight/jgknight/fix-38-warn-crash
- bf2613f Fix crash when warning offline user
v0.6.0
What's new?
- Chat is supported in AIM v2.0-v3.5.
- The perl library Net::OSCAR now works.
- User idle time is correctly calculated.
- Management API hostname and port are configurable.
- Users can be deleted via the management API.
- All the types needed to create an OSCAR client are exported in the
wire
package.
Community Updates
- @mk6i released SmarterSmarterChild, a recreation of SmarterChild based on ChatGPT and the newly exported
wire
package types. - @CoherentLogic released a brand new public AIM service based on RAS available at aim.chivanet.org.
- RAS was mentioned The Register!
Changelog
- e78cfc3 make chat work for AIM 2.x-3.5
- bc2e8bc add PermitDeny to SNAC(0x01,0x03) HostOnline
- e4ba0d6 make auth cookie fixed size
- 643b26e Merge pull request #36 from ukozi/main
- 55c3ed0 Update WINDOWS.md
- b6d7a3c Update WINDOWS.md
- f05b0c1 implement DELETE http://localhost:8080/user
- 9654b64 remove redundant write byte count assertion
- 463d9f4 fix incorrect user idle duration in UserInfo
- 7515852 fix tests
- e45ba3c revert logger
- a372557 implement temporary credentials validation endpoint
- 3a41734 ignore .DS_Store
- 9c2857f fix return err in ReceiveFLAP()
- a4d8d72 add helpers for dealing with ICBM message text
- c5e7611 add ReceiveFLAP() to FlapClient
- 72b9121 Add ApiHost configuration
- e7eb9ce export password hashing funcs and move to wire pkg
- 075be5e Add systemd service and relevant documentation
- 15ea0ef migrate FlapClient to wire package and export it
- 7dccc11 regenerate configs
- b88e1ab refactor(mgmt): add configurable port (#26)
- b630633 docs updates