Share one finance remark per approval instance across Web and mobile. Require the explicit permission and the current tenant user's own done task for every read and write; keep general instance responses free of financial remarks.
Add idempotent MySQL migration without automatic role grants, cross-end editors, isolated backend and frontend tests, and rollout requirements. Refs #7; platform validation and target database migration remain pending.
Allow filtering OA history by initiator department including descendants, while keeping the existing all-history permission scope.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support server-side filters (app name, initiator, apply time, instance status)
with Fresh Mint filter blocks and 300ms debounced instant search.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add approval instance drafts with menu badges, dual-track user/role read model and role bound names, form-designer outline docs, and bare-metal test deploy scripts. Ignore local test-server credential file.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unify effective roles via post-role bindings, remove dedicated OA role UI, and update OA assignee resolution plus related SQL/docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align with DingTalk: returned/rejected/cancelled are terminal; progress
shows return on the approver task only; done list includes returned;
deprecate same-instance resubmit and source-instance linking.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align with DingTalk semantics: reject ends the instance, return keeps it for initiator edits, and revoke-and-resubmit creates a linked new instance. Progress timeline projects rounds via oa_instance_event.
Co-authored-by: Cursor <cursoragent@cursor.com>