feat(#525): render reasoning.delta / reasoning.available stream (#543)

* feat(#525): add ReasoningDelta + ReasoningAvailable WsEvent types

* feat(#525): parse reasoning.delta + reasoning.available; route through reducer + StreamingState

* feat(#525): add reasoning streaming buffer to ChatStreamingController

* feat(#525): dispatch ReasoningDelta/ReasoningAvailable in ChatViewModel

* feat(#525): render collapsible ReasoningIndicator in chat list

* fix(#525): address review — icons+semantics, LocalHermesStatusColors, drop redundant ReasoningAvailable branch

* feat(#525): persist reasoningText on model, entity, mapper + Room migration 3->4

* feat(#525): reducer + streaming carry reasoningText onto message

* feat(#525): render persisted reasoning above each assistant bubble, drop global indicator

* nix: flake

* nix: flake

---------

Co-authored-by: M57 <m57@hermes-control.app>
This commit is contained in:
M57
2026-07-10 23:41:53 +03:00
committed by GitHub
co-authored by M57
parent d04b74ee0a
commit 53b3966931
17 changed files with 441 additions and 33 deletions
+29 -28
View File
@@ -22,38 +22,39 @@
};
buildToolsVersion = "36.0.0";
androidSdk = (pkgs.androidenv.composeAndroidPackages {
# Command-line & platform tools
cmdLineToolsVersion = "11.0";
platformToolsVersion = "35.0.2";
androidSdk =
(pkgs.androidenv.composeAndroidPackages {
# Command-line & platform tools
cmdLineToolsVersion = "11.0";
platformToolsVersion = "36.0.0";
# Build tools
buildToolsVersions = [buildToolsVersion];
# Build tools
buildToolsVersions = [buildToolsVersion];
# Target platforms (36 required by AGP 9.0.1 / compileSdk 36)
platformVersions = ["36"];
# Target platforms (36 required by AGP 9.0.1 / compileSdk 36)
platformVersions = ["36"];
# Emulator + system images for local AVD testing
includeEmulator = true;
includeSystemImages = true;
systemImageTypes = ["google_apis"];
abiVersions = ["x86_64"];
# Emulator + system images for local AVD testing
includeEmulator = true;
includeSystemImages = true;
systemImageTypes = ["google_apis"];
abiVersions = ["x86_64"];
# NDK (not needed for this project, but handy)
includeNDK = false;
# NDK (not needed for this project, but handy)
includeNDK = false;
# Extra packages
extraLicenses = [
"android-googletv-license"
"android-sdk-arm-dbt-license"
"android-sdk-license"
"android-sdk-preview-license"
"google-gdk-license"
"intel-android-extra-license"
"intel-android-sysimage-license"
"mips-android-sysimage-license"
];
}).androidsdk;
# Extra packages
extraLicenses = [
"android-googletv-license"
"android-sdk-arm-dbt-license"
"android-sdk-license"
"android-sdk-preview-license"
"google-gdk-license"
"intel-android-extra-license"
"intel-android-sysimage-license"
"mips-android-sysimage-license"
];
}).androidsdk;
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
@@ -82,7 +83,7 @@
GRADLE_USER_HOME = "$PWD/.gradle-home";
shellHook = ''
echo "🤖 HermesControl Android dev shell"
echo " HermesControl Android dev shell"
echo " Java: $(java -version 2>&1 | head -1)"
echo " Kotlin: $(kotlin -version 2>&1)"
echo " Gradle: $(gradle --version 2>&1 | grep '^Gradle' || echo 'available')"