Commits
Back
Последние изменения из mirror GitHub. Здесь видны не только SHA, но и автор, дата, количество файлов и зоны риска.
6991d78
fix(rates): validate date format and from<=to in lock/unlock - inverted ranges created invalid locked periods
2026-08-23T16:18:57+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 16 | core 0 | module 0 | forbidden 0
Flags:
40fb8bc
fix(chat): show client chat tab on project detail for staff (project manager/admin can see portal conversation)
2026-08-23T15:43:15+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
cab145d
fix(chat): normalize client-chat message list shape for external UI (messages vs items)
2026-08-23T15:36:34+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
44b3c9e
fix(chat): staff can read/write project_client chat via project access; external non-participants get 404 (no existence leak)
2026-08-23T15:35:14+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
c3db770
fix(ext): include is_external/external_role in UserManagementRepository selects — role-promotion grant seeding was silently skipped
2026-08-23T11:27:10+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
1cf4235
fix(ext): seed project grants when observer is promoted to executor via PATCH users (worklog RLS would otherwise block)
2026-08-23T11:22:54+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
03ad660
fix(ext): allow admin to switch external user role (observer<->executor) via PATCH users — lifecycle completeness
2026-08-23T11:20:52+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 6 | core 0 | module 0 | forbidden 0
Flags:
0f280d0
fix(ext): allow external guests to report telemetry + read own unread chat count (self-scoped)
2026-08-23T11:14:57+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
5cd4c7a
fix(ext): expose whitelisted public settings + task activity to external executors (time rounding + history); no finance/admin data leak
2026-08-23T11:12:03+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 6 | core 0 | module 0 | forbidden 0
Flags:
f28faa7
fix(external): correct permission-visibility allow logic for external observer/executor role rules
2026-08-23T08:53:19+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
4a88934
fix(external): role-aware UI - observer fully read-only (no create/edit/status/delete controls), executor keeps task-create/worklog/file-upload; show worklog tab+timer to executor; hide menu customize for external; login redirect validated against external allowlist
2026-08-23T08:51:20+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 14 | core 0 | module 0 | forbidden 0
Flags:
4fb1f2a
fix(external): validate login redirect param against external allowlist - external guests (observer/executor) no longer 403 on dashboard after login, land on projects instead
2026-08-23T08:39:08+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
51504a6
fix(analytics): make user-filter preload non-fatal on time-analytics — users without user.view (but with task.manage) got the whole page broken because the /users call threw; filter is populated from report rows instead
2026-08-23T08:27:21+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
36e8b5c
fix(analytics): show registry-only locked periods (zero worklog rows) in the time-analytics locks list — periods that block new entries but have no locked rows were invisible and unremovable in the UI
2026-08-23T08:08:05+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
7b76be1
fix(analytics): include report-only users in time-analytics matrix columns so deactivated/external accounts with historical worklogs are shown and day totals match the visible columns
2026-08-23T08:04:04+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
a438c48
fix(analytics): merge report-only users (deactivated/external) into time-analytics user filters so admins can filter earnings by every user shown in the report
2026-08-23T07:59:46+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
55735f1
fix(analytics): show financial columns (cost/bill/payout) in time-analytics earnings tab — always:true flags were missing so money data never rendered; add totals footer row; use local (not UTC) default report dates; drop hardcoded filter fallback dates
2026-08-23T07:53:46+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
2f33b2a
fix(logs): disable surface animation on offcanvas backdrop (pinned opacity to 1), normalize snake_case security reasons
2026-08-23T07:35:46+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 6 | core 0 | module 0 | forbidden 0
Flags:
b640a57
fix(logs): correct telemetry payload path for JS error titles/routes, localize security reasons, add th_object key, real backdrop softening
2026-08-23T07:14:59+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 18 | core 0 | module 0 | forbidden 0
Flags:
e31452e
fix(validation): require task_public_id and activity_code in worklog create - prevent orphan worklogs without task or activity
2026-08-23T07:03:27+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
71f0a39
feat(logs): site-consistent segmented tabs, full i18n fix (namespace whitelist + key placement), friendly error explanations, richer audit/security rows, root-only page gate, IP read masking, softer drawer backdrop
2026-08-23T06:58:24+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 16 | core 0 | module 0 | forbidden 0
Flags:
cd6fbcd
fix(security): observer role is read-only — block write methods (POST/PATCH/PUT/DELETE) on external_ok routes unless external_write_ok flag is set; observers can still POST comments, chat messages, mark notifications read, revoke sessions
2026-08-23T06:53:27+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 30 | core 0 | module 0 | forbidden 0
Flags:
15c85d5
fix: normalize external_role in ExternalUserController invite - accept both 'executor' and 'external_executor'
2026-08-22T23:51:02+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
1a6c7d3
fix(i18n): replace hardcoded Russian text with localized keys
2026-08-22T23:45:10+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 38 | core 0 | module 0 | forbidden 0
Flags:
78920a3
feat(logs): tabbed log page (Errors/Activity/API/Security/MCP/Time) with per-tab filters, human-readable events, pagination; fix from/to date filters ignored by log queries
2026-08-22T22:56:31+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 22 | core 0 | module 0 | forbidden 0
Flags:
6297b46
fix(logging): use getenv() in bootstrap (defined() never matched EnvLoader), register ServerErrorService on web side, parse details JSON in unified view
2026-08-22T22:25:23+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 6 | core 0 | module 0 | forbidden 0
Flags:
4009996
fix(chat): correct projectSelect to avoid double comma in SQL
2026-08-22T22:18:48+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
ad0ed9e
fix(chat): add missing comma in SQL SELECT for external user chat list
2026-08-22T22:17:45+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
149c428
fix(chat): add missing comma in SQL SELECT for external user chat list + fix project_client findSystemChat
2026-08-22T22:12:36+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
74f25a5
debug: file-based logging for chat list
2026-08-22T22:10:34+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
c59bee8
debug: add temporary logging to ChatController list
2026-08-22T22:08:50+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
77f4f36
fix(chat): findSystemChat uses project_id for project_client chats
2026-08-22T22:00:37+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
91dc64c
fix(logging): render HTML badges in event column instead of escaping them
2026-08-22T21:57:09+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
f9791b5
fix(migration): add chat.use to external_guest role permissions
2026-08-22T21:46:27+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 42 | core 0 | module 0 | forbidden 0
Flags:
ab5557c
fix(menu): external users can now see my-earnings when they have payout data
2026-08-22T21:29:43+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
9c5cb73
fix(security): Router now passes external_executor_ok to App.php external gate
2026-08-22T21:22:57+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
2a4bd11
debug: add external gate debug (proper location)
2026-08-22T21:17:13+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
c870c30
debug: add temporary external gate debug
2026-08-22T21:15:53+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
cb7dfb9
fix(i18n): restore logs/messages.php translations + add server_errors_unavailable
2026-08-22T20:54:30+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 14 | core 0 | module 0 | forbidden 0
Flags:
40a3202
fix(js): add server_errors user filter + missing i18n key
2026-08-22T20:52:37+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 16 | core 0 | module 0 | forbidden 0
Flags:
8fe5b7b
fix(js): remove dangling return+brace and fix users variable conflict in counterparty rates
2026-08-22T20:19:18+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
56e8930
fix(server-errors): fix errorPdo scope and constructor access
2026-08-22T20:06:44+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 4 | core 0 | module 0 | forbidden 0
Flags:
05c7937
feat(server-errors): add server error logging to DB with admin UI
2026-08-22T20:04:43+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 28 | core 0 | module 0 | forbidden 0
Flags:
04c0b2c
feat(rates-ui): add localization keys for counterparty rates preview
2026-08-22T19:55:49+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 14 | core 0 | module 0 | forbidden 0
Flags:
15b8558
feat(rates-ui): add rate card lines preview + source_type to counterparty rates tab
2026-08-22T19:53:49+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
cc7e08a
feat(rate-cards): add 'Create for project' button on rate-cards page
2026-08-22T19:48:02+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 18 | core 0 | module 0 | forbidden 0
Flags:
96d233f
fix(worklog): use parseLogDate in update() to avoid timezone bug
2026-08-22T19:39:42+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
35e86d6
chore: remove debug file_put_contents from WorklogService
2026-08-22T19:37:58+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
9a62538
fix(rate-cards): cascade-delete assignments when archiving
2026-08-22T19:25:36+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags:
ffff454
fix(recalculate): timezone-safe date parsing
2026-08-22T16:22:30+00:00
Anton Barinov <55404783+Anton-Barinov@users.noreply.github.com>
Files: 2 | core 0 | module 0 | forbidden 0
Flags: