Foundry
-
Spent a bit of time working out how we can enable selection of app patterns in Foundry. The goal here would be to have some very common libadwaita usage patterns available for selection in the new-project guide.
Ultimately it will rely on
FoundryInputCombo
/FoundryInputChoice
but we’ll have to beef it up to support iconography. -
Finish up a couple speed-runs so they can be uploaded to to gitlab. chergert/assist and chergert/staged are there and can serve as an example of how to use the libfoundry API.
-
A big portion of this week has been figuring out how I want to expose tweaks from libfoundry into applications. There are a lot of caveats here which make it somewhat tricky.
For example, not every application will need every toggle, so we need a way to filter them.
GListModel
is probably our easiest way out with this, but we’ll likely need a bit more control over provenance of tweaks here for filtering. -
Tweak engine has a new “path” design which allows us to dynamically query available tweaks as you dive down deeper into the UI. This is primarily to help avoid some of the slower parts of the tweaks engine in GNOME Builder.
Also, to help support this, we can define tweaks using static data which allows for registration/query much faster. For example, there is no need to do UI merging since that can happen automatically.
There are also cases where you may need to register tweaks which are more complex than simple
GSettings
. We should be able to accommodate that just fine. -
Added API for add/remove to Git stage. Much simpler than using the libgit2 index APIs directly, for the common things.
We may want to add a “Stage” API at some point. But for now, the helpers do the job for the non-partial-stage use-case.
Just
foundry_git_vcs_stage_entry (vcs, entry, contents)
where the entry comes from your status list. You can retrieve that withfoundry_git_vcs_list_status (vcs)
. If you are brave enough to do your own diff/patch you can implement staging lines with this too.However, that is probably where we want an improved stage helper.
-
Added API for creating commits.
Much easier to do
foundry_git_vcs_commit (vcs, msg, name, email)
than the alternatives. -
Running LLM tools can now be done through the conversation object which allows for better retention of state. Specifically because that can allow the conversation to track a history object other than a simple wrapped
FoundryLlmMessage
.For example, some message subclasses may have extra state like a “directory listing” which UI could use to show something more interesting than some text.
-
Simplify creating UI around
FoundryLlmConversation
with a new busy property that you can use to cancel your in-flight futures. -
Fixed an issue where running the LLM tool (via subprocess) would not proxy the request back to the parent UI process. Fixing that means that you can update the application UI when the conversation is running a tool. If you were, for example, to cancel the build then the tool would get canceled too.
-
Made the spellcheck integration work the same as we do in Builder and Text Editor which is to move the cursor first on right-click before showing corrections.
Libspelling
-
New release with some small bugfixes.
Levers
-
Another speed run application which is basically the preferences part of Builder but on top of Foundry. The idea here is that you can just drop into a project and tweak most aspects of it.
Not intended to be a “real” application like the other speed-runs, but at least it helps ensure that the API is relatively useful.