1.0.3 (2026/04/23)
- Fixed crash when initializing workspace associated with incorrect memory allocation

--------

1.0.2 (2026/04/22)
- Fixed bug with shelving when not selecting previously shelved added files which would then cause an error if we reverted and tried to unshelve them

--------

1.0.1 (2026/04/17)
- Added diff cli command
- Added conflict-resolve, conflict-reset and conflict-list cli commands
- Changed minimum opengl version in windows to 4.0
- Fixed files with nocommit in file that are deleted not clearing the nocommit state
- Fixed deleted files with explicit nocommit not saving that information, which would cause them to lose the explicit nocommit upon relaunch
- Fixed Switch Branch button color when the user still doesn't know what branches exist
- Fixed import going out in 1.0.0 with privacy mode on (it's something used in demo videos to not show people's emails when importing from git)

--------

1.0.0 (2026/04/11)
- Data version upgraded to 9, please make sure to backup your servers before upgrading!
- Network version upgraded to 5
- Added new bot user, a new unique special user meant to be used by automated processes like build machines. This user cannot login with password, it instead uses a generated token which can be passed via cli to setup the workspace without manual intervention. It has a special kind of permissions that are in between Normal and Manager (it can do almost everything that Manager can do, except edit users to prevent problematic issues)
- Added build flags, which will display color coded icons / text on history panel changelist entries to represent state of build pipeline processes (e.g. build process for windows, playstation, etc). Build flags have 4 states: none (grey), running (yellow), ok (white) and fail (red)
- Added stable state to changelists, which allows you to flag a changelist as stable or unstable, making it useful for people deciding if they want to get a changelist or not. It can be tied to build flags in order to be set automatically
- Added support to Get Stable instead of just Get Latest, it also works with cli commands "get -cl stable" or "get-stable"
- Added content flags, which will display icons / text to represent content of a changelist in the history at a glance. By default a code content flag is defined since it is quite useful to know when getting a changelist will force a recompilation of a project, but they are customizable for each project. There can be up to 16 content flags. This is a client-side feature, and it's tied to a new .ark_config file
- Added lock and unlock cli commands (allows locking, unlocking, force take / give, force unlock all)
- Added Ctrl+D (Cmd+D in MacOS) shortcut to diff selected files depending on the context (e.g. if you select the file in changes panel it will diff local file vs current revision of the file, but if you're on the history it will do that history's revision with the previous one)
- Diff panel now shows added / removed lines for text files and file delta size for binary files
- New format for workspace changelist printing
- New changelist history window
- New users window
- Firewall is no longer handled via the Admin Log. Basically this would cause the Admin Log to be filled with automatically added ips to the blacklist. Now the Admin Log just saves the ones that are added / removed manually, for tracking purposes. This also means that the firewall is no longer synced with clients, only being synced when a user wants to display it
- Firewall is no longer handled in the Server Configuration panel, it now has its own panel in Server -> Firewall
- Firewall panel now has a filter field to help find specific entries
- When trying to commit via a workspace changelist with an id that doens't exist it will now print the available ones
- Gui revert window now has a Keep Locks checkbox (defaults to false)
- Cli revert command now can receive -keep_locks true for keeping locks when reverting (defaults to false)
- Added support to use # in file path pattern matching, you need to use \# instead and it will be processed as a # instead of the start of a comment
- Views -> Reset Layout now clears imgui saved data and windows' positions / sizes
- Ark will now always allocate at least 1ms to make sure it can do the logic update even when rendering is taking up all the frame time. This is to fix the situations where Ark is running at high frame rates (e.g. 165, 240) and for some reason the rendering needs to take more than the frame time to render, which would make it look like Ark was in a broken state not advancing
- Fixed cli revert command not properly handling reverts with conflicts
- Fixed reverting added files that got conflicts because we got latest and they had already been added (with differences from ours) that would delete the file instead of getting the latest version
- Fixed unshelving not moving all the files to the workspace changelist we're unshelving
- Fixed bug with not detecting files that were deleted while Ark wasn't running
- Fixed bug with updating locks when all locks were removed
- Fixed bug with reloading the lock entries
- Fixed bug with freeing memory when deserializing data
- Fixed new / edited gui connections not being saved
- Fixed diff not working when empty files
- Fixed empty files not being marked as text files
- Fixed cli tag-list writting the tags with debug print level instead of info
- Fixed crash when selecting the bottom of the admin log panel when no action was selected
- Fixed bug with shelve becoming in a bad state when a file had been shelved on cl A, then committed on cl B, and then A tried to be committed without any extra changes since shelved
- Fixed bug with displaying revision number in tooltip of files of a shelved cl (it was taking the version of that cl id and not the version of the current changelist we're on)
- Fixed cli exiting not closing log / admin log files, which would cause it to not be able to be relaunched on the same workspace right after
- Fixed .ark_locks not being loaded / reloaded if its changes were being handled in a full reconcile

--------

0.13.7 (2026/02/02)
- Fixed fs cache not being saved, which would cause long reconciles upon launching Ark
- Fixed crash when trying to allocate memory for > 1M files

--------

0.13.6 (2026/01/31)
- Fixed diff-ing from inside Unreal Engine
- Fixed crash when show in files was used
- Fixed potential crash in check integrity process

--------

0.13.5 (2026/01/26)
- Fixed memory crash in workspaces with hundreds of thousands of files

--------

0.13.4 (2026/01/13)
- Fixed memory bug when freeing usernames / emails while syncing the admin log
- Fixed crash if Debug menu was opened without any workspace

--------

0.13.3 (2025/11/25)
- Fixed edge case with Get Changelist / Latest and newly added files that had been shelved but not yet committed being marked as with conflicts and deleted
- Fixed edge case with Get Changelist / Latest which was supposed to delete a file but that file was already locally deleted
- Fixed issues with selection not being properly handled after a reconcile that destroys and recreates the workspace files
- Fixed shelve window not allowing you to shelve if there was a newer version / conflicts of a file
- Fixed integrity check gui not properly showing all the changelists when we had run already an integrity check, committed a changelist, and ran another integrity check
- Changed built-in servers to setup using 127.0.0.1 instead of localhost because of the connection slowdown in Windows if the machine has ipv6 setup
- Refactored how workspace files are managed in preparation for future work with multi-threading

--------

Version 0.13.2 (2025/11/15)
- Upgraded network version to 4 in order to force everybody to upgrade to this version if the server was upgraded
- Added support for OS notifications for when you edit a file that gets automatically locked to inform you if you didn't get the lock ownership and prevent data loss
- MacOS app now renamed to Ark-Vcs.app instead of Ark Vcs.app in order to make it a better citizen for the command line
- MacOS now brings only Ark-Vcs.app because of entitlements needed for notifications. If you need to use the binary directly you can access it via Ark-Vcs.app/Contents/MacOS/ark
- Diff panel now also displays added files. If you revert it on the panel, the file will be deleted
- Fixed bug with purging old cached changelist revisions / manifests / chunks when upgrading data versions. When upgrading to 0.13.2 it will force this process to run to make sure it clears the data for you and you don't have to wait for the next data version upgrade (reason for network version upgrade)
- Fixed bug with shelving folders and not committing them explicitly when committing files / folders inside that folder (reason for network version upgrade)
- Updated preferences' panel open with tooltips / hints to reference [text], [image] and [binary] patterns to open based on file content type
- Fixed Linux trying to open explorer on files would instead open those files (also fixed the context open showing as "(Unknown)", now shows "Explorer")
- Fixed Linux / MacOS not preventing multiple instances of Ark running on the server folder / workspace folders
- Linux X11 window now gets set window class "Ark-Vcs" to allow certain window managers to identify Ark windows 
- Fixed how apps are being launched in MacOS, added a special case for p4merge.app because it receives parameters in a different way
- Fixed diff panel bug that didn't reset properly when switching between files (e.g. selecting a binary after it had a text file selected)
- Fixed bug with admin log not saving after a data version upgrade
- Fixed incorrect label on admin log panel for white/blacklist entries removed

--------

Version 0.13.1 (2025/10/24)
- Added nocommit support to workspace changelists, it works via adding #+nocommit in the workspace changelist's comment (can also be added / removed via context menu)
- Set/Clear No Commit context menu option now works on all selected files, not just the hovered one
- Explicit no commit on newly added files now persists between launches
- Fixed icon not properly set on windows' executable

--------

Version 0.13.0 (2025/10/19)
- Upgraded data version to 8
- Upgraded network version to 3
- Added No Commit feature, that allows you to flag files to not be able to be committed. This is useful to prevent committing your temporary local changes that aren't meant to be committed 
- No commit support in text files, if you write <hash>nocommit (i.e. #+nocommit) they'll be flagged as no commit (it is a client side feature, so you can change the keyword <hash>nocommit to anything else)
- No commit explicit support, you can right click on a file and flag it as No Commit. This is more meant to be used by binary files, however it is commulative with in file <hash>nocommit
- Files content is now identified as text or binary, and the file icon will reflect that
- There's new [text], [image] and [binary] patterns that can be used to setup open with entries in the preferences
- Preferences are now pre-filled with options on each platform when ark is first launched
- GUI's log panel no longer works in a "filtered mode". The reason for this change is that once you start uploading / downloading a lot of data it would flood the memory logger with debug messages, but if we're not showing them it would push all the messages the memory logger had out, making it look like the log is broken but it was in fact just filled with debug entries which we weren't seeing. Now if the log passes your chosen filter level they are in the log, otherwise ignored
- Server cli now has a -use_ipv6 argument (defaults to false) since specifically Windows is very fiddly with this, so some times it would default to ipv6 and then you wouldn't be able to connect (you can also change it in Server Configuration). Something to note is that it seems that if your Windows is prefering ipv6 connections, connecting to 'localhost' using ipv4 makes it slower to connect. If you're just using built-in server without connecting from another machine, I recommend turning ipv6 on or changing your connection's host to 127.0.0.1 since it will make the client connect faster to the built-in server
- Server cli now has a -firewall_enabled argument (defaults to true, you can also change it in Server Configuration)
- Clients now send a heartbeat to the server when idle, so that the server can disconnect clients that have gone to sleep without disconnecting
- Removed "Show Console" for built-in server given that this feature would only work with Windows, if you want to check the built-in server's log simply right-click on the log panel and select Built-In Server -> Open Log With
- Linux gui now will try to use zenity, kdialog or yad to select files / folders
- Ssl connection failures no longer trigger blacklisting of ips, since in some situations actual users could trigger one and be blacklisted
- Fixed built-in server's standard out potentially being used by another file (when it happens, it tended to be ark_server.cfg given that it is the first file opened after closing the console and also it was a file that we just keep open while the server is running)
- Fixed imgui crash when rendering the changes panel in certain conditions
- Fixed merged files that had no local changes being flagged as having conflicts
- Fixed syncing shelves with different comments
- Fixed syncing committed shelves flagging them as committed which would prevent them from syncing correctly
- Binaries are now normalized to be ark(.exe) for the version with everything and ark-cli(.exe) for the version without gui (i.e. only cli and server)
- Corrected Eula to reference that seats apply to unique users and that the default number of seats without license is 3

--------

Version 0.12.1 (2025/09/22)
- Fixed git import on Linux and MacOS
- Improved built-in server shutdown on Linux and MacOS
- Fixed incorrect size of tags in history view
- Fixed imgui settings not being saved. They are now bundled with ark_gui.ini
- Removed cli git-import and git-import-list commands for now, since they were disabled because of the new gui git import

--------

Version 0.12.0 (2025/09/21)
- Linux gui application beta! It's released for now as a separate binary (ark-linux-gui), we'll see on how it will progress depending on the stability
- MacOS binary / app is now a Universal, which means it has both x86 and arm versions inside
- Added new git import wizard in gui. Allows you to choose a branch, import users, commits and tags. It also keeps the original commit times
- Fixed windows servers not being able to receive connections via ipv4
- Context menu of the workspace changelist now allows you to diff all files in it that are modified
- Context menu of a modified file will now allow you to diff all selected files that are also modified
- Fixed shutting down of built-in server not flushing its log in Linux and MacOS
- Fixed server not flushing the config file which could cause it to not be written in Linux and MacOS
- Upgraded imgui, now there's a much better text rendering
- Upgraded mbedtls
- Upgraded Jai

--------

Version 0.11.0 (2025/08/25)
- Added ability to remove files from shelves (accessible via context menu on the file)
- Added server integrity check which when run will load all data of the committed changelits to ensure that there is no data corruption. By default, whenever the server is upgraded to a newer Ark version it will run it, but you can disable this behaviour in the server configuration (check below). It is recommended that even if you don't upgrade Ark to run it once in a while to ensure that there's no problem with your server / disks. Please remember to still do your backups, specially before upgrading Ark versions.
- Added server "firewall", which allows you to whitelist / blacklist ips. It also automatically blacklists ips that perform some illegal actions
- Added ability to filter log by level (debug, info, warning and error). Moving forward it will start to default to info to be less verbose than it has been so far (Keep in mind that this is just filtering what goes to the gui logger / console, the log file will still write everything)
- Added server configuration, which allows client to remotely change some settings (the port, check integrity condition, logging level and firewall enabled)
- Server now assigns itself a unique id to help identify cases where the same workspace was connected to different server, which would corrupt the workspace since it had different projects / branches / cls / assets / etc
- Network serialization updated to use the same system introduced in 0.10.0
- Network now has a version number to be able to gracefully disconnect clients that connect using a version that is incompatible with the one running on the server
- Restricted data version to 7 in order to cull old serialization
- Shelve window now shows you when the shelf has some files but they are currently on another workspace changelist. This will also be flagged in their tooltip. Note: at this time it's a known issue that shift select cannot select ranges on these files
- Shelve window now has 2 checkboxes, that allow you to revert and unlock files after they have been shelved (note that if files are not in that shelf's workspace changelist or they are not checked to shelf these operations will not be performed)
- Shelf context menu now has Unshelve Latest which allows you to unshelve the latest at any time instead of Get Latest which only allowed you to unshelve the latest if you didn't have that version. This is specially useful for when you revert all the shelf's files and want to go back to it without opening its window (but you can still do it that way if you prefer, which allows you to unshelve any revision)
- Added new cli print command that allows you to print changelists, assets and users
- Added new cli get-latest command, which is basically an alias for get -cl latest
- Cli get command now prints some progress information
- Fixed cli commands being executed before the project is synced, which would force you to run the same command twice (e.g. cli get command)
- Added preference to set a custom file explorer (e.g. File Pilot)
- Fixed shelving window not properly displaying the status of files (i.e. darken them if they have no changes compared to the shelved version)
- Fixed potential crash when committing
- Fixed bug that would cause files that should be copied (i.e. Download Changes) to fail copying because their folder did not exist
- Fixed crash if there wasn't a username set in the changelist when inspecting its details
- Fixed layout of buttons in delete and revert windows
- Fixed the comment of a cl being committed not being updated when it was already fully shelved but comment was changed on commit
- Fixed bug in serialization of the vault.db (nothing serious, it would just ask you to login with password when it shouldn't)
- Fixed new server not properly setting listening port to the default port if no port was passed
- Fixed open url / email not working in MacOS

--------

Version 0.10.1 (2025/07/03)
- Fixed preferences not being saved
- Fixed commit / shelve window not setting the input on the comment
- Fixed Linux bug when listening to OS changes that would trigger reconciles that weren't needed

--------

Version 0.10.0 (2025/07/02)
- ** Data Version upgraded to 7. ** This is a big change affecting serialization, so make sure to backup the server and client before attempting to launch with the new version
- Added support to Tag changelists
- New file serialization system with binary support (i.e. some things are now saved in binary instead of text)
- Added Admin Log to track admin actions (e.g. adding / editing user, creating / editing projects / branches)
- Added Admin Log panel (Views -> Admin Log)
- Refactored core to use admin log as a synchronization method instead of having multiple ones (i.e. one for each of projects, branches and users)
- User password reset is now a separate action from user edit, you just right-click on the user and choose Reset Password (also new cli reset-password command)
- Comment fields of commit / shelve windows now have the keyboard input by default when opened
- Commit and shelve windows now support Ctrl+Enter to commit / shelve and Escape to close
- Reworked situations where server disconnects the client, focusing on login errors
- Server now gives auth tokens valid for 10 years instead of the old 1 month. Eventually the server will have settings to customize such behaviours, it just doesn't matter for the current users
- Server now rehashes and stores both password's hash and token's hash. The way it was setup until now, if somebody had access to the server's disk could copy the hashes and impersonate a client (even if some ways were very far-fetched). With this change, even if somebody access the server's disk, they cannot impersonate a user
- Auth tokens are now tied to a machine and not the user, which means that a user connecting from different machines will have different auth tokens
- Default .ark_ignore now adds some entries with * prefix to catch certain instances (e.g. *.vs/ as some projects create these not just at the root folder)
- Reworked how default workspace changelist works (default ws cl cannot be deleted without making another one explicitly the default, committing the ws cl will now create a new empty default ws cl instead of upgrading one of the existing ones to be the default ws cl)
- Ctrl+A on Changes view will now select all the files that belong to that changelist and not use the previous behaviour of selecting things based on context (it will still do based on context on other places like Files view since a Ctrl+A selecting everything there doesn't make much sense). The old behaviour is maintained in Changes view if you do Ctrl+Shift+A
- Ctrl+A on a workspace changelist in the Changes view will now select all it's files
- Fixed workspace changelists with multiple line comments not displaying the quantity of changes on the tooltip
- Commit and shelve windows now allow tabs to be inserted in the comment
- Changelist context menu now allows to copy tags and date
- Updated cli get command to allow getting changelists based on tag name instead of just cl id
- Added cli tag-list, tag-add and tag-remove commands
- Added cli reset-password command (and updated user-add / user-edit ones)
- Fixed MacOS bug that showed local changes after they were committed, requiring a manual reconcile to properly update their status

--------

Version 0.9.13 (2025/03/16)
- Fixed bug with reconcile when a file wasn't modified but instead deleted and added "at the same time"
- Added F5 shortcut to reconcile workspace, and Shift+F5 to do a reconcile that discards cached data
- Cli changes command now displays status ([ ] none, [+] add, [-] del, [*] mod), lock ([  ] none, [LO] lock owner, [LQ] lock queued, [LR] lock remote) and conflict ([  ] none, [NR] needs resolving, [RO] resolved ours, [RT] resolved theirs, [RM] resolved manual). Keep in mind that these cli commands are still not considered done, with some features like locking and conflict resolution still to be tackled)

--------

Version 0.9.12 (2025/02/16)
- Fixed issue that would cause interrupted reconciles to have files keep the previous checksum, which would then fail to upload to the server until reconcile was done properly again
- Fixed default .ark_ignore for UE projects
- Added close button to Diff panel

--------

Version 0.9.11 (2025/02/06)
- Added experimental diff panel, you can access it at Views -> Diff (Experimental). It allows you to revert individual diff chunks and check differences before committing without having to manually launch diff tool
- Added a cache for file path -> workspace file, which will accelerate a lot of tasks, specially in cases where you have folders with many files
- Fixed minidumps in windows being saved in the working directory instead of the app directory
- Upgraded jai to 0.2.008

--------

Version 0.9.10 (2025/01/16)
Changes:
- Copying files after a get is now time sliced, not making Ark unresponsive when getting big quantities of data
- Ark now displays the progress of copying files so you can get an idea of how long it will take
- Improved Diff context menus
- Refactored states of getting files to be more streamlined
- Shelf window will now allow you to diff the current revision's assets with any other revisions / history of that asset
- Diff in changelist history can now diff with local file too (either choosing Local or Alt+Double Click)
- Diff in changelist history now displays the versions of the asset on that branch, not the versions on the current branch we're at
- Resolve conflicts window now has a default size on opening
- Open With preference entries now display Application first and hint that the Name is optional (if it isn't present now displays executable name instead of path)
- Preferences now allows you to set the framerate for the GUI version (if 'auto' is selected - it is by default -, it will get the framerate from the current primary monitor)
- Reverting operations that would cause for the deletion of directories will now delete these directories if they have ignored files inside
- Fixed when having a workspace already populated with the data we're getting not triggering the files to be reconciled after getting latest, which meant they stay showing as being added until they were reconciled

--------

Version 0.9.9 (2025/01/03)
Changes:
- Data version ugpraded to 6.
- Refactored how conflicts and merges are handled. They are now stored in .ark/<project_id>/<branch_id>/merge.db / conflict.db (reason for data version 6)
- Resolve Conflicts in file context menu now has the following options:
    - Open Window... which launches a new window for conflict resolution of the selected files
    - Manually... which launches directly the merge app for the file we triggered the context menu
    - Keep Ours which marks all the selected files with conflicts to keep the local files
    - Get Theirs which for all selected files with conflicts will copy their respective version that is coming from the server that generated the conflict
    - Reset which which brings the state back to being in conflict and copies the "Our file" we had when we first resolved it
- Resolving conflicts now tracks which choice you made and displays it in the tooltip (e.g. Conflict: Resolved (Merged Manually)
- Added Beyond Compare 5 auto detect in preferences, it's targeting the Pro version since that's the one that supports 3-way merges
- When merging a file from a branch, but choosing to keep ours, you'll still be able to submit the file to reflect that you actually have merged but decided to keep your current file (it will still send the file in the cl, even though there's no changes. May change or not in the future, we'll see...)
- Now when launching ark with versions that don't support upgrading a certain data version it will give some explicit message about which versions can be used to upgrade which data versions
- Fixed merging folders (i.e. submitted in branch a and branch b, and then merged b -> a)
- Fixed reverting merged folders
- Fixed go to changelist only listening to enter and not keypad enter
- Fixed layout of list of files in changelist window
- Fixed crash when using context menu to switch branches which would trigger the hovered cl to become null because we needed to increase the buffer size
- Fixed server hanging in an infinite loop when client asked to lock files it didn't have in the asset db yet (i.e. assets that were being merged for the first time in this branch)
- Fixed merge rules so that files that were merged but had extra local changes before committing actually resolve as not a conflict

--------

Version 0.9.8 (2024/12/11)
Changes:
- New changelog format, now everything is just "Changes", because some times things don't really fit Features nor Fixes, order will focus on importance but fixes will tend to be grouped at the bottom
- Data version upgraded to 5 (when you see this it means that something in the save format changed, so there's a conversion happening which means you cannot go back to a previous version, so please backup before launching this version - actually just backup client and server once in a while anyway!)
- After server compresses the uploaded data, it will decompress it to ensure it's the same as what was originally sent
- Right-click on the notifications button shows a context menu that allows you to clear all notifications
- Workspace can now be removed from the GUI client by going to Workspace->Remove...
- Current workspace now is shown with a checkmark in the File->Switch Workspace menu
- Fixed when you have multiple clients running with the same user and you release locks you have, you no longer get notifications on the other clients running that same user (responsible for the data version upgrade to 5)
- Fixed launching diff was using normalized path (i.e. all lower case), so if you edited the file via diff tool it would update that file path to be normalized instead of keeping the original one
- Fixed crash if multiple clients were committing at the same time 
- Fixed workspace not saving after commit (the only consequence would be that if you committed but your commit was not latest, this information would be lost, nothing bad would really happen)
- Removed an assert that triggered when there's a decompression error (decompression errors are just handled better now)

-------

Version 0.9.7 (2024/12/03)
Fixes:
- Removed assert that would trigger when trying to initialize branches when we're creating a workspace on a project with multiple branches (it just shouldn't be there, wouldn't cause any problems, just annoy with a VS debug popup)

--------

Version 0.9.6 (2024/11/26)
Fixes:
- Removed gamepad support
- Ark gui launched without any client wouldn't render until the mouse moved on it

--------

Version 0.9.5 (2024/11/25)
Features:
- Added "Optimized Rendering" preference (on by default), which makes Ark render only when needed. In Windows you'll see a drop in GPU usage, and in MacOS both drop in CPU and GPU
- In Go To Changelist panel (ctrl+G) if you now insert * followed by a number, it will open the latest cl that ends in that number (e.g. if the latest cl is 6382 and you write *203 it will open 6203)

--------

Version 0.9.4 (2024/11/22)
Features:
- Refactored how commands are queued. In the past commands were always appended to the end, which meant that some actions were then pushed immediately, which had consequences. So now commands can inject other commands in the queue.
- Added cli command git-import-list, which allows you to output to a file the commits that you'll be trying to import so you can do some comparisons after the import to make sure nothing was lost
- Added cli command cl-list which allows you to output to a file the committed cls, mostly for you to compare with what git import said was going to import

Fixes:
- Files that were deleted on commit still showing as deleted changes until a reconcile was triggered (bug added in 0.9.3)
- Fixed git-import command (bug added in 0.9.3)
- When shelving, if we receive a TRANSFER_FAILED_CHECKSUM we'll immediately trigger a full reconcile
- Built-in server now doesn't get launched anymore when running Ark via cli commands. You'll need to move the .ark_server folder somewhere else, and run server on that new path before using cli commands

--------

Version 0.9.3 (2024/11/17)
Features:
- Jai upgraded to 0.1.095
- Client connections now receive notification when users, projects or branches are changed
- File menu context "Commit..." now generates a new workspace changelist with only the selected files and dependencies (e.g. parent folders if not committed yet)

Fixes:
- Login popup close button not disconnecting from the server
- workspace.db is now loaded and saved normalized (i.e. forward slashes), and duplicate entries are removed
- Fixed asset database of other branches not being updated, which would result in error spamming when trying to view asset information of cls committed in other branches, and require force rebuilding it upon switching branches
- Fixed logging issue that could happen on server when trying to do a log tied to a connection with a message that would include %
- Fixed log spawn when log panel would print messages that have % in them (e.g. ipv6 address)

--------

Version 0.9.2 (2024/11/01)
Fixes:
- Merging of files with changes not being properly flagged as merged in windows
- Branch graph not showing cls we just merged as being merged (i.e. they showed faded)
- Reverting of merged files with no local changes (i.e. we chose keep ours) staying on workspace cls when they shouldn't
- Cl history using current branch to get asset names instead of the cl's branch (which would spam error when that asset only exists on the other branch)
- Files merged that were exactly the same that we had locally being flagged as merged but not on any workspace cl since they had no changes
- When you have an empty file and you try to get another version that has data, it would be ignored and not downloaded
- When you went back in history, added a file before it existed, and then got cl when that file was added as empty it would override the file with the empty version and not give conflict
- Keep theirs when it was a zero size file not actually resolving properly
- Not being able to Download Chan
ges from another branch (would leave the client in a bad state until relaunched)

--------

Version 0.9.1 (2024/10/24)
Fixes:
- Cli commands not initializing fs listening correctly

--------

Version 0.9.0 (2024/10/23)

Features:
- C plugin binding (currently windows only)
- Unreal Engine Plugin 0.1 (currently windows only)
- New licensing model (Free version with 3 seats)
- A user now only takes 1 seat, even if connecting multiple times to the server
- Locks are now displayed in the tooltip, and you can copy them via context menu

Fixes:
- Open in explorer not working
- Project database not being saved when a project was edited
- Crash trying to load a cl that could occur when syncing many cls (a cl could potentially be received but cl file wouldn't be saved)
- Not being able to unshelve files just added (i.e. only exist on the shelf, not yet committed)
- Window maximize / dock position is remembered between launches
- Files with local changes would be flagged as having conflicts when we had the exact same asset revision we're trying to get
- Crash when trying to lock / unlock large quantities of files (i.e. > 4000)
- Possible corruption of workspace if 2 clients open it at the same time (now the second client shuts down gracefully)

Notes:
- Indie licenses were abolished, now there's only Free version and Business license. If you bought an Indie license you should have received a new Business license, please contact licenses@ark-vcs.com if that was not the case.


Version 0.8.0 (2024/05/12)

Features:
- MacOS server / cli / gui!
- Reworked how notifications get sent, they now are sent based on connection id and not user id (this means that if the same user is connected from 2 machines, he's up to date with notifications)
- Tooltips now have a delay before showing
- Moved Open App Folder from Debug to File menu
- Changed font to be 18pt by default, this way if somebody thinks font is too small they can scale it down and look better than scaling smaller font up

--------

Version 0.7.2 (2024/05/02)

Features:
- Added support for defining default app to launch for file / extension
- Double-Click now launches default app for that file (if defined)
- Alt + Double-Click now launches diff app depending on context (i.e. in history it launches with that version and the previous one, with other panels it uses local version with previous)
- Refactored how history diff menu is handled, now when in the history it will compare the version from that cl and not the local version
- Added support for shift + click in changes to select ranges within same changelist
- Ipv6 address input support in format [ip]:port
- Upgraded jai to 0.1.089
- Upgraded glfw to 3.4
- Upgraded imgui to 1.90.5
- Upgraded OpenGL to be 4.1 to match between Windows and upcoming MacOS version

Fixes:
- Server not clearing auth token when it was expired and the user logged in with password
- Server not loading the license
- Horizontal scrollbars now always visible to prevent flickering edge case

--------

Version 0.7.1 (2024/04/20)

Fixes:
- Fixed branch creation when we wouldn't immediately switch to it
- Fixed branch graph being broken after new branch was created until ark was relaunched
- Fixed reconcile not handled correctly when files with the same start had to be reconciled (e.g. deleting folder/file.txt and folder/file.txt_old)

--------

Version 0.7.0 (2024/04/10)

Features:
- Communication encryption, via TLS. Servers create their own certificate / private key on launch for convenience, but also supports dropping one there
- Login refactored so that the server now tells you if you're setting password or not, and if so you're now presented with confirm password field
- Changed logging to be tied to connection
- Started changing how logging is handled so that in the future we can more easily get bug reports that hide any important data
- Reworked how the whole network was setup. Now memory usage is far more under control when pushing huge shelves

Fixes: 
- Fixed cli clients not saving logs

--------

Version 0.6.6 (2024/03/17)

Fixes:
- Changed how listen sockets are setup in order to allow immediate reconnect if crashed
- Fixed deserializing corrupt network messages (e.g. random ips connecting to server)
- Fixed current selected workspace not being properly saved / loaded
- Fixed crash from right click on cl -> download changes when there wasn't already a version of the file locally
- Fixed adding new project
- Fixed bug that would cause to never reload .ark_ignore when it didn't have any entries
- Fixed when OS discards file system events inside a child folder also discarding events from files in upper levels that we'd never know were changed
- Fixed launching server without -port parameter would use the default 9000 port instead of the port saved in the server config file

--------

Version 0.6.5 (2024/03/13)

Features:
- New ignore / lock file semantics. Please check https://ark-vcs.com/documentation.html for more information (tl;dr: * supported in the middle and ! at the start of entries for exclusion)
- New Ignore Inspector panel (Views->Ignore Inspector), to help you understand why something is or isn't ignored in your project
- Refactored how ws_files are created, including caching of relative paths

Fixes:
- .ark_ignore file incorrectly reloaded when we couldn't open the file (e.g. text editor had a hold on it). We now will keep retrying until we achieve success
- Client crash when opening a workspace that is in a changelist that doesn't exist in this project
- When the server receives Ctrl+C or crashes we try to close the listen socket in order to be able to bind to it straight away

--------

Version 0.6.4 (2024/02/26)

Features:
- Windows version now has an icon, making it more distinguisable in the taskbar

Fixes:
- Bug that would disconnect new users without password with unknown user error
- Bug adding / editing connection that wouldn't properly set default host / port

--------

Version 0.6.3 (2024/02/19)

Fixes:
- Improved performance building the branch merges in changelist history when multiple branches are involved
- Fixed horizontal scrollbars in log, changes and changelist details panels
- Changed diff context menu to show the last 10 entries and place older ones under a sub-menu

--------

Version 0.6.2 (2024/02/16)

Fixes:
- Fixed bug introduced with utf8 fix from 0.6.1 that would make committing a lot of files extremely sluggish at the start
- Refactored network packet strategy in order to be more friendly for remote connections and Linux
- Limited the amount of requests handled, to limit the amount of memory allocated when pushing very big changelists

--------

Version 0.6.1 (2024/02/07)

Features:
- License changes, now Indie and Business licenses include the free seat from the Free version

Fixes:
- Bug with not using utf8 when trying to get the ws_file based on path
- Bug preventing opening shelf window when the workspace changelist it is tied to is empty
- Incorrect determination of common root changelist when trying to switch between branches if there's a non committed cl along the way

--------

Version 0.6.0 (2024/02/05)

Features:
- Linux server support
- Linux cli support
- Crash dump support: minidumps in Windows, fulldumps in Linux (requires gcore installed, which is part of gdb)
- Seats-based server license support (free version has 1 seat)
- Files are now stored compressed, making servers use 40-50% less space depending on data
- Cli commands implemented / improved: server, init, switch-branch, get, user-list, user-add, user-edit, project-list, branch-list, branch-add, changes, revert, commit
- Revamp of how cli commands are handled (more commands added, and now parameters are explicity,  e.g. -email instead of -e)
- git-import cli command, which can be used for copying 1 branch to an Ark server (this was added for testing purposes, but may be useful for somebody)

Fixes:
- Bugs on server when a client would crash in the middle of a shelve
- Bugs on client when the server would crash in the middle of a get / shelve

Notes:
- From this version on, the zip will include ark.exe and ark-linux binaries for Windows and Linux respectively. Currently only x64 versions
- If you open an older project, depending on the size, it may take a while before ark loads and becomes responsive, given that in this release we upgrade the servers in order to compress all files stored

--------

Version 0.5.1 (2023/11/03)

Fixes:
- Manual merging not launching merge app
- Merging branches with multiple changelists that changed the same file not identifying that there was no conflicts

--------

Version 0.5.0 (2023/11/02)

Features:
- Added branching and merging support (full + cherry pick)
- New history panel more focused on visibility of branches
- Added branch colors, which can be changed and synced across the whole project
- Added Keep Theirs / Ours merge options in addition to Merge Manually
- Improved how we're listening to OS filesystem changes
- Stats panel a bit more compact
- Optimization pass for handling big changelists / commits / repos _much_ faster
- Added new icon to indicate a file has merge information
- Files are now alphabetically ordered in workspace changelists
- Bumped data version to 3

Fixes:
- Fixed lock assets not properly handled on launch
- Fixed crash when children files would get asset ids before the parent ids were received

Note:
- There were a lot of changes to saved formats to support branches, so this is the only version that will upgrade from versions < 0.5.0. From the next update, all that code to support these data version changes will be removed since it doesn't make sense for the project to carry on that tech debt

--------

Version 0.4.1 (2023/08/11)

Features:
- Added support for "unique" utf8

Fixes:
- Fixed proper identification of file name when files with ascii only letters were renamed

--------

Version 0.4.0 (2023/08/04)

Features:
- Added Shelves support
- Data version upgraded from 1 to 2
- Added shelf and commit times
- Added tooltips for workspace files
- Added way to clear / mark the log 
- File context menus now allow to copy id, size and checksum
- Added support for high dpi screens, it defaults to auto (ie asks the monitor), but can be overriden in preferences
- Added mechanism to check manifest integrity, runs by default when version changes
- Improvements to Changelist / Shelf windows to be able to inspect every revision
- Empty workspace changelists now get automatically deleted (unless they are a shelf or a comment set)
- Improved diffs support via context menu
- Normalized how cl and asset ids are assigned (now at the project level, refactor necessary before tackling branches)

Fixes:
- Improved situations that because of way Windows would flag FS changes inside folders, it would cause Ark to reconcile the whole project when it didn't need to

--------

Version 0.3.0 (2023/06/09)

Features:
- Added locking support
- Added notifications (i.e. one directional messages between client and server)
- Added UI notifications (i.e. notifications that show up in the UI and the user has to interact with them)
- Added Ark window taskbar icon flashing when there are new notifications (will flash until selected)
- Added notification for users to know there are new changelists committed
- Added notifications for locks (locks received, lost, requested)
- Committing now allows you to keep hold of your locks
- Added support for "open with", allowing you to define application entries to open files
- Added context menu to commit/changelist/file windows
- Added context menu to log panel that allows you to open the log file / folder (if you're running a built-in server you can access that too)
- Added -app-folder parameter that can be used to launch with different app folder name
- Added preference to choose if you want to have the console for the built-in server visible or not


Fixes:
- Fixed getting a lot of assets (e.g. initial sync of an ongoing project), where it would cause it to jump back and forth to the same manifest and could cause the manifest entry to not be offset properly
- Fixed incorrect de-serialization of multi line strings
- Fixed rendering edge cases of ws_files
- Normalized rendering of ws_cls with multi-line comments across multiple places

--------

Version 0.2.1 (2023/04/24)

Fixes:
- Fixed usage of getenv Windows API to _wgetenv (the former would only work with ansi usernames...)

--------

Version 0.2.0 (2023/04/24)

Features:
- Reworked workspace creation to be more streamlined for first workspace
- Added support for built-in (aka local / personal) server
- Added support for auto reconnect
- Added ignore support for exact match (instead of using begins with)

Fixes:
- Fixed log panel scroll to bottom
- Fixed merge / diff argument hints not being used as the arguments when no arguments were supplied
- Fixed bug with "failed to open manifest" when trying to diff a file that belonged to the same manifest chunk we just had opened to append another asset

--------

Version 0.1.0 (2023/03/08)

First version.