activities
17 hours ago
ba00e72 mute btns
17 hours ago
b6564e2 mute btns
17 hours ago
6f2e087 mute btns
17 hours ago
4d4de49 Fix: use correct alias kitchen_hatch for basement hatch in HallScope
9532693 Fix: Hatch::get_state() undefined var, rename attic→basement in HallScope
21 hours ago
f87ba2a Fix: proper hatch indicator in DeviceScriptsHelper with ru labels, position pct and all states
11271cd Fix: proper hatch state display with ru labels, icons and correct badge variants
21 hours ago
7ab43c0 Fix: modes grid layout using area-grid pattern like ActionScriptsGrid
a76c455 Build: regenerate dist assets after modes grid layout fix
4cf5642 Fix: modes grid layout switched to flexbox to prevent overlapping cards
21 hours ago
92a9b38 Fix: sync registry tags in ModesRESTAPIController before all ops
22 hours ago
fa90b1d Fix: удалён SleepScope (неправильно реализован как Scope вместо Mode)
e8015d9 Fix: WebView кэш ассетов — meta-теги no-cache + nginx заголовки + clearCache в MainActivity
22 hours ago
7a274b6 Fix: MainActivity читает правильный ключ shserv_server_url для загрузки SPA с сервера
389c275 Fix: sleep mode теперь блокирует indoor-свет (mute кнопок + guard)
e82e70f Feat: режим сна (sleep mode) + UI модов в Vue клиенте
1 day ago
1 day ago
27e0872 Fix: парсить MySQL datetime как UTC в formatRelative/formatDateTime
1 day ago
d9ee715 Feat: сохранять timezone пользователя из gnexus-auth и отдавать в /auth/me
a9eae82 Feat: добавить роут /cron/run-timers для выполнения таймеров
1 day ago
b842dc8 Fix: отдельный watch на script.alias для lazy indicators, убран immediate с route-watch
1 day ago
431a303 Fix: immediate: true в watch для ленивой загрузки индикаторов (grid + detail)
1 day ago
8f284fd Feat: batch refresh индикаторов по 5 штук, ограничение параллельных запросов
4e05fa0 Feat: ленивая загрузка индикаторов — список без state_callback, фоновый refresh + спиннер
9ba69b8 Feat: отображение индикаторов на странице деталей action script + автообновление после run
...
1 day ago
81f370e Feat: state_callback индикация для всех action scripts
1 day ago
12bf63e Docs: danger_level и state_callback/indicators для action scripts
caa44e0 Feat: индикаторы состояния у action scripts (state_callback + indicators в UI)
1 day ago
a4fb04e Fix: height: 100% для .area-grid .card, rebuild
5ec8d7b Build: production bundle ActionScriptsGrid danger_level fixes
1 day ago
6258bab Fix: обёртка для GnActionCard + :deep() стили danger_level, confirm для скриптов с params_schema
b585238 Fix: hatch_open и hatch_close → danger_level dangerous (warning)
bd12f09 Fix: использовать gnexus-ui-kit цвета для danger_level border в ActionScriptsGrid
...
1 day ago
4d031c0 Fix: DeviceScriptsHelper group_toggle / group_set_state — support alias:channel string syntax
1 day ago
1c17308 Fix: event handlers — kitchen_buttons alias (11 not 1), add btns_hall2_1 to HallScope
70c6ed0 Fix: Script entity field access — uniq_name instead of alias in place_in_area / unassign logging
1 day ago
2d93985 Fix: TemplateDriver class name, console autoload, ScriptsRegistry fallback
1 day ago
275a370 Refactor: room-based Control Scripts scopes + helper relocation
2 days ago
971cb1b Docs: добавлен раздел онлайн-загрузки SPA в android-capacitor-oauth-template.md
42ca04d Feat: онлайн-загрузка SPA в Android-приложении через serverUrl из Preferences
92e141c Fix: убран size=lg с кнопки LOGIN WITH GNEXUS
...
2 days ago
3151632 Fix: bridge page идентична Navi, gnexus-ui-kit стили
2 days ago
703f7cc Fix: упрощена страница логина, кнопка LOGIN WITH GNEXUS
87a95de Fix: bridge page строго в стиле gnexus-ui-kit, без закруглений
2 days ago
070bcd0 Fix: стилизованная bridge page для Android OAuth (адаптировано из navi-1)
2 days ago
7d79cff Docs: Android + Capacitor 8 + OAuth — полный гайд по проблемам и решениям
61a3c9f Fix: splash screen иконка расплющена на Android 12+
57605ab Fix: Android статус бар overlay + splash screen размытость
...
2 days ago
cdfab0c Fix: isNativeApp() использует Capacitor.isNativePlatform() вместо window.Capacitor
2 days ago
e7c3004 Fix: OAuth mobile flow + desktop auth + storage abstraction
2 days ago
46463a5 Refactor: extract shared logger utils, fix edge cases in Pinia/HTTP logging
b0b9eb9 P2: Vue Client — console logging (HTTP, router, Pinia actions, error handler)
5ed02cb P1: Add structured business-logic logging across PHP server (auth, devices, scripts, areas, events)
...
4 days ago
eb94cd0 Fix PermissionResolver: fallback for missing/empty tables; add seed migration for roles and permissions
4 days ago
0f7a6e4 Fix production auth: disable IP/UA binding (breaks reverse-proxy), add /api/v1/auth/* aliases, prepare PHP-FPM reload
4 days ago
65b4457 Phase 4 cleanup & polish: param migration seeds, gnexus-ui-kit LoginPage styles, single .env
4 days ago
41187ed Phase 3 infrastructure hardening: IP/UA binding, nginx getallheaders fallback, auth rate limiting, permission cache
4 days ago
e7afa05 Phase 2 session stability: refresh queue, Bearer fallback, proactive refresh
4 days ago
0958b86 Update auth-fix-plan: mark Phase 1 tasks completed
e90acee Phase 1 auth security hotfixes: cookie-based session, bearer checks, router guard sync
4 days ago
dc6249e Fix OAuth callback URL: insert access_token query string BEFORE hash fragment so Vue can read it via window.location.search
4 days ago
09e1d27 Fix OAuth callback: extract access_token in main.js before auth init, prevent 401 redirect loop in client.js
4 days ago
b1243af Fix OAuth callback: remove refreshToken() from init() to prevent 401 cascade that clears access_token
4 days ago
18cca97 Add server/dist build to repository for zero-dependency prod deploy
4 days ago
b17262b Fix AppController and EventsHandlers to use __DIR__ instead of app()->root_folder() for prod compatibility
4 days ago
7f7ad82 Integrate Vue webclient into server: serve SPA from /, remove proxy.php, update auth redirects
568f25e Fix UserResolver: use ThinBuilder::insert() return value
b98fb4c Fix ErrorHandler exception_handler type cast
4 days ago
74d4c0f Route all auth/login requests through proxy.php for cross-domain SPA
7cf585f Add Bearer token persistence for cross-domain SPA auth
4 days ago
0552de9 Phase 2: Protect Areas, Scripts, Firmware REST API endpoints with permission checks
44250a7 Phase 2: Protect DevicesRESTAPIController endpoints with permission checks
aeabd40 Update docs: guest is explicit authenticated role, no anonymous access
...
5 days ago
ed17a89 Fix text_msg call in remove_device: use FCONF instead of undefined app()-method
5 days ago
32ab262 Fix ErrorHandler to catch Throwable (not just Exception) and safe null-check in remove_device
5 days ago
2d1a3cd Move scan debug log to sys temp dir as well
5 days ago
c4f44c7 Move scan lock file to sys temp dir to avoid prod permission issues
5 days ago
3a0b92b Fix web proxy timeout 30s→120s to match scan duration
57b26de Increase scan batch size 8→32 to cut usleep overhead (~54s→37s)
0b9be7b Fix scan speed: use CURLOPT_*_MS for sub-second timeouts (was ~3s per IP on Linux)
...