Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5c8aee7
new tool: search photo in gallery
Alex2772 Jul 21, 2026
73ccb0f
fix(ImageGenerator): revert simplification
Alex2772 Jul 21, 2026
84f51d6
feat(comfyui): initial work
Alex2772 Jul 22, 2026
a985c94
update take_photo.cpp
Alex2772 Jul 22, 2026
3fad168
feat(Diary): lex assisted search
Alex2772 Jul 23, 2026
dc088a0
fix(comfy): get rid of websocket, add timeout logic
Alex2772 Jul 25, 2026
034541c
fix(Diary): added a possibility to use local LLM for diary; added gui…
Alex2772 Jul 25, 2026
860a2de
feat(Prometheus): report wallclock timings for the main coroutine
Alex2772 Jul 25, 2026
d41d23a
fix(OpenAI): fix ollama usage stats
Alex2772 Jul 25, 2026
e5ac9da
feat(ask): cache answers on per-chat basis
Alex2772 Jul 26, 2026
e552e37
update(grafana) dashboard
Alex2772 Jul 26, 2026
1ac417d
fix build
Alex2772 Jul 26, 2026
09fa282
fix(send_telegram_message): false positives of "Error you are tring t…
Alex2772 Jul 26, 2026
4acb7ef
feat(CMake): allow external repo
Alex2772 Jul 26, 2026
e653728
fix(ask): include all responses from LLM because it forgets to includ…
Alex2772 Jul 29, 2026
e3ae7f8
fix warnings, prepare for kuni-private external stuff
Alex2772 Jul 29, 2026
cb7187a
feat(NotificationManager): priority randomization
Alex2772 Jul 30, 2026
6194489
abstract plugin interface
Alex2772 Jul 31, 2026
f949db2
update(speech): num_step increased to 63
Alex2772 Aug 4, 2026
b519534
update(malicious_payloads): added new detect phrases, added new repla…
Alex2772 Aug 4, 2026
bf28957
update(remove_and_ban_chat): now responds with title (username) of th…
Alex2772 Aug 4, 2026
abf0d11
update(llmuiOpenTelegramChat): now can't open a banned chat
Alex2772 Aug 4, 2026
c4e7eea
update(NotificationManager): return to pinned chats
Alex2772 Aug 4, 2026
c8bbf94
update(IOpenAIChat): fix transcriptions
Alex2772 Aug 4, 2026
0287c0d
impl(sticky notes)
Alex2772 Aug 6, 2026
7f92806
update
Alex2772 Aug 12, 2026
613e238
update(reply_to): inline reply to content -> to attribute (rely on vi…
Alex2772 Aug 12, 2026
065ab7b
fix(JsonAsLongInt): on stupid models
Alex2772 Aug 21, 2026
78bbeb7
update(image,video): disable reasoning effort for describing images
Alex2772 Aug 23, 2026
56b7135
attempt to fix large sticker_id for small models
Alex2772 Aug 23, 2026
56b0705
update(send_telegram_message): encourage reply_to in group chats
Alex2772 Aug 23, 2026
a97fa5f
fix(App): check if Kuni has the chat in chat list before passing even…
Alex2772 Aug 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 24 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ endif()


option(BUILD_SHARED_LIBS OFF)
option(KUNI_USE_FFMPEG OFF "Enable FFmpeg. Enables video transcription")
option(KUNI_USE_FFMPEG "Enable FFmpeg. Enables video transcription" OFF)

set(AUI_VERSION v8.0.0-rc.29)

set(AUI_VERSION v8.0.0-rc.30)

# Use AUI.Boot
include(aui.boot.cmake)
Expand All @@ -37,7 +38,7 @@ auib_mark_var_forwardable(AUI_COROUTINES)

# import AUI
auib_import(aui https://github.com/aui-framework/aui
COMPONENTS core json curl crypt image views
COMPONENTS core json curl crypt image views audio
VERSION ${AUI_VERSION})


Expand Down Expand Up @@ -74,6 +75,7 @@ aui_link(${PROJECT_NAME} PUBLIC
aui::crypt
aui::image
aui::views
aui::audio
Td::TdStatic
toml11::toml11
prometheus-cpp::pull
Expand All @@ -83,15 +85,6 @@ if (APPLE)
target_link_libraries(${PROJECT_NAME} PUBLIC "-framework CoreServices")
endif()

aui_compile_assets(${PROJECT_NAME})
aui_enable_tests(${PROJECT_NAME})

# Setup icon, display name, etc
aui_app(TARGET ${PROJECT_NAME}
NAME "Kuni"
VENDOR "Alex2772"
ICON "assets/img/icon.svg"
)

# version info
find_package(Git QUIET)
Expand Down Expand Up @@ -131,6 +124,18 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version_info.cpp
)
target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/version_info.cpp)

