activities
17 hours ago
17 hours ago
27e0872 Fix: парсить MySQL datetime как UTC в formatRelative/formatDateTime
17 hours ago
d9ee715 Feat: сохранять timezone пользователя из gnexus-auth и отдавать в /auth/me
a9eae82 Feat: добавить роут /cron/run-timers для выполнения таймеров
18 hours ago
b842dc8 Fix: отдельный watch на script.alias для lazy indicators, убран immediate с route-watch
18 hours ago
431a303 Fix: immediate: true в watch для ленивой загрузки индикаторов (grid + detail)
18 hours ago
8f284fd Feat: batch refresh индикаторов по 5 штук, ограничение параллельных запросов
4e05fa0 Feat: ленивая загрузка индикаторов — список без state_callback, фоновый refresh + спиннер
9ba69b8 Feat: отображение индикаторов на странице деталей action script + автообновление после run
...
18 hours ago
81f370e Feat: state_callback индикация для всех action scripts
19 hours ago
12bf63e Docs: danger_level и state_callback/indicators для action scripts
caa44e0 Feat: индикаторы состояния у action scripts (state_callback + indicators в UI)
21 hours ago
a4fb04e Fix: height: 100% для .area-grid .card, rebuild
5ec8d7b Build: production bundle ActionScriptsGrid danger_level fixes
21 hours 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
...
22 hours ago
4d031c0 Fix: DeviceScriptsHelper group_toggle / group_set_state — support alias:channel string syntax
23 hours 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
23 hours ago
2d93985 Fix: TemplateDriver class name, console autoload, ScriptsRegistry fallback
23 hours ago
275a370 Refactor: room-based Control Scripts scopes + helper relocation
1 day ago
971cb1b Docs: добавлен раздел онлайн-загрузки SPA в android-capacitor-oauth-template.md
42ca04d Feat: онлайн-загрузка SPA в Android-приложении через serverUrl из Preferences
92e141c Fix: убран size=lg с кнопки LOGIN WITH GNEXUS
...
1 day ago
3151632 Fix: bridge page идентична Navi, gnexus-ui-kit стили
1 day ago
703f7cc Fix: упрощена страница логина, кнопка LOGIN WITH GNEXUS
87a95de Fix: bridge page строго в стиле gnexus-ui-kit, без закруглений
1 day ago
070bcd0 Fix: стилизованная bridge page для Android OAuth (адаптировано из navi-1)
1 day ago
7d79cff Docs: Android + Capacitor 8 + OAuth — полный гайд по проблемам и решениям
61a3c9f Fix: splash screen иконка расплющена на Android 12+
57605ab Fix: Android статус бар overlay + splash screen размытость
...
1 day ago
cdfab0c Fix: isNativeApp() использует Capacitor.isNativePlatform() вместо window.Capacitor
1 day ago
e7c3004 Fix: OAuth mobile flow + desktop auth + storage abstraction
1 day 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)
...
3 days ago
eb94cd0 Fix PermissionResolver: fallback for missing/empty tables; add seed migration for roles and permissions
3 days ago
0f7a6e4 Fix production auth: disable IP/UA binding (breaks reverse-proxy), add /api/v1/auth/* aliases, prepare PHP-FPM reload
3 days ago
65b4457 Phase 4 cleanup & polish: param migration seeds, gnexus-ui-kit LoginPage styles, single .env
3 days ago
41187ed Phase 3 infrastructure hardening: IP/UA binding, nginx getallheaders fallback, auth rate limiting, permission cache
3 days ago
e7afa05 Phase 2 session stability: refresh queue, Bearer fallback, proactive refresh
3 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
3 days ago
dc6249e Fix OAuth callback URL: insert access_token query string BEFORE hash fragment so Vue can read it via window.location.search
3 days ago
09e1d27 Fix OAuth callback: extract access_token in main.js before auth init, prevent 401 redirect loop in client.js
3 days ago
b1243af Fix OAuth callback: remove refreshToken() from init() to prevent 401 cascade that clears access_token
3 days ago
18cca97 Add server/dist build to repository for zero-dependency prod deploy
3 days ago
b17262b Fix AppController and EventsHandlers to use __DIR__ instead of app()->root_folder() for prod compatibility
3 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
3 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
3 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
...
4 days ago
ed17a89 Fix text_msg call in remove_device: use FCONF instead of undefined app()-method
4 days ago
32ab262 Fix ErrorHandler to catch Throwable (not just Exception) and safe null-check in remove_device
4 days ago
2d1a3cd Move scan debug log to sys temp dir as well
4 days ago
c4f44c7 Move scan lock file to sys temp dir to avoid prod permission issues
4 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)
...
4 days ago
b087ced Revert ControlScripts back to repo-root automation/ (Phase 7 structure)
4 days ago
7 days ago
@root root created branch dev at root/smart-home-server
8 days ago
859091c Use gnexus-ui-kit semantic colors for device status dot and add state components
bdcc3d6 Replace connect column with inline status dot in device table
0ac4d77 Make toast backgrounds opaque for readability
...
8 days ago
0843dc5 Phase 5: Extract reusable useAsyncRequest composable for stores
f028f7f Improve AppErrorState with statusCode, type, and copyable details (Phase 4)
fea9f1d Add toast notifications for mutations (Phase 3)
...
8 days ago
214ed50 PageActionsDropdown: enlarge trigger button to 44x44px / 24px icon
921e921 PageActionsDropdown: use ph class instead of ph-bold for icon
db970ba PageActionsDropdown: use plain btn-icon instead of GnButton
...
8 days ago
de3da4a Use class basename for scope field in script view
77677c6 Add script detail pages with scope grouping
c2e496d Add scope field to script view output
...
13 days ago
7dd4323 Bump frontend version to 0.2.0
6d5d05a Style fixes: timeline hover, page-header layout, toolbar sort icon
6b23a8f Refactor detail-header to GnPageHeader and remove obsolete card hover override
...
13 days ago
6155985 Implement browser extension MVP: autofill, save prompt, popup UI