Repository navigation
feat(scheduler-v3): add owner-controlled drafts and immutable PDF publications - #57
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
spandreou
marked this pull request as ready for review
September 9, 2026 13:01
|
Strix is installed on this repository, but we couldn't run this PR security review because this workspace's trial has ended. Add a card to resume code reviews here. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Behavior
Adds an opt-in Scheduler V3 workspace using headcount coverage, normal/substitute-only employee profiles, standard-shift rotation, weekly target hours, editable drafts and non-blocking business warnings. Owners can save incomplete drafts and explicitly acknowledge warnings when publishing.
Publications reserve unique versions, store the PDF before exposure, and atomically create an immutable snapshot with the latest-period index and synchronized public week/month views. Draft revision checks prevent stale saves. Firestore/Storage retain active OWNER authorization and exclude Platform Admin tenant access; published snapshots/PDFs cannot be overwritten or deleted.
The global
VITE_ENABLE_SCHEDULER_V3flag defaults off and also guards repository operations. Tenant version 3 is separately required. V2 engine/adapter are unchanged, and legacy schedule operations exclude V3 draft rows. No production activation, migration, deployment or merge is included.Verification
Review limitations
Draft transactions are bounded to 450 operations. Failed publication attempts may leave unused reservations or orphan immutable PDFs. Time arithmetic uses civil-clock intervals, without DST elapsed-time conversion. Migration is an offline preview with explicit unconverted V2 semantics. No standalone TypeScript typecheck or complete independent final security-scan certification is claimed. Keep this PR draft pending human review and separate production-activation approval.
Full evidence and rollback:
docs/SCHEDULER_V3_CONTINUATION_REPORT.mdanddocs/SCHEDULER_CONTRACT_V3.md.PR #57 corrective pass — 9 September 2026
Commit:
1050b38fbee280a5e4be130c35a5765df3609b64(previous reviewed headece9f8f13fed17d5e0b393511c9ce799b98242b1).Verification: V3 304+17+8 cases; V2 2,118 assertions; combined browser 5/5 including mobile/desktop and no uncaught page errors; real V3 emulator including malformed-data denials and immutable v1-to-v4 restoration; all requested scheduler, repository, authorization, export, hardening, integrity and build checks pass. Focused independent review found no remaining Critical/Important issue after two extra regressions were fixed.
No new dependencies, lockfile/Actions/secret changes, production data mutation, migration, activation, deploy or merge. No standalone TypeScript compiler was installed; existing build-size and emulator teardown warnings remain documented. Historical restoration fails closed if current profile template references are absent from the historical config. Keep this PR Draft for human review.