Commit Graph

76 Commits

Author SHA1 Message Date
zhi
589b1cc8de feat(P5.1-P5.6): task state-machine validation — enforce legal transitions in transition/batch/update endpoints 2026-03-17 08:02:37 +00:00
zhi
7d8c448cb8 feat(P3.1): milestone action endpoints — freeze/start/close + auto-complete hook
- New milestone_actions router with POST freeze/start/close endpoints
- freeze: validates exactly 1 release maintenance task exists
- start: validates all milestone/task dependencies completed, records started_at
- close: allows from open/freeze/undergoing with reason
- try_auto_complete_milestone helper: auto-completes milestone when sole release task finishes
- Wired auto-complete into task transition and update endpoints
- Added freeze enforcement: no new feature story tasks after freeze
- Added started_at to milestone serializer
- All actions write activity logs
2026-03-17 04:03:05 +00:00
zhi
75ccbcb362 feat: propose CRUD router + accept/reject/reopen actions (P6.1-P6.4) 2026-03-17 03:01:49 +00:00
zhi
2bea75e843 feat: add Propose model/schema + DB enum migration scripts
- New Propose model (app/models/propose.py) with status enum (open/accepted/rejected)
- New Propose schemas (ProposeCreate/Update/Response) in schemas.py
- MySQL enum migration in main.py for milestone/task status columns
  - milestone: pending→open, deferred→closed, progressing→undergoing
  - task: progressing→undergoing
- Import propose model in startup for create_all
- Add started_at column migration for milestones
2026-03-17 02:04:42 +00:00
zhi
9e22c97ae8 refactor: update milestone/task status enums to new state machine values
Milestone: open/freeze/undergoing/completed/closed (was open/pending/deferred/progressing/closed)
Task: open/pending/undergoing/completed/closed (was open/pending/progressing/closed)

