Decision: retain DB column, mark DEPRECATED. Existing rows still return
feat_task_id via API. New accept flow (BE-PR-007) does not write it.
Clients should migrate to generated_tasks / Task.source_proposal_id.
- Backend: model/schema/router deprecation comments updated
- Backend: added docs/BE-PR-010-feat-task-id-deprecation.md
- Tests: updated to work with Essential-based accept flow
- Tests: all 21 proposal tests pass
- TASKLIST: BE-PR-010 marked complete
- New router: /projects/{project_id}/proposals/{proposal_id}/essentials
- GET (list) - list all essentials under a proposal
- POST (create) - create essential with auto-generated EssentialCode
- GET /{id} - get single essential by id or essential_code
- PATCH /{id} - update essential (title, type, description)
- DELETE /{id} - delete essential
- All mutations restricted to open proposals only
- Permission: creator, project owner, or global admin
- Registered essentials router in main.py
- Updated GET /proposals/{id} to return ProposalDetailResponse with
embedded essentials list
- Activity logging on all CRUD operations
- Add comprehensive docstring to Proposal model documenting all relationships
- Add column comments for all fields (title, description, status, project_id, etc.)
- Mark feat_task_id as DEPRECATED (will be replaced by Essential→task mapping in BE-PR-008)
- Add proposal_code hybrid property as preferred alias for DB column propose_code
- Update ProposalResponse schema to include proposal_code alongside propose_code
- Update serializer to emit both proposal_code and propose_code for backward compat
- No DB migration needed — only Python-level changes
- Backend: new canonical Proposal model + /proposals router
- Backward-compat shims for old Propose imports and /proposes API
- Tests updated to use /proposals, legacy compat tests added
- Impact checklist: docs/BE-PR-001-rename-impact.md
- TASKLIST.md: BE-PR-001 marked complete
All 21 proposal tests pass.
- Mark MVP scope as finalized
- Define release order across submodules
- Document rollback/degradation strategy
- Close CLI contribution note item
- Close repo-config-safe note
- Update submodule refs for Monitor and Plugin
- Mark plugin↔monitor bridge TODO items as complete in cross-project todo
- Sections 4.6, 5.1-5.4, Phase A/E bridge items all done
- HarborForge.Cli: meeting, support, propose, monitor command groups
- HarborForge.OpenclawPlugin: renamed to harbor-forge, removed sidecar, --install-cli
- HarborForge.Monitor: MONITOR_PORT env var and config field