Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
271 commits
Select commit Hold shift + click to select a range
7f65b1f
fix: Update all backend require statements to use renamed PascalCase …
shyamvadaliya12 May 11, 2026
eb5d464
Merge code
shyamvadaliya12 May 11, 2026
26401ba
Merge pull request #54 from aliansoftwareteam/fix/naming-conventions-…
shyamvadaliya12 May 11, 2026
de01925
fix(security): reject regex audience in JWT verify (BUG-001 / #55)
shyamvadaliya12 May 11, 2026
d66d95e
fix(security): replace wildcard CORS with env-driven allow-list (BUG-…
shyamvadaliya12 May 11, 2026
85ba51f
fix(security): replace wildcard Socket.io CORS with env allow-list (B…
shyamvadaliya12 May 11, 2026
daa34b7
fix(security): move Socket.io admin UI creds to env, default-off (BUG…
shyamvadaliya12 May 11, 2026
f7cf78b
fix(security): generate password-reset token with crypto.randomBytes …
shyamvadaliya12 May 11, 2026
6c18438
fix(security): remove unauthenticated file-disclosure endpoint (BUG-0…
shyamvadaliya12 May 11, 2026
e7f13e5
fix(stability): respond instead of ReferenceError in createProjectFun…
shyamvadaliya12 May 11, 2026
d4efceb
fix(stability): add missing else in createProjectFun (BUG-010 / #64)
shyamvadaliya12 May 11, 2026
1c8a42d
Merge pull request #102 from aliansoftwareteam/fix/bug-001-jwt-audien…
shyamvadaliya12 May 11, 2026
4fd4313
Merge pull request #103 from aliansoftwareteam/fix/bug-002-cors-allow…
shyamvadaliya12 May 11, 2026
7d84e4d
Merge branch 'staging' into fix/bug-003-socketio-cors
shyamvadaliya12 May 11, 2026
1ff42a1
Merge pull request #104 from aliansoftwareteam/fix/bug-003-socketio-cors
shyamvadaliya12 May 11, 2026
db532e8
Merge branch 'staging' into fix/bug-004-socketio-admin-creds
shyamvadaliya12 May 11, 2026
c75f426
Merge pull request #105 from aliansoftwareteam/fix/bug-004-socketio-a…
shyamvadaliya12 May 11, 2026
4925855
Merge pull request #106 from aliansoftwareteam/fix/bug-005-reset-toke…
shyamvadaliya12 May 11, 2026
ba8a9e3
Merge pull request #108 from aliansoftwareteam/fix/bug-007-remove-che…
shyamvadaliya12 May 11, 2026
d1d924a
Merge pull request #110 from aliansoftwareteam/fix/bug-009-reject-out…
shyamvadaliya12 May 11, 2026
ae17445
Merge pull request #111 from aliansoftwareteam/fix/bug-010-createproj…
shyamvadaliya12 May 11, 2026
7b118ae
fix(security): stop overwriting req.body, allow-list invite keys (BUG…
shyamvadaliya12 May 12, 2026
5db89d2
fix(security): tighten + env-configure auth rate limit (BUG-012 / #66)
shyamvadaliya12 May 12, 2026
58731dd
fix(security): re-validate company membership per request, cached (BU…
shyamvadaliya12 May 12, 2026
fccc1f2
fix(security): tighten verifyEmail against loose-equality bypass (BUG…
shyamvadaliya12 May 12, 2026
0f515e0
fix(stability): stop calling reject after resolve in HandleTask (BUG-…
shyamvadaliya12 May 12, 2026
666682a
fix(stability): replace forEach(async) fire-and-forget pattern (BUG-0…
shyamvadaliya12 May 12, 2026
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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
162 changes: 162 additions & 0 deletions .claude/AI-TIME-ESTIMATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# AI Task Time Estimation — How It Works

This doc explains how AlianHub estimates the time needed to finish a task,
in plain language.

---

## The Big Idea

When a task is created, we ask an AI model: **"If an AI coding agent
(Claude Code) did this task end-to-end, how many minutes would it take?"**

The answer is saved on the task as `totalEstimatedTime` (in minutes).

That's it. No rules. No formulas. Just a smart guess based on what the
task actually says.

---

## What the AI Looks At

The AI gets these pieces of info about the task:

1. **Task title** — the headline.
2. **Task type** — bug, story, task, etc.
3. **Priority** — LOW, MEDIUM, HIGH, URGENT.
4. **Parent or subtask?** — subtasks are usually smaller.
5. **Description** — the most important input. This is what the AI
reads to understand the actual work.

If the description is empty, the AI is told so and will be more
conservative (since it only has the title to go on).

---

## The 5 Things the AI Thinks About

The prompt walks the AI through these **in order**. Each one pushes
the estimate up or down.

### 1. What is the deliverable?

What kind of work is this? Different shapes have different floors:

- **Copy or config change** → small.
- **Bug fix** → medium, depends on how deep the bug is.
- **New feature** → medium to big.
- **Refactor** → big, because it touches many files.
- **Migration** → big, because data is at risk.
- **Integration** → big, because external systems bring surprises.

### 2. How much surface area is involved?

The AI counts the things the description mentions or implies:

- How many files?
- How many modules?
- Any APIs, schemas, or UI screens?
- Any third-party services?
- Are tests needed?

More things = more time.

### 3. How clear is the description?

This is a big one.

- **Clear description** → faster. The AI agent knows exactly what to do.
- **Vague description** → slower. The AI agent has to figure things
out as it goes, and that takes real time.

### 4. How will the work be verified?

Some work is "done" when tests pass. Other work has to be seen and
clicked.

- **Internal refactor** → run tests, done. Fast.
- **Anything touching UI, data, auth, or payments** → run the app,
click around, watch what happens, fix issues. Slower.

### 5. Iteration loops

In real work, the first try is rarely the last. The agent writes
code, runs it, sees what breaks, fixes it, runs again. The prompt
tells the AI to bake in 1–2 iteration rounds for anything that isn't
trivial.

---

## What the Estimate Does NOT Include

The number is the AI agent's **focused work time**. It does NOT count:

- Human review or approval time.
- Waiting for CI, builds, or deploys.
- Meetings, handoffs, status updates.
- External system queues.

So an estimate of 60 minutes means *the agent works for 60 minutes* —
not that the task is done in 60 minutes of calendar time on a real team.

---

## Safety Bounds

We never trust the AI's number blindly.

- **Minimum: 5 minutes.** Even the smallest task has some overhead.
- **Maximum: 10080 minutes (7 days).** If a task would genuinely take
longer, it should be split into smaller tasks.

If the AI returns something outside these bounds (like 0 or 9999999),
we clamp it back inside. If the AI returns total garbage we can't
parse, the task just stays without an estimate — no broken data ever
gets saved.

---

## The Single Biggest Driver

**The description content drives the number more than anything else.**

- The title and priority give the AI a starting feel.
- The description tells the AI the actual scope.

Two tasks both called "Fix login bug" can land at 30 minutes or 8
hours depending on what their descriptions say. The prompt is built
to make sure the AI actually reads the description before answering,
and to discourage lazy round-number guesses like 60 / 120 / 240.

---

## How It Runs in the App

- After a task is created, we fire the estimator in the background.
- It does NOT block the create API — the response is returned first.
- When the estimate comes back (usually a few seconds), we update
the task and send a Socket.io event so connected screens refresh
the value automatically.
- If no AI provider is configured in `.env`, the estimator quietly
does nothing and task creation works exactly like before.

---

## Where the Pieces Live

| What | File |
|---|---|
| The prompt the AI reads | `Modules/AIProjectGenerator/prompts/project-plan/task-time-estimate.md` |
| The estimator code | `Modules/EstimatedTime/aiTaskEstimator.js` |
| Single-task hook | `Modules/Tasks/helpers/taskMongo/create.js` |
| AI Project Generator bulk hook | `Modules/AIProjectGenerator/orchestrator.js` |
| DB field | `tasks.totalEstimatedTime` (Number, in minutes) |

---

## In One Sentence

> The AI reads the task description, judges how much real work the
> description describes (size, clarity, verification needs, iteration),
> and returns a minute estimate — which we clamp to safe bounds and
> save on the task.
Loading
Loading