- Add MilestoneStatusEnum to schemas with typed validation
- Add started_at field to Milestone model
- Update all router/CLI references from progressing->undergoing
- Add completed status handling in task transition logic
2026-03-17 00:04:29 +00:00
zhi
9e14df921e feat: add modal-edit permissions for projects milestones and tasks 2026-03-16 18:13:54 +00:00
zhi
f16bdd9725 fix: align task response time field serialization 2026-03-16 16:32:01 +00:00
zhi
214a9b109d refactor: replace issues backend with milestone tasks 2026-03-16 13:22:14 +00:00
61e3349ca4 feat: add role/permission system with tests support
- Add Role model with 17 default permissions
- Add init_wizard to create admin/guest roles on first startup
- Protect admin role from modification/deletion via API
- Fix MilestoneCreate schema (project_id optional)
- Fix delete role to clean up role_permissions first
- Add check_project_role RBAC function
2026-03-15 12:25:59 +00:00
Zhi
fee2320cee fix: handle None project_code and serialize list fields 2026-03-12 23:33:10 +00:00
Zhi
67adcc375e fix: add project_id to MilestoneCreate schema 2026-03-12 23:29:19 +00:00
Zhi
39da27301a fix: generate milestone_code in milestones.py 2026-03-12 23:26:20 +00:00
Zhi
41d92c5e68 fix: properly generate milestone_code and task/support/meeting codes 2026-03-12 23:18:20 +00:00
Zhi
a1a99bb838 feat: add code fields - milestoneCode, taskCode, supportCode, meetingCode 2026-03-12 22:48:04 +00:00
Zhi
5297711c77 refactor: split tasks/supports/meetings into separate tables 2026-03-12 22:26:24 +00:00
Zhi
724be87a04 feat: add tasks/supports/meetings endpoints with project_code paths 2026-03-12 22:09:39 +00:00
Zhi
5a76f61692 fix: remove leftover code in get_issue 2026-03-12 22:01:55 +00:00
Zhi
6fe5e5ddb3 feat: add task fields - task_code, estimated_effort, etc 2026-03-12 21:54:16 +00:00
Zhi
dbcb92a9c3 fix: add POST endpoints for tasks/supports/meatings 2026-03-12 21:32:57 +00:00
Zhi
1b1ca0e0d3 fix: add /milestones/{id}/items and update progress endpoint 2026-03-12 21:29:18 +00:00
Zhi
d76328923c feat: milestone enhancements - new fields, task/support/meeting endpoints, progress 2026-03-12 14:25:51 +00:00
Zhi
7b2ac29f2c fix: cascade delete milestones/issues, clean references 2026-03-12 12:55:14 +00:00
Zhi
50f5e360e4 fix: prevent deleting project owner 2026-03-12 12:47:15 +00:00
Zhi
d1f9129922 fix: import check_permission 2026-03-12 12:42:50 +00:00
Zhi
2e14077668 fix: milestones router use Milestone model correctly 2026-03-12 12:33:41 +00:00
Zhi
4a32ed921a fix: remove project_id from ProjectMemberBase schema 2026-03-12 12:27:38 +00:00
Zhi
dac2de62f6 fix: import Milestone model in milestones router 2026-03-12 12:26:38 +00:00
Zhi
9254723f2c fix: import Role model 2026-03-12 12:19:14 +00:00
Zhi
afd769bc12 fix: create_project auto-add member use role_id 2026-03-12 12:16:39 +00:00
Zhi
818dbf12b9 fix: add member.remove permission check 2026-03-12 12:13:14 +00:00
Zhi
c695ef903f fix: rbac ProjectMember reference, add repo field to Project 2026-03-12 12:04:51 +00:00
Zhi
ace0707394 fix: member/milestone endpoints - role_id column, schema fixes 2026-03-12 12:00:37 +00:00
Zhi
74177915df feat: add configurable role/permission system 2026-03-12 11:41:55 +00:00
Zhi
2f659e1430 feat: add project creation permission (admin only), add milestones API with RBAC 2026-03-12 11:04:04 +00:00
Zhi
1eb90cd61c fix: project create schema - owner_name auto-fill from owner_id, sub/related projects as list 2026-03-12 10:52:46 +00:00
zhi
d5bf47f4fc fix: quote enum values and csv export subtype 2026-03-12 09:37:19 +00:00
zhi
e5775bb9c8 feat: add project code generation + remove issues/milestones from nav 2026-03-12 09:25:26 +00:00
zhi
6b3e42195d feat: add task type hierarchy with subtypes (issue/meeting/support/maintenance/research/review/story/test) 2026-03-11 23:55:52 +00:00
zhi
c81654739c feat: add kimi/minimax usage adapters and update provider docs 2026-03-11 17:05:18 +00:00
zhi
ff4baf6113 feat: support provider usage via configurable JSON credentials 2026-03-11 13:13:07 +00:00
zhi
5b8f84d87d feat: add provider usage adapters for openai and placeholders for others 2026-03-11 13:08:58 +00:00
zhi
9fb13f4906 feat: add RSA public-key handshake support for monitor server websocket 2026-03-11 12:51:54 +00:00
zhi
464bccafd8 feat: add 10m server challenge flow and websocket telemetry channel 2026-03-11 12:41:32 +00:00
zhi
d299428d35 feat: add public monitor API + admin provider/server management scaffold 2026-03-11 11:59:53 +00:00
zhi
95a4702e1e fix: remove user_id query requirement from notifications count/read-all 2026-03-11 10:49:03 +00:00
zhi
7218aabc59 fix: notifications endpoints use current user auth instead of required user_id query
- /notifications and /notifications/count no longer require user_id param
- return both count and unread fields for compatibility
- /notifications/read-all marks current user notifications
- /notifications/{id}/read enforces ownership (or admin)
2026-03-11 10:46:48 +00:00
zhi
7fe0a72549 Merge pull request 'feat: RBAC + activity logging + Docker health check' (#3) from feat/rbac-and-polish into main 2026-03-11 10:43:42 +00:00
zhi
a21026ac09 fix: enforce missing RBAC checks on issue/comment updates and deletes 2026-03-11 10:43:31 +00:00
zhi
c1288b5fa9 feat: wizard config volume integration
- entrypoint.sh: wait for config file before starting uvicorn
- config.py: resolve DB URL from wizard config volume
- init_wizard.py: read config from file instead of HTTP
- Dockerfile: use entrypoint.sh
2026-03-06 13:46:38 +00:00
zhi
4b20444a5e feat: AbstractWizard integration for initialization
- Add init_wizard.py: fetch config from AbstractWizard on startup
- Create admin user if not exists (from wizard config)
- Create default project if configured
- Graceful fallback when wizard is unavailable
2026-03-06 13:15:47 +00:00