You are browsing as a guest. Sign up (or log in) to start making projects!

Helyx

  • 42 Devlogs
  • 320 Total hours

A terminal app for Windows that keeps every project you have in one list, and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub issues and pull requests without opening anything else.

Super Star

As a prize for your great work, look out for a bonus prize in the mail :)

Open comments for this post

1h 8m 24s logged

Fixed User Scripts bug

So, every path block used Path.GetFullPath(path) instead of Path.GetFullPath(path, script.ProjectPath).

That means it was resolving relative paths against Helyx’s own directory, not your project’s.

This is now fixed.

0
0
51
Open comments for this post

2h 44m 35s logged

Reviewing my codebase and fixing bugs

Since all of the features that Helyx was supposed to be finished with are almost all done (maybe even all are done), I will now change my view to another projects for Stardance such as ThetaNexus.

But that does not mean that now I will just forget about Helyx. I will be reviewing the codebase sometimes to find some bugs and fix them. You can help me with this, by making an Issue request on Helyx’s GitHub.

So what bugs did I fix since the last devlog?

I fixed line breaking in badge/status README editor.
When you were inserting your badge/status into your README via Helyx’s README editor, it done… messy stuff to the README, not something like really bad what couldn’t be fixed by manually doing it, but it should now insert the badge/status exactly as you see it in the editor.

I also introduced a new ‘Found state’ text instead of ‘Found’ text in IDE settings to avoid confusion.

To avoid confusion because if an editor was found and you clicked on it… it wrote this:

Found Found
Found Not Found
Found Set by user

Now it writes this:

Found state Found
Found state Not Found
Found state Set by user
Most of the time, I was reviewing the codebase via Claude Code to actually check everything precisely.

0
0
32
Super Star

As a prize for your great work, look out for a bonus prize in the mail :)

Open comments for this post

1h 42m 48s logged

Replaced hardcoded string colors with Color members for code safety, fixed line breaking while assigning a status/badge

Okay so Markup texts (those are the texts with color) were formatted in this format:

"[red]Hello World![/]"

So it was string-based. And if you accidentally added some character to it for instance:

"[redd]Hello World![/]" <- Exception

Helyx would crash. I mainly added this, because it is an open-source project. So if someone tried to edit it, they would only have to edit the string and they might have misspelled it. But now, when he goes into the codebase, he will see Color members and he just can’t misspell that, and if he would, compiler would alert him.

Basically, now it is like this:

$"[{Color.Red}]Hello World![/]"

Okay so next I fixed line breaking. What does that mean? Well… In Helyx native README editor, so when you try to assign a status/badge, you’ll get that editor, when you try to add a status/badge to that line, you might have thought that it would be on the same line as the tags above it.

But it didn’t…

This was happening due to the comment markers for Helyx so Helyx knows where this status/badge is located and which status/badge it is.

Now Helyx will put those comment markers in a way that prevents the line from breaking.

0
0
53
Open comments for this post

2h 6m 33s logged

Added GitHub Issues/PRs events rendering

Originally, when you selected Manage GitHub Issues or PRs and opened some issues/PR. You could have only seen messages posted by users, but not when a label was assigned or when the issue/PR was closed.

Well…

Now you can! Now it displays the exact action that happened and when it happened! Of course, it is also translated to all languages that Helyx supports. Just making sure you didn’t think it wasn’t!

I also cleaned up the code a little bit. Removed some useless usings and some files were in the wrong namespace, so that is fixed too.

0
0
42
Open comments for this post

1h 15m 50s logged

Edited README.md, again

I was again editing the whole README.md, because reviewers weren’t happy with the current one.

Well after spending another hour of editing the whole README.md file, I hope they won’t ask me to rewrite the whole README.md file again, because I don’t even know what else to add/remove/edit.

0
0
32
Open comments for this post

2h 5m 22s logged

Edited README.md

I rewrote the README.md because of the ship review.
I also added a couple of recommendations that are worth knowing when you use Helyx.

I also removed the <summary> comments that Claude Code wrote for the documentation, I don’t think that anyone would have used them anyway.

0
0
42
Ship #1

What I made

Helyx is a terminal app for Windows that keeps every local Git repository you own in one place and lets you commit, branch, resolve conflicts, repair broken repositories and answer GitHub Issues and Pull Requests without opening anything else.

I spent a lot of time thinking about what kind of project I wanted to build. I wanted something that would be genuinely useful to developers in many different ways, and that is how I came up with Helyx, a TUI application that brings many Git and GitHub tasks into one place.

What was challenging

Learning new libraries, keeping the code organized as it grew, and designing every screen so it looks and feels as polished as I could get it. Deciding what to build next was harder than it sounds, because there was always more that could go in.

What I am proud of

It has everything I originally planned to include. The diagnostics screen finds what is wrong with a repository and offers the fix instead of just reporting it, the conflict resolver opens the conflicted block in its own editor, and the whole app speaks 8 languages.

How to try it

Download the latest release from Helyx’s GitHub and run it. It installs into your user folder and adds Helyx to your PATH, so you can start it by typing helyx in any terminal. No administrator rights are needed, and the .NET runtime is bundled inside.

Then pick Add project and choose any folder that contains your project.

Helyx is open source, so you can also read the code or build it yourself. Just click See source code below.

  • 36 devlogs
  • 309h
  • 19.45x multiplier
  • 5177 Stardust
Try project → See source code →
Open comments for this post

28m 5s logged

README.md update

