Skip to content

fix(desktop): salvage AhmetArif0 desktop/dashboard fixes (#38289, #38291, #38294) - #39070

Merged
teknium1 merged 3 commits into
mainfrom
hermes/hermes-2dbdbe98
Jun 4, 2026
Merged

fix(desktop): salvage AhmetArif0 desktop/dashboard fixes (#38289, #38291, #38294)#39070
teknium1 merged 3 commits into
mainfrom
hermes/hermes-2dbdbe98

Conversation

@teknium1

@teknium1 teknium1 commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Salvages three desktop/dashboard bug fixes from @AhmetArif0 onto current main, with authorship preserved per-commit.

Changes

Validation

Check Result
node --check main.cjs OK
tsc --noEmit ProfilesPage no errors
diff vs origin/main 2 files, +35/-4

Cherry-picked from PRs #38289, #38291, #38294. Closes those PRs with credit.

Infographic

desktop-fixes-x3

…nfig apply

The apply handler sent SIGTERM then fired a 150 ms setTimeout to reload
the renderer. If the backend took longer to shut down the port was still
bound when startHermes() ran after reload, causing an "address already
in use" failure.

Capture the process reference before resetHermesConnection() nulls it,
then await the actual exit event. A 5 s SIGKILL fallback ensures the
wait never hangs if the backend ignores SIGTERM.
POST /api/profiles returns model_set: false when the model assignment
step fails (e.g. filesystem error) while the profile itself was created
successfully. handleCreate discarded the response, so the user received
a "Profile created" success toast with no indication that their chosen
model was not persisted.

Capture the response and show an error toast when a model was selected
but model_set is explicitly false, directing the user to set it from
the profile editor.
handleSaveDesc and handleAutoDescribe both set their loading flag in a
try block but always cleared it unconditionally in finally. When a user
opened profile A's description editor, clicked Save, then quickly
switched to profile B's editor and saved, profile A's resolving request
would clear descSaving/describing while profile B's request was still
in-flight, making the "Saving…" indicator disappear prematurely.

Track concurrent in-flight counts with descSavingCount and
describingCount refs (mirrors the existing activeDescRequest guard
pattern). The loading flag is cleared only when the counter reaches
zero, i.e. all overlapping requests have settled.
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-2dbdbe98 vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9804 on HEAD, 9804 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 5088 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/gateway Gateway runner, session dispatch, delivery labels Jun 4, 2026
@teknium1
teknium1 merged commit de370fd into main Jun 4, 2026
20 checks passed
@teknium1
teknium1 deleted the hermes/hermes-2dbdbe98 branch June 4, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants