Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
770ded9
fix(BUG-042): drop `moment` from backend; standardise on luxon
shyamvadaliya12 May 12, 2026
d1141c2
fix(BUG-043): wrap clickable <span>/<img> affordances in real <button>
shyamvadaliya12 May 12, 2026
35ec9eb
fix(BUG-044): give Modal role=dialog, aria-modal, and focus trap
shyamvadaliya12 May 12, 2026
be2bc06
fix(BUG-045): wire up the jest test suite
shyamvadaliya12 May 12, 2026
1b9f351
fix(BUG-046): let Mongoose manage history timestamps
shyamvadaliya12 May 12, 2026
f1a3cb0
fix(BUG-047): ARIA semantics + keyboard nav for CustomDropDown
shyamvadaliya12 May 12, 2026
a16cd0c
Done - Test Case
shyamvadaliya12 May 12, 2026
6069277
Merge pull request #112 from aliansoftwareteam/fix/bug-011-verify-inv…
shyamvadaliya12 May 12, 2026
bed9211
Merge pull request #113 from aliansoftwareteam/fix/bug-012-ip-rate-limit
shyamvadaliya12 May 12, 2026
347fe70
Merge branch 'staging' into fix/bug-013-membership-revalidation
shyamvadaliya12 May 12, 2026
5a866ee
Merge pull request #114 from aliansoftwareteam/fix/bug-013-membership…
shyamvadaliya12 May 12, 2026
85bdf40
Merge pull request #115 from aliansoftwareteam/fix/bug-014-verificati…
shyamvadaliya12 May 12, 2026
f0a314e
Merge pull request #117 from aliansoftwareteam/fix/bug-016-reject-aft…
shyamvadaliya12 May 12, 2026
62a3e9e
Merge pull request #118 from aliansoftwareteam/fix/bug-017-foreach-async
shyamvadaliya12 May 12, 2026
750437b
Merge pull request #119 from aliansoftwareteam/fix/bug-018-allsettled…
shyamvadaliya12 May 12, 2026
7d3b7b4
Merge pull request #120 from aliansoftwareteam/fix/bug-019-implicit-g…
shyamvadaliya12 May 12, 2026
9b5d842
Merge pull request #121 from aliansoftwareteam/fix/bug-020-cache-key-…
shyamvadaliya12 May 12, 2026
3d3a0bb
Merge pull request #122 from aliansoftwareteam/fix/bug-021-mongo-indexes
shyamvadaliya12 May 12, 2026
7ef82d4
Merge pull request #123 from aliansoftwareteam/fix/bug-022-sharp-upgrade
shyamvadaliya12 May 12, 2026
7f8fd66
Merge pull request #124 from aliansoftwareteam/fix/bug-023-sharp-size…
shyamvadaliya12 May 12, 2026
1cf8128
Merge pull request #125 from aliansoftwareteam/fix/bug-024-sync-fs-in…
shyamvadaliya12 May 12, 2026
f97d099
Merge pull request #126 from aliansoftwareteam/fix/bug-025-console-lo…
shyamvadaliya12 May 12, 2026
64ea957
Merge pull request #127 from aliansoftwareteam/fix/bug-026-strict-equ…
shyamvadaliya12 May 12, 2026
5f18991
Merge pull request #129 from aliansoftwareteam/fix/bug-028-error-mess…
shyamvadaliya12 May 12, 2026
8bf1a3d
Merge pull request #130 from aliansoftwareteam/fix/bug-029-timedurati…
shyamvadaliya12 May 12, 2026
a6b7e0a
Merge pull request #131 from aliansoftwareteam/fix/bug-030-sprint-dat…
shyamvadaliya12 May 12, 2026
5ddb34b
Merge branch 'staging' into fix/bug-027-double-res-send
shyamvadaliya12 May 12, 2026
cf524cf
Merge pull request #128 from aliansoftwareteam/fix/bug-027-double-res…
shyamvadaliya12 May 12, 2026
4f1be8a
Merge pull request #132 from aliansoftwareteam/fix/bug-031-handlenoti…
shyamvadaliya12 May 12, 2026
cb8c83b
Merge pull request #133 from aliansoftwareteam/fix/bug-032-soft-delet…
shyamvadaliya12 May 12, 2026
7e03180
Merge pull request #134 from aliansoftwareteam/fix/bug-033-task-creat…
shyamvadaliya12 May 12, 2026
46f7bb4
Merge pull request #135 from aliansoftwareteam/fix/bug-034-log-rotation
shyamvadaliya12 May 12, 2026
9fade04
Merge pull request #136 from aliansoftwareteam/fix/bug-035-cron-tz
shyamvadaliya12 May 12, 2026
9357519
Merge pull request #137 from aliansoftwareteam/fix/bug-036-service-fi…
shyamvadaliya12 May 12, 2026
6e5c011
Merge pull request #138 from aliansoftwareteam/fix/bug-037-bodyparser…
shyamvadaliya12 May 12, 2026
259f625
Merge pull request #139 from aliansoftwareteam/fix/bug-038-s3-timeout
shyamvadaliya12 May 12, 2026
d086574
Merge pull request #140 from aliansoftwareteam/fix/bug-039-oauth-state
shyamvadaliya12 May 12, 2026
8917702
Merge pull request #141 from aliansoftwareteam/fix/bug-040-remove-dep…
shyamvadaliya12 May 12, 2026
44fe2f2
Add Gitigonre
shyamvadaliya12 May 12, 2026
5c96918
Rename the folder Auth
shyamvadaliya12 May 12, 2026
05ac59e
Rename Folder
shyamvadaliya12 May 12, 2026
e365473
Chnage the name
shyamvadaliya12 May 12, 2026
9fc7dca
Folder Rename
shyamvadaliya12 May 12, 2026
5c28883
remove dist
shyamvadaliya12 May 12, 2026
c3b15a9
Merge branch 'staging' into fix/bug-041-remove-aws-sdk-v2
shyamvadaliya12 May 12, 2026
b84a8c5
Merge pull request #142 from aliansoftwareteam/fix/bug-041-remove-aws…
shyamvadaliya12 May 12, 2026
9eb2939
Merge pull request #144 from aliansoftwareteam/fix/bug-043-clickable-…
shyamvadaliya12 May 12, 2026
0ef712b
Merge pull request #146 from aliansoftwareteam/fix/bug-045-test-suite
shyamvadaliya12 May 12, 2026
f8339d4
Merge pull request #148 from aliansoftwareteam/fix/bug-047-dropdown-aria
shyamvadaliya12 May 12, 2026
2abec35
Merge branch 'staging' into fix/bug-042-moment-to-luxon-backend
shyamvadaliya12 May 12, 2026
8aa7806
Merge pull request #143 from aliansoftwareteam/fix/bug-042-moment-to-…
shyamvadaliya12 May 12, 2026
94dff24
Merge branch 'staging' into fix/bug-046-mongoose-timestamps
shyamvadaliya12 May 12, 2026
f024c6e
Merge pull request #147 from aliansoftwareteam/fix/bug-046-mongoose-t…
shyamvadaliya12 May 12, 2026
e30ff4a
Merge branch 'staging' into fix/bug-044-modal-aria-focus-trap
shyamvadaliya12 May 12, 2026
6a57e85
Merge pull request #145 from aliansoftwareteam/fix/bug-044-modal-aria…
shyamvadaliya12 May 12, 2026
a4f5a5e
Create yml
shyamvadaliya12 May 12, 2026
3f85074
Update main.yml
joshishiv4 May 12, 2026
b70e399
Update main.yml
shyamvadaliya12 May 12, 2026
bd96c31
Update main.yml
shyamvadaliya12 May 12, 2026
662715a
Basic Setup
shyamvadaliya12 May 12, 2026
d471504
fix: repair broken advisory URL in SECURITY.md (#44)
parth0025 May 14, 2026
4ddd4e5
fix: refresh correct lastRequest field on connection reuse (#42)
parth0025 May 14, 2026
3ca7bcf
fix: remove duplicate CheckInstallStep mount and .env hot-reload (#41)
parth0025 May 14, 2026
618dd2b
fix: preserve dataType and options across JWT refresh retry (#38)
parth0025 May 14, 2026
74b4e6b
fix: clean up close_click IPC listener after each notification (#39)
parth0025 May 14, 2026
5af9f29
feat: allow editing the "Created by" user on a task
parth0025 May 15, 2026
f27cdf7
feat: split header notifications into Unread and Archive views
parth0025 May 15, 2026
486c4c5
fix: honour project-level Ignore for task creator and company owner
parth0025 May 15, 2026
6be29f3
Merge pull request #149 from aliansoftwareteam/fix/issue-44-security-…
parth0025 May 15, 2026
24e1b29
Merge pull request #150 from aliansoftwareteam/fix/issue-42-mongo-las…
parth0025 May 15, 2026
a97fbf4
Merge pull request #151 from aliansoftwareteam/fix/issue-41-duplicate…
parth0025 May 15, 2026
7fc569c
Merge pull request #152 from aliansoftwareteam/fix/issue-38-jwt-retry…
parth0025 May 15, 2026
9c7fa18
Merge pull request #153 from aliansoftwareteam/fix/issue-39-ipc-liste…
parth0025 May 15, 2026
4c47976
Merge pull request #154 from aliansoftwareteam/feature/editable-task-…
parth0025 May 15, 2026
430485f
Merge pull request #155 from aliansoftwareteam/feature/notification-u…
parth0025 May 15, 2026
565c7a5
feat: per-company screenshot retention policy + nightly cleanup cron
parth0025 May 15, 2026
7597722
refactor: comment out unused companyId injection in SettingScreenshot…
parth0025 May 15, 2026
a2e506d
feat(setup): one-command developer setup via `npm run setup`
parth0025 May 18, 2026
c162478
Merge pull request #158 from aliansoftwareteam/feature/one-command-de…
parth0025 May 18, 2026
a01e9a9
fix(screenshot-retention): security + correctness pass on PR #157
parth0025 May 18, 2026
c01757b
Merge pull request #157 from aliansoftwareteam/feature/screenshot-ret…
parth0025 May 18, 2026
79c7f68
feat(security): P0 + partial P1 hardening, CI pipeline, multer v2
parth0025 May 18, 2026
57728f1
fix(safeServiceFile): reject Windows absolute paths on any host
parth0025 May 18, 2026
9d8063e
Merge pull request #159 from aliansoftwareteam/feat/p0-p1-security-ha…
parth0025 May 18, 2026
b3e0b55
Update main.yml
joshishiv4 May 19, 2026
ca32967
Update main.yml
joshishiv4 May 19, 2026
4d740a6
feat(ai-project-generator): one-shot AI project bootstrap with PDF br…
parth0025 May 19, 2026
5f543cf
ci(main.yml): map VUE_APP_* secrets into the frontend build step
parth0025 May 20, 2026
124e73c
Merge branch 'feature/ai-project-generator' into staging
parth0025 May 20, 2026
508629a
Merge pull request #171 from aliansoftwareteam/feature/ai-project-gen…
parth0025 May 20, 2026
e90e2c0
Merge branch 'staging' of https://github.com/aliansoftwareteam/AlianH…
parth0025 May 20, 2026
f8567cc
feat(env): update AI model to gpt-4o-mini in .env.example
parth0025 May 20, 2026
ab89fa3
refactor(projects): split Projects.vue and Task.vue mega-components (…
parth0025 May 20, 2026
d401b43
Merge pull request #173 from aliansoftwareteam/feature/split-projects…
parth0025 May 20, 2026
5c24855
refactor(backend): split task/logtime/milestone/auth mega-files (#164)
parth0025 May 20, 2026
b8818a3
fix(auth): relocate stranded verify*Auth helpers + repair inline requ…
parth0025 May 20, 2026
329a005
Merge pull request #174 from aliansoftwareteam/feature/split-mega-fil…
parth0025 May 20, 2026
3f5cad6
fix(ai-project): default ProjectType to "Fix" to match manual flow
parth0025 May 20, 2026
95602b7
Merge pull request #175 from aliansoftwareteam/fix/ai-project-default…
parth0025 May 20, 2026
46cd727
perf(mongo): bound the per-tenant Mongoose connection pool (#162)
parth0025 May 20, 2026
76f4568
Merge pull request #176 from aliansoftwareteam/fix/issue-162-bound-te…
parth0025 May 20, 2026
4275182
fix(logging): replace console.log with Winston logger across modules …
parth0025 May 20, 2026
b2507b7
feat(tasks): multi-select bulk actions across List/Kanban/Table views
parth0025 May 21, 2026
4a4c711
Merge pull request #178 from aliansoftwareteam/feature/bulk-task-actions
parth0025 May 21, 2026
f32b778
fix(aipg): collapse plan flow to one-shot, drop clarification + task-…
parth0025 May 21, 2026
39966c0
Merge pull request #179 from aliansoftwareteam/fix/aipg-one-shot-flow
parth0025 May 21, 2026
80ca837
fix(table): adjust table layout and spacing for improved readability
parth0025 May 21, 2026
d712ee4
Merge pull request #180 from aliansoftwareteam/fix/table-spacing-issue
parth0025 May 21, 2026
913a04e
Fix comment duplicates and preserve drafts
parth0025 May 21, 2026
877728c
Merge pull request #181 from aliansoftwareteam/codex-fix-comment-dupl…
parth0025 May 21, 2026
646a9a0
feat(ai-project-generator): implement async project plan generation w…
parth0025 May 21, 2026
d302e7e
Merge pull request #182 from aliansoftwareteam/codex-async-ai-project…
parth0025 May 21, 2026
7dfa5c2
perf(socket): phase 1 quick-wins for real-time scalability
parth0025 May 22, 2026
e22d43f
Merge pull request #183 from aliansoftwareteam/perf/phase-1-socket-qu…
parth0025 May 22, 2026
3620f4e
perf(socket): phase 2 core refactor — Map-based room index
parth0025 May 22, 2026
28ff44c
Merge pull request #184 from aliansoftwareteam/perf/phase-2-socket-ro…
parth0025 May 22, 2026
87b0147
fix(tasks): resolve list-view assignee TypeError after Task.vue refactor
parth0025 May 22, 2026
491cd87
Merge pull request #185 from aliansoftwareteam/fix/list-view-assignee…
parth0025 May 22, 2026
0460d0b
In progress changes commit
parth0025 May 23, 2026
2215480
fix(ai-project-generator): unblock execute hang, fix list rendering, …
parth0025 May 23, 2026
80b93d6
Merge pull request #186 from aliansoftwareteam/staging-dev
parth0025 May 25, 2026
9b27af2
revert(staging): temporarily disable hardening middleware and tenant …
parth0025 May 25, 2026
52eba45
Merge pull request #187 from aliansoftwareteam/staging-dev
parth0025 May 25, 2026
3ab90c6
Add space
parth0025 May 25, 2026
114e7d3
fix(promptBuilder): correct comment formatting for consistency
parth0025 May 25, 2026
75e6ef3
fix: consolidate lowercase modules/ into Modules/ to resolve case-fol…
parth0025 May 25, 2026
34c042a
feat(tasks): AI-estimate completion time on task create
parth0025 May 25, 2026
8b4cb98
Merge pull request #188 from aliansoftwareteam/feat/ai-task-time-esti…
parth0025 May 25, 2026
ea5e224
feat(estimated-time): manual AI trigger + accuracy rewrite
parth0025 May 25, 2026
1d038cb
Merge pull request #189 from aliansoftwareteam/feat/ai-estimate-manua…
parth0025 May 25, 2026
5fb27ff
feat(ai-project-generator): preserve plan across Back nav + bypass pl…
parth0025 May 25, 2026
1f1223f
Merge pull request #190 from aliansoftwareteam/feat/ai-project-step-n…
parth0025 May 25, 2026
3f2ac0d
fix(ai-project-generator): activate new project after AI creation
parth0025 May 26, 2026
2a1977a
Merge pull request #191 from aliansoftwareteam/fix/ai-project-post-cr…
parth0025 May 26, 2026
2333041
Push TEST-CASES.md file
parth0025 May 26, 2026
2b5c197
feat(dashboard): Employee Workload & Activity Report widget
parth0025 May 27, 2026
4496ab3
fix(multi-task-select): assignee avatars, responsive menus, checkbox …
parth0025 May 28, 2026
e492529
feat(multi-task-select): cascade selection between parent and subtasks
parth0025 May 28, 2026
82eae29
Merge pull request #193 from aliansoftwareteam/fix/multi-task-select-ui
parth0025 May 28, 2026
91598ea
feat(ai-project-generator): add Clarify step between Describe and Plan
parth0025 May 28, 2026
40ddba6
Merge pull request #194 from aliansoftwareteam/feat/ai-project-clarif…
parth0025 May 28, 2026
1d144a9
Merge branch 'staging' into feat/employee-workload-report-widget
parth0025 May 28, 2026
4d9a3d1
fix(ai-project-creator): block outside-click while a run is in flight
parth0025 May 28, 2026
6dbeec8
Merge pull request #195 from aliansoftwareteam/fix/ai-project-creator…
parth0025 May 28, 2026
4d1e902
Merge remote-tracking branch 'origin/staging' into feat/employee-work…
parth0025 May 28, 2026
58981c5
docs(test-cases): add per-module test case files for all Settings & c…
parth0025 May 29, 2026
54cbbcc
docs: add per-module test cases for Settings & core modules
parth0025 May 29, 2026
e003753
docs(test-cases): remove Plan Feature Gate from Teams and Bulk Import…
parth0025 May 29, 2026
ed01eb6
refactor(ai-project-creator): wizard-style clarify step + prompt impr…
parth0025 May 29, 2026
51b302d
fix(ai-project-creator): differentiate 429 rate-limit from out-of-cre…
parth0025 May 29, 2026
935a0f2
Merge pull request #197 from aliansoftwareteam/refactor/clarify-wizar…
parth0025 May 29, 2026
d21367d
fix(ai-project-creator): default AI-created tasks to the first task s…
parth0025 May 29, 2026
67775b9
fix(ai-project-creator): use company's existing statuses, never inven…
parth0025 May 29, 2026
b64aef8
fix(ai-project-creator): use a curated standard status set, not full …
parth0025 May 29, 2026
ac22e6a
fix(ai-project-creator): rename final task status from "Done" to "Com…
parth0025 May 29, 2026
e3f3637
Merge pull request #199 from aliansoftwareteam/fix/ai-tasks-default-t…
parth0025 May 29, 2026
d8ebf42
fix(bulk-action): show all company users in assignee picker for publi…
parth0025 May 29, 2026
1d92c14
Merge pull request #200 from aliansoftwareteam/fix/bulk-action-assign…
parth0025 May 29, 2026
fdb21ca
Merge remote-tracking branch 'origin/staging' into feat/employee-work…
parth0025 Jun 1, 2026
96f2e33
feat(ai-project-generator): conditional sprints, UX platform awarenes…
parth0025 Jun 1, 2026
784e6dd
feat(ai-project-generator): conditional sprints, UX platform awarenes…
parth0025 Jun 1, 2026
c74e97d
feat(ai-project-generator): add DeepSeek as a selectable LLM provider
parth0025 Jun 1, 2026
0085e1b
feat(ai-project-generator): add DeepSeek as a selectable LLM provider…
parth0025 Jun 1, 2026
e067827
feat(ai-project-generator): activity logs for AI task creation & esti…
parth0025 Jun 1, 2026
814301e
Merge pull request #204 from aliansoftwareteam/feat/ai-activity-logs
parth0025 Jun 1, 2026
4ff50d2
fix(task-detail): always show AI estimate trigger in task sidebar
parth0025 Jun 4, 2026
272b27b
Merge pull request #205 from aliansoftwareteam/fix/ai-estimate-button…
parth0025 Jun 4, 2026
814da90
Merge remote-tracking branch 'origin/staging' into feat/employee-work…
parth0025 Jun 5, 2026
7137d52
feat(workload-report): inline time period, Current live mode, running…
parth0025 Jun 5, 2026
9ae113e
feat(workload-report): add user count badge under card title
parth0025 Jun 5, 2026
4dbe795
Merge pull request #192 from aliansoftwareteam/feat/employee-workload…
parth0025 Jun 5, 2026
a3cee8e
chore(license): relicense from MIT to AGPL-3.0-or-later
parth0025 Jun 8, 2026
1fa2d08
docs(branching): add branching strategy and update CONTRIBUTING
parth0025 Jun 8, 2026
61739dc
ci(lint): enforce Conventional Commits and branch-name conventions
parth0025 Jun 8, 2026
c5ed9f7
feat(workload-card): recently-added projects quick-add + flexible width
parth0025 Jun 8, 2026
e2516a2
Merge pull request #210 from aliansoftwareteam/feat/workload-card-rec…
parth0025 Jun 8, 2026
c8e02ec
ci(deploy): cut deploy RAM usage + trigger on merge only
parth0025 Jun 9, 2026
e9cf00a
Merge pull request #211 from aliansoftwareteam/ci/optimize-staging-de…
parth0025 Jun 9, 2026
da6c108
ci(validate): drop backend install/test/audit (build-only validate)
parth0025 Jun 9, 2026
ea7a9d3
ci(release): add release-please automation
parth0025 Jun 9, 2026
8537181
ci(docker): publish multi-arch images to GHCR + complete compose stack
parth0025 Jun 9, 2026
b7965d4
fix(docker): drop non-existent locale/ and migrations/ COPYs
parth0025 Jun 9, 2026
ca7c0ec
fix(docker): copy root package.json into frontend builder
parth0025 Jun 9, 2026
4649ca8
ci(docker): limit PR triggers to main only — drop staging
parth0025 Jun 9, 2026
f68cc03
docs(readme): polish README + add ROADMAP, SUPPORT, 8 screenshots
parth0025 Jun 9, 2026
0761012
docs(discoverability): submission playbook + package.json metadata
parth0025 Jun 9, 2026
c0797fd
Merge pull request #207 from aliansoftwareteam/chore/relicense-to-agp…
joshishiv4 Jun 9, 2026
80b0776
Merge pull request #208 from aliansoftwareteam/docs/branching-strategy
joshishiv4 Jun 9, 2026
0188844
fix(ci): address CodeRabbit review on PR #209
parth0025 Jun 9, 2026
f468227
fix(deps): sync package-lock.json with new commitlint devDeps
parth0025 Jun 9, 2026
2e1432b
Merge pull request #209 from aliansoftwareteam/ci/conventional-commit…
joshishiv4 Jun 9, 2026
8f3566f
Merge pull request #212 from aliansoftwareteam/ci/release-please
joshishiv4 Jun 9, 2026
7a30b2b
Delete ROADMAP.md
joshishiv4 Jun 9, 2026
687ff53
Merge pull request #214 from aliansoftwareteam/docs/readme-polish
joshishiv4 Jun 9, 2026
6f12068
Merge branch 'staging' into docs/discoverability
joshishiv4 Jun 9, 2026
ce8c29b
Merge pull request #215 from aliansoftwareteam/docs/discoverability
joshishiv4 Jun 9, 2026
5bcaf66
Merge pull request #213 from aliansoftwareteam/ci/docker-publish
joshishiv4 Jun 9, 2026
5fb7852
ci(lint): allow long-running branches in promotion PRs (#217)
parth0025 Jun 9, 2026
6d3f34d
ci(docker): skip PR triggers — build only on push to main + release (…
parth0025 Jun 9, 2026
866d8fa
feat(tasks): add task-to-task relations (blocks / duplicates / relate…
parth0025 Jun 10, 2026
1543fa3
chore(release): back-merge main into staging after v14.1.0
parth0025 Jun 10, 2026
efd690f
Merge pull request #223 from aliansoftwareteam/chore/backmerge-main-v…
parth0025 Jun 10, 2026
bcf343d
Merge remote-tracking branch 'origin/main' into chore/backmerge-main-…
parth0025 Jun 10, 2026
d2e174c
Merge pull request #225 from aliansoftwareteam/chore/backmerge-main-l…
parth0025 Jun 10, 2026
463d9d8
Merge remote-tracking branch 'origin/main' into chore/backmerge-main-…
parth0025 Jun 10, 2026
0413d28
Merge pull request #227 from aliansoftwareteam/chore/backmerge-main-v…
parth0025 Jun 10, 2026
dab3a53
feat(tier1): add reactions, recents, auto-archive, burndown and relat…
parth0025 Jun 10, 2026
c12c593
feat(platform): tier 2 and tier 3 - webhooks, search, epics, exports,…
parth0025 Jun 10, 2026
746012a
fix(exports): add xlsx to root dependencies and lazy-require it (#230)
parth0025 Jun 10, 2026
8c8080a
fix(server): stop the recursive restart wrapper and add deploy health…
parth0025 Jun 10, 2026
c35efad
fix(ui): consolidate toolbar features into a more menu and fix search…
parth0025 Jun 11, 2026
8afcc0c
feat(changelog): show release time in 12-hour format on whats new pag…
parth0025 Jun 11, 2026
889ba4c
docs: add manual test cases for the new features (#234)
parth0025 Jun 11, 2026
65a66e7
feat(auth): add GitLab OAuth login and harden Google/GitHub sign-in (…
parth0025 Jun 11, 2026
bf82e62
ci: allow manual workflow_dispatch to deploy staging (#236)
parth0025 Jun 11, 2026
6599035
ci: inject OAuth client ids and flags into the frontend build (#237)
parth0025 Jun 11, 2026
ea6f669
feat(mcp): server-side permission enforcement and token auth for the …
parth0025 Jun 15, 2026
0080c46
docs(readme): honest feature table, Plane comparison, services sectio…
parth0025 Jun 16, 2026
63a7205
docs: add ROADMAP with a free-stays-free commitment (#242)
parth0025 Jun 16, 2026
16639f8
feat(webhooks): add Slack and Discord delivery format presets (#243)
parth0025 Jun 16, 2026
b9a26c4
feat(demo): env-gated demo-mode banner (#244)
parth0025 Jun 16, 2026
a65d445
feat(stickies): add personal sticky notes (#239)
parth0025 Jun 16, 2026
bd47dd7
fix(i18n): close Stickies object in en.js so the frontend builds (#245)
parth0025 Jun 16, 2026
3638d55
feat(dashboard): dismiss recently-added project suggestions (#246)
parth0025 Jun 16, 2026
7e42828
feat(auth): add opt-in TOTP two-factor authentication (Phase 1)
parth0025 Jun 16, 2026
f95fa29
docs(test-cases): add Two-Factor Authentication manual test cases
parth0025 Jun 16, 2026
cc4ce92
fix: scope MCP permission guards to PAT requests and drop the project…
parth0025 Jun 16, 2026
a7c7455
fix: address safe CodeRabbit findings from the #240 promotion review …
parth0025 Jun 16, 2026
2bd980f
Merge pull request #251 from aliansoftwareteam/main
parth0025 Jun 16, 2026
43761e7
Merge pull request #247 from aliansoftwareteam/feat/2fa-totp-phase1
parth0025 Jun 17, 2026
8399ce8
feat(integrations): Sprint 2 — webhooks UI, CSV/Trello importers, act…
parth0025 Jun 17, 2026
0fdab95
feat(sprint3): story points, estimation scale, Trello rich import, @m…
parth0025 Jun 17, 2026
1ffb9e5
Merge pull request #252 from aliansoftwareteam/feat/sprint2-implement…
parth0025 Jun 17, 2026
030477f
fix(tracker): replace global keyboard hook with powerMonitor idle act…
parth0025 Jun 17, 2026
c1b7d7a
Merge pull request #253 from aliansoftwareteam/feat/sprint3-implement…
parth0025 Jun 17, 2026
b692b8e
Merge branch 'staging' into fix/tracker-activity-powermonitor
parth0025 Jun 17, 2026
e23563a
fix(tracker): detect keyboard vs mouse separately via cursor movement
parth0025 Jun 18, 2026
61cbb09
chore(tracker): bump version to 5.0.1 for the activity-detection fix
parth0025 Jun 18, 2026
5b11989
Merge pull request #254 from aliansoftwareteam/fix/tracker-activity-p…
parth0025 Jun 18, 2026
0d972ef
feat(sprint4): agile reports — burndown, velocity, CFD, PDF export
parth0025 Jun 18, 2026
4d0289b
Merge pull request #255 from aliansoftwareteam/feat/sprint4-implement…
parth0025 Jun 18, 2026
6fd95b6
feat(sprint5): gantt/timeline view + recurring tasks
parth0025 Jun 18, 2026
ae1caaa
Merge pull request #256 from aliansoftwareteam/feat/sprint5-implement…
parth0025 Jun 18, 2026
6e9cc3a
fix(gantt): render tasks when the Gantt tab is the reload entry point
parth0025 Jun 18, 2026
cd6b4cc
docs(test-cases): add Sprint 2-5 feature test cases
parth0025 Jun 18, 2026
f14fd6c
Merge pull request #257 from aliansoftwareteam/fix/gantt-reload-render
parth0025 Jun 18, 2026
c98dea8
feat(public-share): harden read-only links — expiry, password, hard-r…
parth0025 Jun 19, 2026
42a80b3
Merge pull request #258 from aliansoftwareteam/feat/sprint6-share-har…
parth0025 Jun 19, 2026
4e47b64
feat(tasks,epics): blocked-task warning + epic dates/owner/priority/p…
parth0025 Jun 19, 2026
b06ee2a
Merge pull request #259 from aliansoftwareteam/feat/relations-epics-e…
parth0025 Jun 19, 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
44 changes: 44 additions & 0 deletions .claude/import-samples/sample-trello-board.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"name": "Sample Trello Board (rich)",
"lists": [
{ "id": "list-todo", "name": "To Do", "closed": false },
{ "id": "list-hold", "name": "On Hold", "closed": false },
{ "id": "list-done", "name": "Complete", "closed": false }
],
"members": [
{ "id": "m1", "fullName": "Parth Detroja", "username": "parth", "email": "harmit.mendapara@aliansoftware.net" }
],
"cards": [
{
"id": "c1", "name": "Set up project repo", "desc": "Init repo and CI pipeline",
"due": "2026-06-24T10:00:00.000Z", "idList": "list-todo", "closed": false,
"idMembers": ["m1"],
"labels": [{ "name": "Backend", "color": "blue" }, { "name": "P0", "color": "red" }],
"attachments": [{ "name": "spec.pdf", "url": "https://trello.com/attach/spec.pdf", "bytes": 20480 }]
},
{
"id": "c2", "name": "Build landing page", "desc": "Hero, features and pricing sections",
"due": null, "idList": "list-hold", "closed": false,
"idMembers": [],
"labels": [{ "name": "Frontend", "color": "green" }],
"attachments": []
},
{
"id": "c3", "name": "Archived card should be skipped", "desc": "this card is closed",
"due": null, "idList": "list-done", "closed": true
}
],
"checklists": [
{
"id": "cl1", "idCard": "c1", "name": "Acceptance criteria",
"checkItems": [
{ "name": "Repo created", "state": "complete", "pos": 100 },
{ "name": "CI pipeline green", "state": "incomplete", "pos": 200 }
]
}
],
"actions": [
{ "type": "commentCard", "date": "2026-06-18T09:00:00.000Z", "data": { "text": "Use the org template for CI.", "card": { "id": "c1" } }, "memberCreator": { "fullName": "Parth Detroja" } },
{ "type": "commentCard", "date": "2026-06-18T11:00:00.000Z", "data": { "text": "Landing copy is in the brief.", "card": { "id": "c2" } }, "memberCreator": { "fullName": "Jane Doe" } }
]
}
23 changes: 23 additions & 0 deletions .claude/test-cases/BlockedTaskWarning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Blocked-Task Warning — Test Cases

**Feature:** A task that is `blocked_by` one or more still-open tasks shows a clear "⚠ Blocked by N open task(s)" banner in its Linked Tasks panel. Makes AlianHub's blocked-task alert real.

**Location:**
- Frontend: Task detail → **Linked Tasks** panel — `frontend/src/components/organisms/LinkedTasks/LinkedTasks.vue` (computed `openBlockers`, banner).
- Backend: `POST /api/v2/tasks/relations` action `openBlockers` → `getOpenBlockers` (`Modules/Tasks/helpers/taskMongo/relations.js`); pure helper `selectOpenBlockers` (`relationRules.js`). A blocker counts only while `statusType !== 'close'` and not soft-deleted.

**Legend:** ✅ Pass · ❌ Fail · ⏳ Pending (not yet run in the app)

| ID | Title | Precondition | Steps | Expected | Actual | Status |
|----|-------|--------------|-------|----------|--------|--------|
| BW_001 | Warning shows for an open blocker | Task B is `blocked_by` Task A; A is open | Open Task B → Linked Tasks panel | Amber banner: "⚠ Blocked by 1 open task(s): {A.key}" | | ⏳ Pending |
| BW_002 | Warning clears when the blocker closes | As BW_001 | Move Task A to a Done/closed status; reopen Task B | Banner disappears (0 open blockers) | | ⏳ Pending |
| BW_003 | Only `blocked_by` counts | Task B `blocks` Task A (B blocks, isn't blocked) | Open Task B | No banner on B | | ⏳ Pending |
| BW_004 | Multiple open blockers listed | B `blocked_by` A and C, both open | Open Task B | Banner shows count 2 and both keys | | ⏳ Pending |
| BW_005 | Soft-deleted blocker ignored | B `blocked_by` A; A soft-deleted | Open Task B | A not counted in the banner | | ⏳ Pending |
| BW_006 | `openBlockers` API action | B `blocked_by` A (open) | POST /api/v2/tasks/relations {action:'openBlockers', taskId:B} | `{ status:true, data:[A summary] }` | | ⏳ Pending |
| BW_007 | duplicates / relates_to never block | B `relates_to`/`duplicates` A | Open Task B | No banner | | ⏳ Pending |

**Unit coverage:** `selectOpenBlockers` + `isClosedStatusType` fully covered in `tests/task-relations-rules.test.js` (open / closed / deleted / wrong-type / null / mixed).

**Total:** 7 manual cases · pure logic unit-tested (green).
24 changes: 24 additions & 0 deletions .claude/test-cases/CsvImporter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# CSV Importer — Test Cases

**Location:** Project board toolbar → `...` (More) → Import CSV · **Last updated:** 2026-06-18

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Import Flow

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|---------|------------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|---------------|--------|
| CSV_001 | Import a valid CSV | A CSV with a header row (Task Name, Status, Priority, Due Date, Description); a sprint to import into | 1. Open `...` → Import CSV 2. Upload the file 3. Confirm the auto-detected column mapping 4. Pick the target sprint 5. Import | Success message with created count; tasks appear in the sprint with mapped name/status/priority/due | | ⏳ |
| CSV_002 | Manual column-mapping override | A CSV whose headers differ (e.g. "Summary" not "Task Name") | 1. Upload 2. Adjust the column-mapping dropdowns manually 3. Import | Import respects the manual mapping | | ⏳ |
| CSV_003 | Row missing a task name is skipped | A CSV where one row has no task name | 1. Import | That row is skipped; created count excludes it; import does not abort | | ⏳ |
| CSV_004 | Unknown status falls back | A CSV with a status not configured in the project | 1. Import | Task falls back to the project's first status | | ⏳ |
| CSV_005 | Priority mapping | A CSV with Highest / High / Medium / Low | 1. Import 2. Open the tasks | Priorities mapped (e.g. Highest→Urgent, High→High, Medium→Normal) | | ⏳ |
| CSV_006 | XLSX upload | An `.xlsx` file with the same columns | 1. Upload the .xlsx and import | Parses and imports the same as CSV | | ⏳ |
| CSV_007 | Import history | A completed import | 1. Re-open the import modal / import history | Job listed as source "csv" with total / processed / created counts | | ⏳ |
| CSV_008 | Invalid file handled | Import modal open | 1. Try an empty file 2. Try a non-CSV renamed to `.csv` | Readable error in both cases; nothing created; modal stays usable | | ⏳ |

---

**Total:** 8 test cases · **All status:** ⏳ Pending
19 changes: 19 additions & 0 deletions .claude/test-cases/CumulativeFlowDiagram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Cumulative Flow Diagram — Test Cases

**Location:** Project → `+ View` → Reports → Cumulative Flow · **Last updated:** 2026-06-18

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Chart Rendering

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|---------|-------------------------------|---------------------------------------------|---------------------------------------------|--------------------------------------------------------------------------------------------------|---------------|--------|
| CFD_001 | CFD renders | Reports view added; project with tasks across statuses | 1. Open Reports → Cumulative Flow | Stacked-area chart of task counts by status band (To do / In progress / On hold / Done) over ~30 days | | ⏳ |
| CFD_002 | Done band reflects completions | Some tasks completed over recent days | 1. Observe the "Done" band over time | The Done band grows on the dates tasks were completed | | ⏳ |
| CFD_003 | Empty state handled | A project with no tasks | 1. Open Reports → Cumulative Flow | Renders an empty/zero state — no crash | | ⏳ |

---

**Total:** 3 test cases · **All status:** ⏳ Pending
24 changes: 24 additions & 0 deletions .claude/test-cases/EpicEnhancements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Epic Enhancements (dates / owner / priority / status / progress) — Test Cases

**Feature:** Epics gain **start/due dates**, an **owner**, a **priority** (low/medium/high), an **in_progress** status (alongside open/done), and a visible **progress bar with %** — turning the thin v1 into a usable progress layer.

**Location:**
- Frontend: **Epics** panel — `frontend/src/components/molecules/Epics/EpicsPanel.vue` (create form fields, priority badge, status select, owner + dates, % label).
- Backend: `Modules/Epics/controller.js` (create/update accept the new fields), `helpers/epicRules.js` (`EPIC_PRIORITIES`, `parseEpicDates`, extended `EPIC_STATUSES`), schema `utils/mongo-handler/schema.js` (epics: priority, ownerUserId, startDate, dueDate).

**Legend:** ✅ Pass · ❌ Fail · ⏳ Pending (not yet run in the app)

| ID | Title | Precondition | Steps | Expected | Actual | Status |
|----|-------|--------------|-------|----------|--------|--------|
| EE_001 | Create epic with priority + dates | Project open; Epics panel open | Enter name, pick priority **High**, set start + due, click Add | Epic created; owner defaults to creator | | ⏳ Pending |
| EE_002 | Row renders new metadata | EE_001 done | View the epic row | Priority badge (High), owner name, due date all shown | | ⏳ Pending |
| EE_003 | Progress bar + % label | Epic has 4 tasks, 1 closed | View epic row | Bar ≈25%, label "25% · 1/4" | | ⏳ Pending |
| EE_004 | Set status In progress | Epic exists | Pick "In progress" in the row status select | Persists (PUT /epics/:id); chip tinted amber | | ⏳ Pending |
| EE_005 | Set status Done | Epic exists | Pick "Done" | Persists; chip tinted green | | ⏳ Pending |
| EE_006 | Invalid priority rejected (API) | — | PUT /api/v2/epics/:id {priority:'urgent'} | `{ status:false, "Invalid priority." }` | | ⏳ Pending |
| EE_007 | start-after-due rejected (API) | — | POST /api/v2/epics {startDate:'2026-07-01', dueDate:'2026-06-01', …} | `{ status:false, "startDate must be on or before dueDate." }` | | ⏳ Pending |
| EE_008 | Owner shows Unassigned when empty | Epic with no ownerUserId | View the row | Owner: "Unassigned" | | ⏳ Pending |

**Unit coverage:** `validateEpicInput` (priority), `parseEpicDates` (valid / clear / partial / unparseable / start>due), and `EPIC_STATUSES`/`EPIC_PRIORITIES` covered in `tests/epic-rules.test.js`.

**Total:** 8 manual cases · pure logic unit-tested (green).
44 changes: 44 additions & 0 deletions .claude/test-cases/GanttView.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Gantt / Timeline View — Test Cases

**Location:** Project → `+ View` → Gantt · **Last updated:** 2026-06-18

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky
>
> **Setup:** run `cd frontend && npm install` once (adds `dhtmlx-gantt`); add the **Gantt** view to the project via `+ View`.

---

## Rendering & Scheduling

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|---------|-----------------------------|-------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------------------|---------------|--------|
| GNT_001 | Add the Gantt view | dhtmlx-gantt installed; project open | 1. `+ View` → Gantt → Add | Gantt tab appears and opens | | ⏳ |
| GNT_002 | Bars render | Tasks with both a start and a due date | 1. Open the Gantt tab | Those tasks render as bars on the timeline | | ⏳ |
| GNT_003 | Drag to reschedule | A scheduled task | 1. Drag a bar to new dates 2. Reload + open List/Table | Start/due updated and persisted everywhere | | ⏳ |
| GNT_004 | Resize duration | A scheduled task | 1. Drag a bar's edge | Due date changes and persists | | ⏳ |
| GNT_005 | Zoom presets | Gantt open | 1. Switch Day / Week / Month | Timeline scale changes accordingly | | ⏳ |
| GNT_006 | Unscheduled tray → schedule | A task with no start/due dates | 1. In the Unscheduled tray click **Schedule** on the task | Task gets today→+1 day and appears as a bar | | ⏳ |
| GNT_007 | Milestones shown | Project with milestones | 1. Open the Gantt | Milestones render as read-only diamond markers | | ⏳ |

---

## Dependencies, Sync & Permissions

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|---------|--------------------------------|---------------------------------------------|-------------------------------------------------------------|--------------------------------------------------------------------------|---------------|--------|
| GNT_008 | Draw + delete a dependency | Two scheduled tasks | 1. Drag from one bar's edge to another 2. Then delete the link | A "blocks" relation is created (visible in the task's Linked Tasks — see TaskRelations) then removed | | ⏳ |
| GNT_009 | Live sync across sessions | Same project Gantt open in two browsers | 1. Drag a bar in window 1 | Window 2 updates within a couple of seconds without reload | | ⏳ |
| GNT_010 | Read-only without edit rights | User lacking task-edit permission | 1. Open the Gantt | Read-only (no drag / no link drawing); "View only" badge shown | | ⏳ |

---

## Regression (fixes)

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|---------|-----------------------------------------|------------------------------------|-----------------------------------------------------------------------|------------------------------------------------------------------|---------------|--------|
| GNT_011 | Reload with Gantt as the active view | Gantt tab is currently active | 1. Reload the page (do NOT visit another view first) | Bars render — Gantt loads the task store itself (no empty chart) | | ⏳ |
| GNT_012 | Repeated view switching doesn't crash | — | 1. Switch List → Table → Gantt and back several times | No error; Gantt re-renders cleanly each time (no "tasksStore" crash) | | ⏳ |

---

**Total:** 12 test cases · **All status:** ⏳ Pending
Loading
Loading