I replaced the title in README.md with a banner that contains the text Helyx.

I tried a few versions I made and, well, I landed on the one you can see in Helyx’s README.md, or below!

0
0
34
Open comments for this post

1h 27m 27s logged

Experimenting with the conflict solver

I was thinking about adding a simpler conflict solver, where you wouldn’t have to
delete the <<<<<<<, ======= and >>>>>>> markers yourself but would just pick
either the first or the second version.

But I realized it would be messier than I thought, so in the end I kept it as a
basic editor where you remove the version you don’t want by hand.

0
0
21
Open comments for this post

4h 13m 22s logged

GitHub done, shipping Helyx today!

Today I was messing with the GitHub page for Helyx, fixing the last bugs we found and working on the installer.

For the installer I used Inno Setup, because it is the most recognized and the most used one. The point of using an installer is simple: it adds Helyx to PATH. Of course there were other options, but this one seemed like the best fit. We were fighting with the script for a while, because it was doing really weird things, like staying in the background after the installation finished. But those bugs are fixed now!

README.md is done, all of those GIFs and screenshots are in it too, and I have to say it looks really good! I was also setting up the GitHub side of things, so the description, the tags, a GitHub Action and so on.

With the help of Claude Code, we created the logo and the banner for the installer as well. The installer uses the same logo as Helyx. It’s just a basic H, because nothing else came to mind haha.

I also asked Claude Code to review the codebase one last time, and yep, it looks fine! I told it to add the basic documentation comments as well, the <summary> kind. Let’s be real here, nobody does this, and if they do, something else writes it for them, usually an AI, because it understands the function better than the person who wrote it (I know that from my own experience hahaha).

0
0
17
Open comments for this post

9h 51m 3s logged

New features, new languages, new problems.

A new feature that I added is GitHub Actions! It is on the same principle as Manage Issues and Manage PRs, so you have a list of GitHub Actions, you pick one and you can control it, check its log, observe information about it. You can even run an action!

I also added a refresh keybind to Manage Issues, Manage PRs and GitHub Actions. Before, you had to go back from the details of an issue/PR/action to the list and then return to the details. Now you don’t have to. You just have to press the keybind displayed in the footer that belongs to refresh.

Yes! The Helyx Language System is finally complete!
Italian & Portuguese are now available in Helyx!

Lately I’ve been working on the README.md file. I was mainly making more GIFs & designing screenshots for it so it will look pretty and futuristic (in my opinion)!

As I have mentioned in the title, NEW… PROBLEMS!
People… you won’t believe what happened to me today…

I use Helyx’s Git & GitHub for testing, so there is no official one yet, and I rarely commit changes or push them. Only when I test something. And it looks like it got back at me.

Well… I told Claude Code to remove comments all over my codebase, because they were mainly scrapped code and some temporary information that I had there, that wasn’t used anymore.
Okay, so I told it to remove them, and for some reason instead of removing comments, it deleted Helyx’s whole codebase. Thank god README.md was untouched haha.

We had to decompile the .dll that was left over from testing Helyx’s latest version, and actually check the diff and rewrite it. We still don’t know if everything was brought back since for some reason Claude Code’s memory got wiped instantly when it realized that it deleted my whole codebase.

There were no backups, no restore, no nothing. The only possible thing was to use the forgotten stash that I created and use the .dll as a map to restore Helyx’s outdated codebase and rewrite it again.
So that’s what we did.

Yeah, so I hope everything was brought back. Claude says it was, but after what it has done I don’t know if I trust it.

Just kidding, everything should be back, because it compared the .dll with the rewritten code 1:1 and everything matched.

0
0
15
Open comments for this post

10h 9m 56s logged

More bugs fixed, new functions, README & Language System updates!

Hello guys, once again at 4 AM!

Bugs:

As the title says, there are more fixed bugs.
Diagnostics crashed Helyx if you ran a rebase in a terminal and hit a conflict. Now it doesn’t!

Another fixed bug is that when you opened an issue in Helyx, the footer vanished. At first I was shocked, but it was a simple fix so now your footer doesn’t vanish.

Another vanishing bug! The Languages row from the header vanished when you entered a tab where Layout class was being used. Now you will see your sweet programming languages used in your selected project.

Guess what! Another vanishing bug! This time the whole header vanished when you exited .Live()! Now it is okay!

New behaviour:

I unified some color codes with some type of info. E.g. SHA is Dark Orange everywhere, Stash is Yellow, Date is Cadet Blue and Issue Number is Aqua.

The README.md editor, when inserting badges/status now has a new keybind: backspace! It is different from DEL! DEL deletes the badges/status but backspace deletes the whole line, including the badge/status that was on that line.

README

The README is almost done! At least I hope! Claude was a big help here, because I wanted to create an insane README and we really did. Guys, you should be excited about the README file haha!

Language System

Translations for these languages are already done:

  • English
  • French
  • German
  • Russian
  • Slovak
  • Spanish

So basically every language translation is already done.

BUT I decided to add even more languages! The new languages that Helyx will support are:

  • Italian
  • Portuguese
0
0
18
Open comments for this post

8h 5m 5s logged

Languages almost done, moving onto GitHub & README.md

Well guys, Language System is almost done. It is powered by a Resources file that stores all of the translated strings.

More bugs were found!
But now, all of the bugs should be fixed with also many failsafes!

Now, I want to complete the Language System because I am really close to finishing it.

