Commit Graph

393 Commits

Author SHA1 Message Date
0xjjjjjj
7adadd5c88 fix: use data-cy selector for sidebar backdrop in e2e tests
The aria-hidden="true" selector matched 27 elements (icons, etc.)
causing cy.click() to fail. Add data-cy="sidebar-backdrop" to the
overlay div and target that specifically in tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:01:31 -07:00
0xjjjjjj
fab19ed5aa fix: use correct DashboardMetrics shape in mobile sidebar e2e stubs
The dashboard page accesses metrics.throughput.primary.points which
requires the full DashboardMetrics type structure. The original stub
returned a flat object with wrong fields, causing TypeError in all
authenticated tests. Also adds stubs for boards, agents, activity,
gateways, and board-groups APIs that the dashboard and boards pages
query on load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:41:49 -07:00
Abhimanyu Saharan
162b820880 Merge branch 'master' into fix/mobile-responsive 2026-03-08 12:58:59 +05:30
0xjjjjjj
fad1e99329 test: add Cypress e2e tests for mobile sidebar behavior
Cover auth negative, viewport responsiveness, toggle open/close,
backdrop dismiss, navigation auto-close, and Escape key dismiss.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:42:05 -08:00
0xjjjjjj
3bc4dcaf55 fix: normalize sidebar width to 260px, add responsive padding to approvals
Align desktop sidebar width (was w-64/256px) with header column and
grid template (both 260px). Apply missing p-4 md:p-6 responsive
padding to the global approvals page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:28:58 -08:00
0xjjjjjj
74792593b2 fix: reset sidebar state on navigation to prevent ghost re-open
Use React's canonical "store info from previous renders" pattern:
conditional setState during render resets sidebar when pathname
changes, preventing the sidebar from re-opening on back-navigation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:28:55 -08:00
0xjjjjjj
2519af2395 fix: use derived state for sidebar close on navigation
Replace useRef-based previous pathname tracking (which violated
react-hooks/refs) with a derived state pattern. Sidebar state stores
{open, path} and sidebarOpen is computed as a pure expression,
avoiding both set-state-in-effect and refs-during-render lint errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:20:37 -08:00
0xjjjjjj
9396be6fc0 fix: chown /app directory after user creation
Ensure the /app WORKDIR itself is owned by appuser (not just copied
files), preventing runtime failures if the app writes to /app directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:45:25 -08:00
0xjjjjjj
42368f84bf perf: replace chown -R with COPY --chown in both Dockerfiles
Move user/group creation before COPY statements so --chown flag can
set ownership at copy time, avoiding the slow recursive chown on
overlay2 filesystems (docker/for-linux#388).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:38:09 -08:00
0xjjjjjj
f0ab3e315b fix: address Copilot review — z-index, Escape key, signed-out UX
- Raise header to z-50 so toggle button stays clickable above backdrop
- Use document keydown listener for Escape instead of onKeyDown on backdrop
- Only render hamburger toggle when signed in
- Make SignedOutPanel col-span responsive (col-span-1 on mobile)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:19:39 -08:00
0xjjjjjj
7a0eb7b24a fix: avoid setState in useEffect for sidebar close on navigation
Use ref-based previous pathname check instead of useEffect + setState,
which triggers the react-hooks/set-state-in-effect lint rule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:18:08 -08:00
0xjjjjjj
e85e714076 fix: bump mobile sidebar z-index above sticky page headers
Sidebar and backdrop were z-30, same as sticky page headers (live feed,
boards, etc.), causing the hamburger menu to render behind page content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:11:22 -08:00
0xjjjjjj
ea0149bd88 fix: mobile-responsive layout for dashboard and board views
Add hamburger menu with off-canvas sidebar drawer on mobile.
Responsive padding, full-width panels, and stacked layouts
for screens under 768px (md breakpoint).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:11:22 -08:00
Hugh Brown
ebe148e537 fix: use Alpine-compatible flags for addgroup/adduser in frontend Dockerfile
node:20-alpine uses BusyBox which does not support GNU-style
--system/--ingroup flags. Switch to -S/-G equivalents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Hugh Brown
c7f8578f38 security: run Docker containers as non-root user
Both backend and frontend Dockerfiles ran all processes as root.
Add a dedicated appuser in each runtime stage so container processes
run with minimal privileges, limiting blast radius of any container
escape.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 23:35:10 +05:30
Abhimanyu Saharan
04d80c53ac Merge branch 'master' into test/e2e-critical-flows 2026-03-04 22:30:36 +05:30
Abhimanyu Saharan
b6aff9c796 test(e2e): align critical-flow specs with local auth CI 2026-03-04 22:29:47 +05:30
Abhimanyu Saharan
39f314cd8c test(e2e): extract shared page test setup hooks 2026-03-04 22:26:40 +05:30
Abhimanyu Saharan
d1b08b4777 chore(e2e): remove gap analysis markdown doc 2026-03-04 22:26:15 +05:30
Abhimanyu Saharan
c26dddbce8 test(e2e): fix approvals action label assertion for CI 2026-03-04 22:26:15 +05:30
Abhimanyu Saharan
ba918d4231 docs(e2e): add gap analysis + CI determinism notes 2026-03-04 22:26:15 +05:30
Abhimanyu Saharan
f69af0a6c9 test(e2e): add critical flows for boards, approvals, packs 2026-03-04 22:26:15 +05:30
Abhimanyu Saharan
3a21c4c204 test(frontend): auto-restore location stub in UserMenu tests 2026-03-04 22:19:01 +05:30
Abhimanyu Saharan
b3b8285a64 test(frontend): harden UserMenu RTL mocks and local sign-out assertions 2026-03-04 22:18:09 +05:30
Abhimanyu Saharan
3dca0fa813 test(frontend): fix lint typing in UserMenu test link mock 2026-03-04 22:09:52 +05:30
Abhimanyu Saharan
d739e31196 test(frontend): add UserMenu RTL coverage for local-mode menu actions 2026-03-04 22:09:52 +05:30
Abhimanyu Saharan
81b9a586ed fix(activity): use API route metadata for feed links 2026-03-04 16:25:16 +05:30
Abhimanyu Saharan
bdc9fc3f01 redesigned dashboard page 2026-03-04 16:01:56 +05:30
Abhimanyu Saharan
91ee668b54 test(frontend): address PR feedback for TaskBoard test robustness 2026-03-03 04:51:30 +05:30
Abhimanyu Saharan
27e94197d0 test(frontend): fix TaskBoard test typings for CI tsc 2026-03-03 04:05:36 +05:30
Abhimanyu Saharan
6c897d7faf test(frontend): add TaskBoard + TaskCard coverage and full coverage config 2026-03-03 04:05:15 +05:30
Abhimanyu Saharan
0fe61e3e08 refactor(env): update NEXT_PUBLIC_API_URL to use 'auto' for better flexibility 2026-03-03 02:40:28 +05:30
Abhimanyu Saharan
94ae59d6aa refactor(gateway): update gateway parameters to use None as default #169 2026-03-03 01:51:52 +05:30
Abhimanyu Saharan
fe93832bdd refactor(frontend): centralize agent emoji constants 2026-03-03 00:45:14 +05:30
dependabot[bot]
13340d1898 chore(deps-dev): bump minimatch
Bumps the npm_and_yarn group with 1 update in the /frontend directory: [minimatch](https://github.com/isaacs/minimatch).


Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 07:11:31 +00:00
dependabot[bot]
0b9745754f chore(deps): bump rollup
Bumps the npm_and_yarn group with 1 update in the /frontend directory: [rollup](https://github.com/rollup/rollup).


Updates `rollup` from 4.57.1 to 4.59.0
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.57.1...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 03:54:16 +00:00
Abhimanyu Saharan
bc71d5ba38 refactor(page): improve code formatting for better readability in event handlers 2026-02-26 00:36:33 +05:30
Abhimanyu Saharan
6b21ea6f99 feat(boards): add 'comment_required_for_review' rule and update related logic 2026-02-26 00:31:47 +05:30
Abhimanyu Saharan
5b0ddcc7cd refactor(tests): format code for better readability in test files 2026-02-25 03:41:03 +05:30
Abhimanyu Saharan
9e4be7192e test(e2e): ensure delete task button is visible and scrolls into view 2026-02-25 03:14:56 +05:30
Abhimanyu Saharan
8b7c728f32 test(e2e): replace forced clicks with actionability checks 2026-02-25 03:01:15 +05:30
Abhimanyu Saharan
33b705a935 test(e2e): remove force click for edit-task actionability 2026-02-25 02:59:15 +05:30
Abhimanyu Saharan
aa2ceba576 test(e2e): scope board task SSE stubs to known endpoints 2026-02-25 02:50:57 +05:30
Abhimanyu Saharan
c03affe3e0 test(e2e): switch boards list spec to local auth 2026-02-25 02:50:11 +05:30
Abhimanyu Saharan
b35980618d test(e2e): switch board task spec to local auth 2026-02-25 02:40:54 +05:30
Abhimanyu Saharan
08341d26ac test(frontend): stabilize onboarding polling assertion 2026-02-25 02:39:53 +05:30
Abhimanyu Saharan
42b361ddd9 test(frontend): stabilize auth boundary tests for local auth mode 2026-02-25 02:32:42 +05:30
Abhimanyu Saharan
be18072d52 Merge origin/master into hana/e2e-boards-gap-analysis 2026-02-25 02:26:46 +05:30
Abhimanyu Saharan
e3404d8590 feat: implement local authentication flow and update related tests 2026-02-25 02:24:51 +05:30
Abhimanyu Saharan
1045267d4c feat: add groupSnapshot alias and handle hydration mismatch in E2E tests 2026-02-25 01:39:04 +05:30