aui_compile_assets(${PROJECT_NAME})
aui_enable_tests(${PROJECT_NAME})

# Setup icon, display name, etc
aui_app(TARGET ${PROJECT_NAME}
NAME "Kuni"
VENDOR "Alex2772"
ICON "assets/img/icon.svg"
)

target_include_directories(Tests PRIVATE tests/)

# optional features
foreach (_feature_switch KUNI_USE_FFMPEG)
if (${${_feature_switch}})
Expand All @@ -153,4 +158,10 @@ if (KUNI_USE_FFMPEG)
target_link_libraries(${PROJECT_NAME} PUBLIC ${FFMPEG_LINK_LIBRARIES})
target_include_directories(Tests PRIVATE ${FFMPEG_INCLUDE_DIRS})
target_link_libraries(Tests PUBLIC ${FFMPEG_LINK_LIBRARIES})
endif ()
endif ()

if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../kuni-private/CMakeLists.txt")
# for developing private/instance-specific stuff
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../kuni-private" "kuni-private")
endif ()

182 changes: 175 additions & 7 deletions grafana/dashboards/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"kind": "Dashboard",
"metadata": {
"name": "adnzl7w",
"generation": 146,
"generation": 147,
"creationTimestamp": "2026-05-14T10:05:54Z",
"labels": {},
"annotations": {}
Expand Down Expand Up @@ -1006,7 +1006,7 @@
},
"thresholdsStyle": {
"mode": "off"
pro}
}
}
},
"overrides": []
Expand All @@ -1015,6 +1015,161 @@
}
}
},
"panel-20": {
"kind": "Panel",
"spec": {
"id": 20,
"title": "Разбивка итерации по времени (thinking / tools)",
"description": "Куда уходит время внутри одной итерации главного цикла обработки уведомления: обдумывание ответа LLM (\"thinking\"), поиск в дневнике (\"diary_lookup\") и вызовы конкретных тулов (по имени тула).\n\nНаведи на точку — увидишь \"слоёный пирог\" из фаз именно этой итерации: сколько секунд ушло на каждую из них.",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
"queries": [
{
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"group": "prometheus",
"version": "v0",
"spec": {
"editorMode": "code",
"exemplar": false,
"expr": "notification_phase_duration_seconds_gauge unless delta(notification_phase_duration_seconds_gauge[$__rate_interval]) == 0",
"format": "time_series",
"legendFormat": "{{phase}}",
"range": true
}
},
"refId": "A",
"hidden": false
}
}
],
"transformations": [],
"queryOptions": {
"maxDataPoints": 500
}
}
},
"vizConfig": {
"kind": "VizConfig",
"group": "timeseries",
"version": "13.0.1+security-01",
"spec": {
"options": {
"annotations": {
"clustering": -1,
"multiLane": false
},
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": true,
"mode": "multi",
"sort": "desc"
}
},
"fieldConfig": {
"defaults": {
"unit": "s",
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "green"
},
{
"value": 80,
"color": "red"
}
]
},
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "секунды",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.8,
"drawStyle": "bars",
"fillOpacity": 70,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 0,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "thinking"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "blue",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "diary_lookup"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "purple",
"mode": "fixed"
}
}
]
}
]
}
}
}
}
},
"panel-3": {
"kind": "Panel",
"spec": {
Expand Down Expand Up @@ -1750,6 +1905,19 @@
"x": 0,
"y": 0,
"width": 24,
"height": 12,
"element": {
"kind": "ElementReference",
"name": "panel-20"
}
}
},
{
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 12,
"width": 24,
"height": 9,
"element": {
"kind": "ElementReference",
Expand All @@ -1761,7 +1929,7 @@
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 9,
"y": 21,
"width": 24,
"height": 9,
"element": {
Expand All @@ -1774,9 +1942,9 @@
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 18,
"y": 30,
"width": 24,
"height": 16,
"height": 24,
"element": {
"kind": "ElementReference",
"name": "panel-16"
Expand All @@ -1787,7 +1955,7 @@
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 34,
"y": 54,
"width": 24,
"height": 9,
"element": {
Expand All @@ -1800,7 +1968,7 @@
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 43,
"y": 63,
"width": 24,
"height": 9,
"element": {
Expand Down
Loading
Loading