I also want to make the README.md for Helyx’s GitHub Repository. Originally I wanted to make it via Obsidian app, but it doesn’t have direct support for Wakatime, so I have to use VS 2026 native Markdown editor with the support of Markdown Editor v2 extension from Mads Kristensen. (not sponsored lol)

I also heard that Obsidian app doesn’t use the same Markdown as GitHub does so there would be some things mistyped or not even rendered, but VS 2026 should be fully compatible with GitHub’s Markdown renderer, so we will see!

0
0
9
Open comments for this post

6h 31m 25s logged

Fixing more bugs

I fix bugs mainly with use of Claude Code, because hunting for bugs is not easy and this project is not a small one haha.

I had to run MANY code review tools for this, because every time it kept finding new bugs. No idea how but it did.

So what we fixed?

  1. If a GitHub comment had bold text split across two lines, opening that issue crashed Helyx before it drew anything.
  2. A file with a square bracket in its name (e.g. data[1].json) crashed Status, Diff, Commit, Stashes and Log.
  3. If anything held config.json open for even a moment, Helyx assumed it was corrupt, reset it, then crashed everywhere that looked for a project.
  4. If config.json was missing its Badges section, the startup migration quietly deleted every badge from every project.
  5. Committing saved a copy of the project taken before the confirmation prompts, so anything changed in between was silently thrown away.
  6. If you linked a GitHub repo during Push, the remote was created with an empty name.
  7. Syncing a status that had since been deleted crashed in the middle of a push.
  8. A commit message containing a square bracket crashed “View Full Message” (those are just bugs that were missing Markup.Escape() function).
  9. Applying a stash said “applied successfully” even when it conflicted.
  10. One bad path stored in config.json crashed “Add Project”.

This is just a snippet of the amount of fixed bugs. I won’t write all of them here since it would take a lot of text and I am pretty sure that this is enough for you to understand that we fixed a lot of bugs haha.

Right now I am going to do the Language System.

I am not sure if I mentioned in some devlog, the list of languages that Helyx will support.
If not… there it is:

  • English
  • Slovak
  • Spanish
  • French
  • German
  • Russian
0
0
18
Open comments for this post

9h 19m 37s logged

Adding new features & fixing bugs

I finished making “Analyze Project” which analyzes your whole project and prints stuff such as:

  • Number of files
  • Number of folders
  • Size of the project on disk
  • Number of lines

Also you can now see what amount of what programming language makes your project.

It also shows you the biggest files in your project directory.
And also you can see Git information such as:

  • Branch
  • Number of commits
  • First commit (date)
  • Last commit
  • Working tree
  • .git size

So it displays some maybe important and basic information that you may check sometimes or might be interested in. There were like 6 revisions of this because I was testing different styles & designs.

I also found a lot of hidden bugs with help of Claude!

Before talking about bugs, I will tell you something about new features that I added.

Now, when you assign a badge or change a status and you don’t have markers in README.md yet in it, then it will ask you if you want to add them manually or via Helyx.

What does that mean?

Well, it opens a “text editor” in Helyx which displays README.md and you can insert the badges/statuses where you want instead of opening the file in notepad and inserting the markers manually.
Overall it is way quicker to do it now via Helyx.

Helyx’s Generic Text Editor is now even better! You can now use all of the arrows, before you could just use Left/Right Arrow to move cursor left or right. Now you can move between lines.

Now you can also open your project’s wiki via Helyx. Be aware that it doesn’t check anything, if you have wiki or not. It directly opens the website for the wiki where it should have been for the current linked GitHub Repository.

Let’s talk about bugs now!

Open an issue called the Markdown handler function and it was accidentally calling GitHub 101 times, when it needed some info. Now it doesn’t. 🆒

Notes have an encryption system, so if you put some sensitive info into it, it couldn’t be directly taken from the file. Only via Helyx. There was a bug, where when you enabled encryption and edit notes of 2 projects, then you turn off encryption globally and open the first project’s notes, it decrypts… but after that you open second project’s notes, it won’t. This was due to having a global bool instead of per project bool when saving if it was encrypted. Fixeddd! :happy:

Another bug! Sync Status & Sync Badges was deleting staging index. Funny that I was thinking about to restore the staging index whenever using it, but at the end… the logic was wrong 😭 Now it isn’t.

Then there was a bug that when you unassigned a badge, it unassigned ALL badges. Fixed! :mark:

Another bug linked to badges… Unassigning a badge didn’t remove it from GitHub. Yeah… fixed!! :happi:

0
0
12
Open comments for this post

10h 0m 39s logged

Manage PRs done! Added few new things…

I finally finished making Manage PRs. So now you can:

  • Delete Comment
  • Merge
  • Review
  • Close PR
  • Reopen PR

I also had to fix some design flaws and function flaws but now it should be all good.
Before doing all of this, there was a bunch of GET requests… now? Now it is also a bunch of PATCH & PUT requests.
Also, now when you’ll try to link your GitHub Repository with the local one, you will just select the one that is on your GitHub account.

Another thing! When you have conflicts between the local repository and the remote one (GitHub) and you try to sync them, a lot of the time Notepad pops us and tells you to remove the version of the text that you don’t want.

Well now Helyx does it too and doesn’t open notepad, but lets you do it directly in TUI interface in my very own notepad. Conflict solver also uses alternate screen for this. (there’s sadly no showoff image for this, because currently I don’t have anything to create a conflict on)

I am not sure what to do next in a next devlog, since everything I really wanted to do is already done… well… not everything but everything around the main things is.

Maybe I’ll move on another refactoring? Or finishing the language settings? Well, we will see!

0
0
14
Open comments for this post

9h 14m 50s logged

Manage PRs displaying and some logic done

After pulling another all-nighter I finished making the Pull Request display functions. List and details about each Pull Request is done and paging also works too (took it from manage issues ;] ).

Pull Requests also contain filters such as:

  • Open
  • Drafts
  • Assigned
  • Reviewed

and we can’t forget their counterparts either:

  • Closed
  • Ready
  • Unassigned
  • No reviewers

Pull Requests now have comment selection and Markdown formatting, but functions to manage Pull Requests are not done yet.

The only ones I managed to finish are:

  • Comment
  • Open Browser

The biggest problem with PRs is going to be, that their functions and methods for executing those functions are more complex than the ones for Issues.

I plan to add these functions for PRs:

  • Delete Comment
  • Merge
  • Review
  • Close PR
  • Reopen PR

I am pretty sure that all of this will be done in next devlog, so stay updated! This is going to be very cool, I think.

Well, now I am going to sleep so good night everyone!

0
0
29
Open comments for this post

8h 33m 11s logged

Manage Issues, completed! PRs, incoming…

Manage Issues is now fully completed. I still had a few issues with paging and rendering but now they are fixed.

Now you can select a message and delete it & edit it. But also now you can create a comment, lock an issue, unlock an issue and create an issue.

I also added a thing that I hope will be appreciated, Helyx renders Markdown from GitHub Issue comment and when you comment via Helyx, Helyx gives you Markdown options such as:

  • Bold Text
  • Italic Text
  • Code Text
  • List
  • Quote

Also, when you don’t provide a text to a comment in GitHub, Helyx will say that “No description was provided.” So the same thing as GitHub already does, but in Helyx you must provide text.

Why?

Because why would you create a comment with no text? So I banned adding a comment with no text.

Okay, that would be everything! It was fun to create this because everything was working so well, except the paging system… that was painful to make even with Claude’s help.

As I said in past devlogs, after Issues I am going to move to PRs. So yeah, let’s work on PR. I hope it won’t be harder to make, because a PR is a type of Issue in GitHub, so I hope I will use the same function logic and functions and callbacks to make it.

0
0
12
Open comments for this post

9h 14m 33s logged

Paging done, functions almost!

I finished making the logic for rendering issues. In the last devlog it was just displaying all of the issues at the same time. No paging system so if there was a lot of issues or long issues, they would simply… not appear.

It took me a really long time to work this out. I was mainly switching back and forth the rendering logic all the time and it went so far, that I had to use Claude to help me with it.

At the end, I ended up with a rendering logic that I am not really keen on, but it is the best one that can be used in Helyx and TUI environment.

Main obstacles were the Spectre.Console rendering functions and classes that were under IRenderable interface.

And also the limitations of Panels, Grids… Layout had everything I needed :heart-eng: . I wanted to cut the part which couldn’t be rendered and it should have looked like, like an unfinished Panel. Well, this was impossible. Without changing the core code of Spectre.Console or creating own system for making Panels it was impossible.

Also, I haven’t seen it as something that WOULD NEED an own system that would render comments. So I just made it when a comment cuts, it creates whole Panel with part of the comment that can be rendered and at the bottom is text saying that it continues on the next page… and on the other page at the top there’s text that, hey, it continues here!

Let’s finally talk about the Issue functions! I finished some simple one like:

  • Close
  • Reopen

and create an issue…

But I still have to create a system that can let you:

  • Comment
  • Edit comments
  • Delete comments
  • Lock issue
  • Unlock issue

Those are currently in WIP, but in the next devlog they’ll be most probably finished and after everything is done with issues, I will move to Pull Requests!

0
0
9
Open comments for this post

9h 53m 1s logged

Manage Issues, at your service.

After a painful development period I am again here, writing devlog!

What changed? Good question!

Manage Issues is partly done! I still have to finish making the actual actions but displaying is somewhat finished.

When you go to ‘Manage Issues’, you will firstly see a list of issues that are on your GitHub repository.
From there you can already see some details about the issues such as:

  • Number
  • State
  • Title
  • Labels
  • Comments (number)
  • Updated (time)

Above them are filters, currently those are the available filters:

  • All -> All
  • Commented -> Issues has some comments
  • Assigned -> Issues that have some assignees
  • Labels -> Issues that have some labels

But that is not all!

There are also their counterparts:

  • No comments
  • Unassigned
  • Unlabeled

(there’s no inversion of All because why would you need filter None)

Yeah, so you can invert your filters…

When you select an issue at the very top you will see its number, then you will have a panel with details about the issue with its title and:

  • State
  • Author
  • Opened (time)
  • Labels
  • Assignees

Right under these details are all of the comments in chronological order.

When it is done, it will also show the whole timeline of each issue. So when this and this label was added/removed… when was this assignee assigned/unassigned… when was this issue closed/opened….

Of course I am going to add actions so you can add a comment, close issue, open issue, etc…

When I’ll finish Manage Issues, I will go to work on Manage Pull Requests. It shouldn’t be that different because Pull Requests are by GitHub a kind of Issue but they are also not the same, so different classes, types, etc…

Well, wish me luck people… or should I say… Stardancers??

P.S.:
Sorry for the grammar in images in comments. I did it very quick for the preview.

0
0
13
Open comments for this post

9h 47m 13s logged

Diagnostics done, other stuff too and some changes!

Diagnostics are now fully done! When something messes up, it will give you options to fix it!

