Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
4f055c7
fix(stability): surface allSettled rejection reasons (BUG-018 / #72)
shyamvadaliya12 May 12, 2026
f461c40
fix(stability): declare setChat with const (BUG-019 / #73)
shyamvadaliya12 May 12, 2026
ad78ed6
fix(stability): align cache set/remove key in MainChats (BUG-020 / #74)
shyamvadaliya12 May 12, 2026
ae6bd7f
perf: add MongoDB indexes for hot query paths (BUG-021 / #75)
shyamvadaliya12 May 12, 2026
dcb17c2
chore(deps): upgrade sharp 0.32.6 → ^0.34.0 (BUG-022 / #76)
shyamvadaliya12 May 12, 2026
3ea88c1
fix(security): guard sharp() inputs against pixel-bomb DoS (BUG-023 /…
shyamvadaliya12 May 12, 2026
52d10c8
perf: switch readFileSync in request handlers to async (BUG-024 / #78)
shyamvadaliya12 May 12, 2026
1d523ad
fix(observability): route console.* through Winston (BUG-025 / #79)
shyamvadaliya12 May 12, 2026
1c22862
fix(stability): strict equality on isEmailVerified check (BUG-026 / #80)
shyamvadaliya12 May 12, 2026
f9c51b3
fix(stability): guard checkUserAndCompany against duplicate res.send …
shyamvadaliya12 May 12, 2026
4e30603
fix: correct copy-paste error in companyId validation message (BUG-02…
shyamvadaliya12 May 12, 2026
2c77374
fix: validate timeDuration shape before .split(':') (BUG-029 / #83)
shyamvadaliya12 May 12, 2026
034c95d
fix(stability): guard against missing response.data in sprints (BUG-0…
shyamvadaliya12 May 12, 2026
2aef113
fix(observability): log silently-swallowed fetch failures (BUG-031 / …
shyamvadaliya12 May 12, 2026
9c85fcf
fix(BUG-032): consistent soft-delete filtering on list/count endpoints
shyamvadaliya12 May 12, 2026
f29b5f0
fix(BUG-033): reconcile sprint task counts when secondary writes fail
shyamvadaliya12 May 12, 2026
423a41f
fix(BUG-034): rotate Winston log files
shyamvadaliya12 May 12, 2026
f4ac0ff
fix(BUG-035): pin cron jobs to a known timezone
shyamvadaliya12 May 12, 2026
76c0c19
fix(BUG-036): path-traversal-safe loader for SERVICE_FILE
shyamvadaliya12 May 12, 2026
b0787b3
fix(BUG-037): tighten global bodyParser limit
shyamvadaliya12 May 12, 2026
6104205
fix(BUG-038): drop S3 request handler timeout from 5 min to 30 s
shyamvadaliya12 May 12, 2026
3e0ae44
fix(BUG-039): server-side identity verification for social login
shyamvadaliya12 May 12, 2026
bf3f8fb
fix(BUG-040): drop deprecated `atob` / `btoa` npm shims
shyamvadaliya12 May 12, 2026
766c2b3
fix(BUG-041): drop aws-sdk v2; consolidate on @aws-sdk/* v3
shyamvadaliya12 May 12, 2026
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
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
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
20 changes: 20 additions & 0 deletions .claude/test-cases/AutoArchive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Auto-Archive — Test Cases

**Location:** Project board toolbar → `...` (More) → Auto-archive · **Last updated:** 2026-06-11

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

---

## Settings Modal

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------|-------------------------------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|---------------|--------|
| AA_001 | Enable auto-archive with a threshold | Project open; user can edit settings | 1. Open `...` → Auto-archive 2. Turn the toggle on 3. Set days to 30 4. Save and reopen | Success toast on save; reopened modal shows toggle on with the saved day value | | ⏳ |
| AA_002 | Disable auto-archive | AA_001 done | 1. Reopen the modal 2. Turn the toggle off 3. Save and reopen | Setting persists as off | | ⏳ |
| AA_003 | Invalid day threshold is rejected | Auto-archive modal open | 1. Enter 0, a negative number or blank in the days field 2. Try to save | Value is rejected or normalized — no nonsensical threshold saved, no crash | | ⏳ |
| AA_004 | Setting is per project | Two projects; auto-archive on in project 1 | 1. Open `...` → Auto-archive in project 2 | Project 2 shows its own (default/off) state, unaffected by project 1 | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
20 changes: 20 additions & 0 deletions .claude/test-cases/BurndownChart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Burndown Chart — Test Cases

**Location:** Project board toolbar → `...` (More) → Burndown · **Last updated:** 2026-06-11

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

---

## Chart Rendering

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|---------------|--------|
| BD_001 | Chart renders for the current sprint | Sprint with dated tasks, some completed | 1. Open the sprint board 2. Open `...` → Burndown | Modal shows the burndown chart with date axis, remaining-work line and ideal line | | ⏳ |
| BD_002 | Completing a task lowers the remaining line | BD_001 done; note today's remaining count | 1. Close the modal 2. Mark one open task completed 3. Reopen `...` → Burndown | Today's remaining count is one lower than before | | ⏳ |
| BD_003 | Sprint without tasks is handled gracefully | A sprint with zero tasks | 1. Open that sprint's board 2. Open `...` → Burndown | Empty/zero chart or empty-state message — no crash | | ⏳ |
| BD_004 | Modal closes and reopens cleanly | Burndown modal open | 1. Close via ✕ 2. Reopen 3. Close by clicking the overlay | Both close actions work; reopening renders the chart correctly again | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
21 changes: 21 additions & 0 deletions .claude/test-cases/CommentReactions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Comment Reactions — Test Cases

**Location:** Task comments / project Comments tab · **Last updated:** 2026-06-11

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

---

## Add & Toggle Reactions

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|--------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| CR_001 | Add an emoji reaction to a comment | A task with at least one comment | 1. Hover the comment 2. Click the reaction control 3. Pick an emoji (e.g. 👍) | Emoji chip appears under the comment with count 1, highlighted as your own reaction | | ⏳ |
| CR_002 | Clicking your own reaction removes it | CR_001 done | 1. Click the same emoji chip again | Your reaction is removed; chip disappears or its count decreases by one | | ⏳ |
| CR_003 | Counts aggregate across users | Two users can see the same comment | 1. As user 1 react 👍 2. As user 2 (second browser) react 👍 on the same comment | Chip shows 👍 2; each user sees only their own reaction highlighted | | ⏳ |
| CR_004 | Reactions update live for other viewers | Two browser windows on the same comment thread | 1. In window 1 add a reaction 2. Watch window 2 without reloading | The reaction chip appears in window 2 within a couple of seconds | | ⏳ |
| CR_005 | Picker stays inside the viewport | A comment near the bottom/right screen edge | 1. Open the reaction picker on that comment | Picker renders fully visible — not clipped behind panels or cut off by the viewport | | ⏳ |

---

**Total:** 5 test cases · **All status:** ⏳ Pending
29 changes: 29 additions & 0 deletions .claude/test-cases/Epics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Epics — Test Cases

**Location:** Project board toolbar → `...` (More) → Epics · **Last updated:** 2026-06-11

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

---

## Epic Management

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|------------------------------------------|---------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| EP_001 | Create an epic | Project open on its board | 1. Open `...` → Epics 2. Create an epic with a name | Epic appears in the panel list with zero progress; success toast | | ⏳ |
| EP_002 | Rename an epic | EP_001 done | 1. Edit the epic name 2. Save | List shows the new name | | ⏳ |
| EP_003 | Delete an epic keeps its tasks | An epic with assigned tasks | 1. Delete the epic and confirm | Epic disappears; its former tasks remain intact, just without an epic | | ⏳ |

---

## Task Assignment & Progress

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|------------------------------------------|---------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| EP_004 | Assign tasks to an epic | EP_001 done; project has open tasks | 1. Assign two tasks to the epic | Epic shows 2 total tasks; the tasks carry the epic reference | | ⏳ |
| EP_005 | Completing a task updates progress | EP_004 done | 1. Mark one assigned task completed 2. Reopen the Epics panel | Epic shows 1 of 2 done | | ⏳ |
| EP_006 | Moving a task between epics fixes counts | Two epics; a task assigned to epic 1 | 1. Reassign the task to epic 2 | Epic 1 total decreases by one and epic 2 increases by one | | ⏳ |

---

**Total:** 6 test cases · **All status:** ⏳ Pending
29 changes: 29 additions & 0 deletions .claude/test-cases/GlobalSearch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Global Search (Search All) — Test Cases

**Location:** Project board toolbar → `...` (More) → Search all · **Last updated:** 2026-06-11

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

---

## Searching

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------|--------|
| GS_001 | Results grouped by tasks, projects, comments | A keyword (e.g. "web") exists in a task, a project and a comment | 1. Open `...` → Search all 2. Type the keyword (2+ characters) | Grouped results appear under TASKS, PROJECTS and CHAT; task rows show key, name, status chip | | ⏳ |
| GS_002 | No search under 2 characters | Search modal open | 1. Type a single character | No results render until the query is at least 2 characters | | ⏳ |
| GS_003 | Matching is case-insensitive substring | A task named in lowercase exists | 1. Search an UPPERCASE fragment of its name | The task is found | | ⏳ |
| GS_004 | No-results state | Search modal open | 1. Search a nonsense string like "zzqqxx" | A clear "no results" message; no stale results from the previous query | | ⏳ |

---

## Opening Results

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------|--------|
| GS_005 | Clicking a task result opens the task | GS_001 done | 1. Click a task row in the results | Modal closes; app routes to the task detail (works for folder and non-folder sprints) | | ⏳ |
| GS_006 | Clicking a project result opens its board | GS_001 done | 1. Search a project by name 2. Click the project row | App opens that project's first sprint with the List view tab — no "Page not found" | | ⏳ |

---

**Total:** 6 test cases · **All status:** ⏳ Pending
20 changes: 20 additions & 0 deletions .claude/test-cases/JiraImporter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Jira Importer — Test Cases

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

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

---

## Import Flow

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------|----------------------------------------------------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|---------------|--------|
| JI_001 | Import a valid Jira CSV | A Jira CSV export with 3–5 rows; sprint selected | 1. Open `...` → Import Jira 2. Choose the CSV 3. Start the import | Success message with the created count; new tasks appear on the board with names from Jira summaries | | ⏳ |
| JI_002 | Imported task fields are sensible | JI_001 done | 1. Open one imported task | Name = Jira summary; description carried over; valid status in the chosen sprint — no blank cards | | ⏳ |
| JI_003 | Invalid file shows a readable error | Import modal open | 1. Try an empty CSV 2. Try a non-CSV file renamed to .csv | Readable error toast in both cases; nothing is created; modal stays usable | | ⏳ |
| JI_004 | Malformed rows are skipped, not fatal | A CSV where one row lacks a Summary | 1. Import it | Valid rows import; the bad row is skipped; the import does not abort halfway | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
21 changes: 21 additions & 0 deletions .claude/test-cases/Languages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Languages (Japanese / Korean / Brazilian Portuguese) — Test Cases

**Location:** Settings → My Settings → Language · **Last updated:** 2026-06-11

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

---

## Language Switching

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|-------------------------------------------|-----------------------|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|---------------|--------|
| LG_001 | Switch to Japanese | Logged in | 1. Open Settings → My Settings 2. Select Japanese 3. Save | Success toast; navigation and common labels switch to Japanese immediately, no reload needed | | ⏳ |
| LG_002 | Switch to Korean and Brazilian Portuguese | Logged in | 1. Repeat LG_001 choosing Korean, then Português (Brasil) | Same behavior for both locales | | ⏳ |
| LG_003 | Untranslated strings fall back to English | One new locale active | 1. Browse less common screens (e.g. the `...` menu features, settings) | Untranslated strings show English text — never blank, never a raw key like `Projects.more_features` | | ⏳ |
| LG_004 | Choice persists across sessions | LG_001 done | 1. Log out and back in (or hard-reload) | UI comes back in the chosen language | | ⏳ |
| LG_005 | Switch back to English | A new locale active | 1. Set the language back to English | Everything returns to English cleanly | | ⏳ |

---

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