Skip to content

Releases: Ivory-Hubert/Developer-Assistant

v0.3.7

01 Apr 01:23

Choose a tag to compare

[0.3.7] - 2026-04-01

Added

  • Keep the Changelog

I identified an UX disaster, users can now keep the temporary log, where changes are staged, before leaving via menu. It was already preserved when exiting with Ctrl+C. And if one enters the "Add changes" menu with this templog present, they are warned. That's quite useful for not overwriting anything important in the event of a crash (OS of course, not da-ui!)

  • Pager view

There is now an option to view changelogs with a pager, along with the default Markdown view. That's great if the changelog is getting long. Now with over 10MB changelogs the pager view is forced, faster & more useful for actually viewing such a behemoth.

Changed

  • UI updates

Changed quite miniscule wording in a couple of places, removed the cloud backup choice from the menu, for now. More importantly, I realised how unorthodox my previous choice of using "E" to return & exit was, so I swapped those out for the more standard "Q".

  • Code quality

Now that heavy feature updates are winding down a bit, I took some time to add a couple of comments to more appropriate places. I also changed the visual appearance, by breaking down long strings to take up more lines, rather than screen width. Also discovered leftover imports in some modules, those were remnants of days when I identified platforms in other modules, besides interface.py & opener.py.

v0.3.6

21 Mar 21:27

Choose a tag to compare

[0.3.6] - 2026-03-21

Added

  • Delete profile option

Added a controlled in-app option that prevents deleting the Default profile. If the user manually deletes the Default profile, it will be recreated on the next launch. The Default profile is needed as a fallback option if the user deletes the profile they're currently using, but the fallback won't work if it's already gone.

  • UI cleanup on exit

I personally got annoyed by the messy menu that remained on screen when exiting, and it's unprofessional to leave it like that. I realised my mistake so I added the cleanup. Should have thought about it earlier.

Changed

  • Sleep times

One-second timers to read shorter errors and messages is heavy friction, so I shortened them.

  • UI lists

The lists for profiles and profile projects were just one coloured string, but it looks nicer if the hyphen is white and only the name is coloured.

Fixed

  • Repeating memory instructions

With the addition of the "Delete a profile" option, I realised I was repeating myself in Interface(), so I made a load_profile() function and had the three profile-related options call this function to reload the memory with a new profile.

v0.3.5

19 Mar 19:46

Choose a tag to compare

[0.3.5] - 2026-03-19

Added

  • Format & commit

Turned changelog_template.txt into the changelog title, that the user can modify. Previously it was used for creating new changelogs, but this feature was quite useless. Since you could make new changelogs with the existsing "Add changes" option very well. So now formatting means this template is used to prepend the title to the changelog and the commit part means a custom command variable from the projects .ini file is used to run a command in the project folder (git for example).

Changed

  • File size limits

I realised the previous limit was way too big. Now, there are two limits. Under 10MB chagelogs will be rendered in the terminal with Rich. Under 20MB logs will be displayed as basic text and anything over that will be rejected.

  • UI tweaks

When creating new changelogs the prompts use > instaed of : now. The same applies for adding changelog entries aswell. Reduced sleep command durations across the program. Turned the DA header dynamic with simple standard library logic to move away from having a fixed UI appearance.

Fixed

  • Unified Markdown rendering

Previously the .md preview for saving changelog entries and just viewing your existsing changelogs from the menu, were seperate instances in the code. This is inneficient and very lazy, so I modified the code to support two seperate entry points to view_md(). Also had to do some modifications to that function to support the new two-step size checks.

  • Backup recovery bug on Windows

The last published version had a bug in the changelog backup recovery option, that only affected Windows. I fixed it by replacing an attempted rename with os.replace

v0.3.0

16 Mar 22:10

Choose a tag to compare

[0.3.0] - 2026-03-16

Added

  • Custom profiles

With a new directory structure for user data to support endless profiles.
To support and leverage the new system I added owner and edited variables to project .ini files. memory.ini takes care of tracking the active profile. The user can switch profiles and manage profile specific projects straight from the menus. The creation of a new profile requires just a one string input in Main menu / Profiles. The active profile is displayed on the top-left corner.

  • Extended atomic file operations

Changelogs now use the same robust tempfile/replace system .ini files use.

  • File size checks

DA wont try to open or display changelogs bigger than 100MB, since that's not very good on the terminal or your system... as I discovered.

  • Did I edit this project today?

Now you know, since after every changelog creation/update the Project menu will show you if it was today, yesterday or whenever.

Changed

  • Recover changelog backup

Due to changelog updates being safer now, I transformed the changelog backup that was previously a .md file into .bak, with a simple option to restore it in project settings.

  • Optimized startup

The loading bar that was purely decorative for a long time is now tied to runtime setup and initialization tasks, hence making it faster too.

Fixed

  • Unclear separation of concerns

ConfigManager() does not print messages anymore, instead returns them to Interface(). Also migrated the Projects menu from Interface() to ProjectsManager(), was truly a faux pas on my part to keep it there for so long.

v0.2.5

13 Mar 14:57

Choose a tag to compare

[0.2.5] - 2026-03-13

Fixed

  • Writing changelogs to faulty project paths

Removed a grand feature I discovered, the program wrote new changelogs to non-existing paths.

  • Misconfigured entry point and recursion

Interface() now uses a proper run() function, also intro() won't call menu() after it finishes.

Changed

  • Performance and efficiency updates

Before this update every class had its own copy of ConfigManager() for memory.ini, and that's a problem, so now memory.ini is shared between classes. Also removed useless self. prefixes from some variables that didn't need them.

Added

  • New indications about the project you're editing

In the Add changes menu you can now see what project you're editing, and once you head to save changes you can see the last version number as you're promted for the new one.

v0.2.1

12 Mar 16:46

Choose a tag to compare

[0.2.1] - 2026-03-12

Fixed

  • Opening of projects.

Fixed ConfigManager trying to read project .ini files that are mistyped in memory.ini or don't exist in Projects/.

Changed

  • Turned DA into a package

Changed the folder structure and pyproject.toml to include Templates/ and defaults if users install the packaged tool system-wide.

  • Updated the documentation

The intro is now separate from README. SETUP now accurately describes how to install the tool with uv, pip or make a shortcut, or just run it from root.

Added

  • Migration and default logic

Now that user data lives in their local OS-specific config folders, I decided a first run protocol is needed. So now with every update the default templates are packaged with DA and if they dont exist in the users config folder, they get copied there. Now the absence of a local memory.ini signals to DA that it's a first run. In that case Projects/ spawns in with Test-Project.ini pre loaded, and memory.ini comes with just Test-Project pinned.