Some time ago I created GitHub Synchronization settings for managing what to sync with GitHub, so what to retrieve and send with those options:

  • Sync status with GitHub repository
  • Sync badges with GitHub repository
  • Fetch GitHub repository topics
  • Fetch GitHub repository stats
  • Use GitHub’s language detection instead of Helyx’s

I created a brand new tab called ‘GitHub Actions’ where this setting is. GitHub Actions is meant to contain all of the actions that are mainly linked with GitHub endpoints.

I kept few such as Push, Pull, Sync in Git Actions due to how the layout is already created.

Also I added when you are rebasing and it fails, it automatically gives you a prompt to cancel it. So repair it…

GitHub Actions will contain a new stuff that will come to Helyx! Managing Issues and Pull Requests!! Maybe also workspaces/actions but I will see how difficult that is and how it is needed/useful in Helyx.

Another new function is, that when there’s an update for Helyx and I change the GitHub OAuth scope because of new features… Helyx will warn you and tell you to reauthorize to make sure every function will work correctly.

Before this change, Helyx was using its folder name as a name of the project and as a repository name for GitHub. Now, when you add a project to Helyx, Helyx will ask you what’s its name and when you will try to use some GitHub function for the first time on your newly added project on Helyx, it will request a GitHub Repository name from you. ;)

There’s still a lot of things to add. Honestly I thought that Helyx was at the very end like 50 hours ago and look! There are many more functions to add haha!

0
0
16
Open comments for this post

8h 1m 15s logged

Doctor Git

As you may know, right now I am working on Diagnostics. I am almost done with fully displaying all of the health checks about your Git repository.

But I still have to finish all of the fixing actions that it will have. Diagnostics will mainly be for a case where something happens in Helyx and it will need to be fixed.

The main idea of it is not aimed at resolving issues with your Git repository outside Helyx. But it may resolve some because you may run into the same issue as you had in Helyx of course.

In the last devlog I said that I put GitHub Topics off. Well, that did not happen!

I finished displaying GitHub Topics!!
I think in some devlogs I said that it was for managing GitHub Topics. Managing meant like adding, removing, editing.

Well, that wasn’t actually my main point. I just wanted it to show you your currently assigned topics in GitHub. I also didn’t see a big reason in adding Add, Remove, Edit functions for topics.

Topics rarely changed, honestly and the most intuitive way would be doing it via GitHub web interface.

0
0
18
Open comments for this post

3h 40m 10s logged

More bugs are appearing, and being fixed!!

So since Helyx is already far and has many advanced functions, it also has some bugs. Today when I was experimenting with assigning a project and syncing it with GitHub, I found out, that if you try to sync the projects in a wrong way… it will not work.

For that reason I added more fail-safes to make sure that this will be eliminated. I can’t confirm yet if those fail-safes work, because I am also working on a new Diagnostics action in Git Actions so if something goes wrong, you can fix it by the error Helyx gives you.

Right now my testing project is in a state of “Git corrupted” (no idea what I should call it) where rebase was aborted.

Because of this, I had to put the “GitHub Sync Topics” synchronization off until later, so I can focus on fixing these major bugs.

Also another bug came to my mind that I fixed… Helyx works on a principle of directory paths. Each project is saved in config file under its own unique GUID and its path. The bug is that when you try to rename the directory, the project won’t be found and it will be removed from Helyx.

Now, you can either let Helyx find it automatically (sadly can easily fail) or you can select project manually in explorer (recommended!!!).

0
0
8
Open comments for this post

4h 14m 12s logged

Sync finally done!!

It’s 5 AM and I finished “Sync badges with GitHub Repository” and “Sync the status with GitHub repository” (this was already done, but with the enum version of status).

I added also a few fail-safes so when you assign some badge or status and then delete it, it will also delete it from GitHub and project. Now it won’t be a ghost that you cannot get rid of haha.

This was a little more difficult than I expected to do, the fail-safes because the local changing mechanism and syncing mechanism were written inline in the same function. The only thing that was dividing them was an if statement.

It was interesting to make this. To make sure everything will work fine. Even though it didn’t MANY TIMES.

Now I will focus on syncing GitHub topics.
Wish me luck!

P.S.:

Forgot to mention, that I have to add this “On Status/Badge Edit, ASAP sync with GitHub” with Edit. I almost forgot lol, just came into my mind.

I hope that COPY+PASTE will be enough and I won’t have to create another syncing system specifically for edits…

0
0
18
Open comments for this post

8h 41m 23s logged

Never expected it to be this hard

So the last days I was again changing the structure of my solution and trying to get on with it.
It took me a while to create one that Claude agrees with and is good for such open-source projects.

Anyways, this was the easy part. In my last devlog I said that I completed Custom Statuses & Custom Badges. Well… I did!

But then I found out, that my system was bad… and when I say bad I mean it wasn’t thought out. I found out about all of this when I finished the edit action for both. Originally I used Dictionary<string, TagDefinition>. Key was name of the Status/Badge and TagDefinition was the class of one of them which also has name property.

But Helyx was not prepared for this, so for the last days I redid the whole system eight times. Once I used Dictionary, once I used List, then HashSet, then Dictionary, then Dictionary with other types and so on.

I just couldn’t settle on the correct type for it. Until now, it took so long even though it is so primitive because it simply didn’t come to my mind and when I was asking Claude for suggestions of how could it be made, it didn’t think of using this type.

The final type is simply… Dictionary<Guid, TagDefinition> AND A LOT OF CHANGES.

Yeah… don’t worry guys! I am totally devastated by doing this over and over even though it was so simple & primitive to do. Well… maybe not really primitive because the changes were also difficult to do.

I mainly didn’t want to use the GUID system because I have Custom Statuses but also Built-in Statuses and I was really worried about Built-in statuses having GUID assigned to them.

Those sync options with GitHub are still in work, but I finished the GitHub Repository Stats viewer after a lot of experimenting with layouts and designs/effects/colors.

I’m looking forward to the next devlog guys! I hope Helyx will be your good coworker that will actually count for something hah!

P.S.:

I also made that text of colors is grammatically formatted. At least it should be…

0
0
14
Open comments for this post

6h 30m 23s logged

Adding Custom Statuses, Custom Badges and even more!

Here we are again!

Today I added:

  • Custom Statuses
  • Custom Badges

WIP:

  • Sync badges with GitHub repository
  • Sync topics with GitHub repository

My original status system for projects was a hardcoded enum with statuses “Active”, “Inactive”, “Paused” and “Archived”. Then I had a lot of switches which determined color of markup based on which enum it is hah.

As you may already know, enums cannot be changed in runtime :)

What does that mean?
That users cannot add their own statuses in Helyx directly… They would have to hardcode into Helyx their own statuses and that’s just impractical, no?

That’s why I spent below mentioned amount of hours redoing so many things to make it actually work and I even learned something from this!
That JSON Parsers and Colors are NOT huge friends! (genuinely, I HAD NO IDEA why it wasn’t working until AI told me that JSON parsers cannot translate Color structs).

Custom Statuses/Badges currently have Add/Delete functions and right now I am going to add also Edit function, so when you accidentally create a status/badge with wrong color, you don’t have to delete it and create it again :) (just saved 10seconds of your life).

I also recategorized my whole codebase with help of Claude Code. I told him to review my whole codebase and suggest what classes, enums, interfaces should be in which files and those files in which folders.

It was fun, finally something where I did not have to concentrate much and chill and watch something when doing it. Well, now it is not much fun when functions that I was using are in different files and some classes have different names. But at least my codebase looks more professional! (before this I had like 10 files with a bunch of lines where classes were stacked…)

Also, about the WIP stuff above… Sync badges with GitHub repository is going to be something like the Sync status with GitHub repository. It will just pop up in your README.md based on where you put the headers which Helyx will give you for that specific badge.

Sync topics on the other hand are classic topics of the repository which you can see in top right corner of your repository page. It will mostly show you which topics are assigned to your repository in Helyx but I’ll make it also so you can assign/unassign topics from your repository.

I’m thinking of adding more GitHub Synchronization options, but none are currently coming to my mind. Maybe something with actions, no idea yet, or local AI that will explain to you errors given by Helyx when you will be trying to do something.

We will see!

0
0
9
Open comments for this post

5h 19m 53s logged

Settings and Git pages are receiving more stuff!

I added
for Settings page:

  • Notes Settings
  • Updates
    and for Git page:
  • Undo Commit
  • Redo Commit

as the name says, Notes Settings are for changing properties of global Notes on every project. There is only one setting that came to my mind and that is encryption.

Some of you might paste into it something personal or confidential. Well, this makes sure that these info CANNOT be taken from raw file, but from Helyx directly. (thinking about adding password mechanism lol)

Updates, yeah, it looks for updates for Helyx :d: .

Undo Commit is a special one, when you commit something and for some reason you want to go back you just undo it.

On the other hand, if you somehow accidentaly clicked on Undo Commit or now you want to redo the undo, you can with Redo Commit.

My plan now is to add again more functions, such as Custom Badges, option to sync the Custom Badges with your GitHub repo (it will pop up in README.md) and also add Tags sync, so you can edit your repository’s Tags via Helyx. Oh yeah, also going to add custom project status because some people may say that having statuses such as “Active”, “Inactive”, “Paused”, “Archived” is limiting (custom ones will yes, also be synced with GitHub). :)

I also mustn’t forget to add the translations for other languages. I am going to do this at the end due to new text appearing every time I add something new.

0
0
6
Open comments for this post

6h 12m 13s logged

Slowly, but surely

We are almost at the end (if no other function to add will come to my mind) and I was messing with access modifiers, accessors, refactoring names of variables, Tasks, voids, properties.

I was adding exception handling keywords and many ifs to make sure there will be no bugs and that almost every exception will be caught. I was doing this manually so I might have missed some places where the exception handler is needed but yeah we shall see!

I also enabled a search bar, so when you will be looking for your project in Helyx and you have many projects added, you can search for yours!

I was also changing styles of my old menus and theirs logic because they weren’t done very well in comparison with style that I am using now…

Funny story: while I was messing with the access modifiers and accessors I actually bricked the whole Helyx, because functions that were supposed to resolve configuration file and read/write into it couldn’t. I thought I accidentally removed something important but at the end it was just that, that I was changing the access modifiers and accessors.

1
0
11
Open comments for this post

9h 29m 3s logged

Added new setting, finished overwrite languages and still working on show stats

I have finished the overwrite languages function which uses GitHub’s programming languages detection system over Helyx’s one.

I added a setting where you can choose your identity (Git -> local, GitHub -> remote). Local is based on Git’s settings and remote one is accessible after authorization with GitHub.

I am currently working on retrieving and displaying the GitHub repository statistics. I am using charts to display it nicely and simply. Currently it is showing only Stars, Watchers, Forks and chart of used languages.

I also added a few informative labels that tell you that something is actually happening and the program did not freeze. If I didn’t add this you would be looking at an empty black screen.

One of the last things I added is active GitHub Authorization Token checker and resolver. Before this if you revoked your OAuth with Helyx on GitHub page, Helyx would think that it is still authorized to your GitHub account, now it checks it and if you revoke it online, Helyx will disable functions that are only accessible when you are authorized via GitHub.

0
0
11
Open comments for this post

4h 57m 20s logged

User Scripts done? What next??

As written above, I have finished User Scripts. Yeah, they don’t have that many functions as before, but I am going to add some, that will actually be useful and will stay in Helyx.

Right after that I’d want to move to add more things to GitHub Synchronization settings that are per project. This is mainly to make the Helyx project dashboard look better with more interesting info about your current repository. Be aware that you have to be authorized in Helyx via GitHub to access those settings.

This may sound funny, but I was thinking about adding Add-on manager to Helyx. No idea how I would make it yet or what packages would even Helyx have, but I hope that after some brainstorming I will have an answer. Before that, I will again think for a while if it is a good idea and if it is even needed. But surely it sounds cool to me, to someone who has never made an add-on manager for his program.

At the end I want to transfer my view to hardening the code. Many checkings, many dialog boxes what’s wrong, and such things, so your Helyx window just doesn’t close after you mess up with configuration file or you do something that no one would ever do in his lifetime. ;)

0
0
8
Open comments for this post

10h 0m 19s logged

Changing my mind over User Scripts

So I have finished all of these User Scripts functions and I found out something interesting, that made me remove some of them after I finished them. In the devlog before, I wrote a list of actions that are in Helyx such as… Wait Until, If, Loop, Set/Get Variable, etc….

Well, I found out that making some that I have mentioned would be useless, because I imagined User Scripts mainly as an automatic actions for testing your project, but how could your program get script’s variable from Helyx or set/change it.

The same applies for If, If would be also complex to set. With each If Action there would be x^2 (if my calculations are correct) more node pathways and without making some really good UX in TUI environment, it would be difficult to find your way around.

0
0
9
Open comments for this post

9h 11m 45s logged

Making User Scripts

I am currently working on the User Scripts as I have mentioned in older devlogs. I must say that this is one of my first interactions with interfaces in C# because there was not a huge reason to use it in my code… until now.

I must say that User Scripts is the most difficult thing in all Helyx to make because you have to think on everything… how this will work, how shall we display it, how to make it versatile so other actions work with it too, etc…

I made the system for adding Blocks (Actions = Blocks) to Scripts and right now I am implementing dialogs to insert properties for each action, such as Duration for Wait Action.

These are current actions that are in Helyx (you can suggest new ones in comments):

  • Wait
  • Wait Until
  • If
  • Loop (should be something like while(), might change the idea of it)
  • End (ends script, so like return/break)
  • Set Variable
  • Get Variable
  • Compare
  • Random
  • Log (logs text)
  • Execute (executes command)
  • Open (opens directory)
  • Create File
  • Create Folder
  • Delete File
  • Delete Folder

Right after that I would want to move to make the UI look overall better and function better.

Welp, we will see in my next devlog the progress I will make. :heart-eng:

0
0
8
Open comments for this post

5h 39m 22s logged

Backup system, done!!

I finished the Backup system and also had to fix some major issues I had in helper functions due to the “project looking up system” migration… yeah… awkward name, I know.

Now that the Backup system is done, let me continue and begin to work on User Scripts. Just realized that I have to come up with how it will work…

0
0
12
Open comments for this post

8h 20m 41s logged

Losing sanity is not fun

I honestly think I’ll go insane soon.

I have changed the whole system of how Helyx saves Projects to its config file and how every function… EVERY FUNCTION works with it.

I just have to say that I’ll try my best to make the code better than the one I am currently editing because 18h spent on redoing the whole codebase (revamping included from devlog before) is 1. crazy and 2. even more crazy.

It’s wild how a tiny thing can ruin your whole codebase, I hope I will finish it quickly, because I want to continue working on the Backup system and after that on the User Scripts.

0
0
11
Open comments for this post

9h 55m 48s logged

Cleanup time!

I have completely revamped my code… I removed a lot of unused code that was either used for experimenting or was scrapped and I forgot to remove it. Before removing some of the code, I actually tried something with it… but then I realized that they were commented for some reason.

I refactored parts of my code to look overall simpler with lambda expressions and LINQ. Not sure if it is more readable now, but it works so it’s fine. If anything, I’ll just add a comment so I know what it does instead of looking at it and brainstorming what it could be.

I decided to mainly work on the Backup system because I think that User Scripts will be more complicated to make.

0
0
9
Open comments for this post

6h 21m 27s logged

Local & Remote Repository status

I just finished making the status manager, so now you can change your status locally… but also remotely! Remotely means on GitHub, not like via some controller.

Because of this, I created a tab called GitHub Synchronization, where you can enable/disable settings that are linked with GitHub and retrieve/push from/to GitHub.

Now, I am planning to work on Backup system and User Scripts.

0
0
12
Open comments for this post

9h 47m 10s logged

Git Actions family is getting EVEN bigger!

I have finally finished a lot of major stuff and also tried to make some additional things that MAY be added in the future.

I finally added Stashes, Pull, Push and Sync to the Git Actions, so now they work!

Also, all of Git functions have some automatic repair, so if you do something you shouldn’t, it should be alright… but it is not 100% so don’t try your luck!

I still have to finish and a bunch of stuff with it so you can do whatever you want with it without editing the code itself!

I was thinking of adding some label for your GitHub repository which you can control via Helyx. Like status… yeah… let’s add a badge that will act as a status info of your project!

0
0
9
Open comments for this post

12h 51m 28s logged

Git Actions family is getting bigger!

We’ve made a lot of progress!

More of the Git Actions are done such as…

  • Status
  • Stage
  • Commit
  • Diff
  • Create Branch
  • Switch Branch
  • Delete Branch

Right now I am working on another:

  • Pull
  • Push
  • Sync
  • Stashes

I hope they will be done soon!

Stay updated!

0
0
6
Open comments for this post

45h 56m 44s logged

Huge updates!!

Since it is my first time working with Spectre.Console library, I was trying a lot of stuff with it. When I was somewhat happy with what I learned, I cleaned up the code due to the amount of useless lines and duplicated/not used variables .

1, Updated UI/UX

  • I have updated the UI/UX so it looks more modern-ish.
  • This new UI/UX design is for now only on the main pages of Helyx… but I plan to add it to every page very soon!

2, More actions! (even more will be available in the future)

  • I have added more Git Actions that are still in WIP.
  • I also created templates in code of what actions I’d want to add later.
  • I’ll tell you more about them when they will be finished (SOON).

3, More stuff in Settings!

  • I have added more settings into Settings :D
  • Now you can select Default IDE, see if your IDE was found in your system, if not you can manually select the .exe of it.
  • You can also manage the configuration file, well, reset it.

4, Projects sorting

  • Projects are now sorted based on its status.

5, You can manage the projects for Helyx

  • You can now delete the projects and change the status.

6, Future bugs & lots of if statements

  • My code was completely unsafe up to this point, so I had to add many of try/catch and if statements to make it safe.

I was experimenting with Spectre.Console, because I have never worked with it. I made some cool stuff that I will add in the future to Helyx! I understand it now better!

All of this was quite difficult for me to do, since as I said, on such project where I am using C# with its basic types… I was mostly a Unity C# Developer, where Unity had its own classes and functions and callers that were standard.

0
0
6
Open comments for this post

14h 1m 37s logged

Helyx, the IDE detective

I’ve been working on the IDE detection system. This took me a long time because I was testing many different ways of how to detect it and then sort them from most probable to least. At the end I have selected the one that uses points based on what the Project includes in its path… so files, extensions and directories.

I was experimenting with the Language system that I will make in the future. I just want to be sure what I am doing so later, I won’t be in panic what now and what was my original plan.

I have also refactored the code to some point but it is still not great after all of these things I have done above :d: … so still need to do this.

I redesigned the menus and made it more universal and made the menu easier to navigate in.

I think my progress is going kinda good so far and it looks promising for me.

I also added some basic Git function like “git status” but I am about to add more.

:warn:
I’d appreciate if you would write into comments some functions that I should add to Helyx.
:warn:

Not sure if I already mentioned this but I am also planning to add a feature so you can create your own shortcuts for your projects like… some testing shortcut.

For instance, you have some project you want to test and you need to build it, then tweak some settings and at the end you actually test.
With this, you can do all of this just by one click…
Well, that’s at least my imagination and I am not sure if it will get to such point where you can do such tasks but we’ll see :swiftyprogrammer690_prdino:

Wish me luck!

0
0
9
Open comments for this post

4h 2m 1s logged

Project handler, done for now

I was thinking of adding a translation system for Helyx. I was experimenting with a lot of systems how to do it… well, I might keep this for the end of Helyx so at the end I translate all of the strings.

I added the “Add Project” system and some basic detection systems for it such as…

  • Project Name
  • Path
  • Languages (used programming language in project)
  • Used IDE for the project

then it will ask you if you really, but REALLY want to add the project and if you proceed it will be added to your Projects menu.

After that you can open your Project and see such basic info as…

  • Status
  • Last modified
  • Languages
  • Used IDE
  • Is a GIT Repo

I am thinking about adding more, removing some and making it overall more versatile because versatile applications are just the best ones.

For now, I created some basic functions for your Projects such as…

  • Open in VS Code
  • Git Status
  • Remove Project (from Helyx)

but these are the ones already working, but I am still trying to make them more versatile :p

… but there’s more functions that I am currently working on, that I hope won’t be scrapped and I will mention them in next devlog!

0
0
11
Open comments for this post

7h 45m 36s logged

Lots of new ideas, lots of scrapped ideas

Lately I’ve been working on a way to search for projects automatically but I had to scrap the idea because I didn’t like it at the end… so now I am making it so you can add your own projects and some IDE integrations.

I was also trying multiple libraries for TUI interface integration and GUI support with other libraries and input devices.

These hours were full of scrapping & making new ideas, but that’s what programming is about!

0
0
22
Open comments for this post

1h 18m 14s logged

The beginning…

So I have finally begun to work on this!

I was thinking a lot what to create for Stardance and it looks like this might be something I want to create!

Originally I wanted to create this in Python but then I really quickly found out that my Python skills wouldn’t be enough to create something like this and I didn’t want this to be a vibe-coding project…

SO HERE WE ARE… using C#!

So far so good, I guess…
Currently I am working on the configuration handler which will have functions for implementing and retrieving info from the configuration file.

After that, I am planning to make the interface somewhat versatile, so it is possible to adjust it for yourself or add some new options and such.

0
0
21

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…