Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1517 commits
Select commit Hold shift + click to select a range
9708d7a
Update condition for Teams notification workflow
maplefoxgit Aug 22, 2026
564ff79
Merge pull request #37 from ontrack-features-t2-2026/push/notificatio…
Clupai8o0 Aug 22, 2026
355447a
bugfix(notif): member requirement before secret access
maplefoxgit Aug 22, 2026
67d9f92
feat(notifications): queue notification emails with Sidekiq
maplefoxgit Aug 22, 2026
f174304
Update notification tests for queued email delivery
maplefoxgit Aug 22, 2026
7d7ebf2
Stabilize extension notification test setup
maplefoxgit Aug 22, 2026
82b78e3
docs(notifications): document push opt-in and permission flow
maplefoxgit Aug 22, 2026
bf2c361
feat(notifications): email when tutorial enrolment changes
maplefoxgit Aug 22, 2026
174a597
chore(deps-dev): bump ruby-lsp from 0.23.13 to 0.26.9
dependabot[bot] Aug 22, 2026
b96fa8b
docs(notifications): compare web push platform support
maplefoxgit Aug 22, 2026
8987fc7
feat(notifications): email on portfolio submission receipt
maplefoxgit Aug 22, 2026
6c3f982
docs(notifications): review v2 push lock-screen risk
maplefoxgit Aug 22, 2026
ef99b7d
test(notifications): record desktop browser verification
maplefoxgit Aug 22, 2026
229ed3b
feat(notifications): email tutor on task submission
maplefoxgit Aug 22, 2026
0da3e26
test(notifications): record Android phone verification
maplefoxgit Aug 22, 2026
5d166f9
feat(notifications): propose discussion request email
maplefoxgit Aug 22, 2026
aa7924c
docs(notifications): add v2 event email copy
maplefoxgit Aug 22, 2026
48b40c6
docs(notifications): define v2 lock-screen wording
maplefoxgit Aug 22, 2026
39cc855
fix(notifications): use safe v2 lock-screen copy
maplefoxgit Aug 22, 2026
9c0bc98
perf(tests): reduce API suite feedback time
maplefoxgit Aug 22, 2026
ca944ca
test: restore overwritten API test coverage
maplefoxgit Aug 22, 2026
59f2171
docs: add API test performance review evidence
maplefoxgit Aug 22, 2026
0418032
chore(evidence): remove evidence from pr
maplefoxgit Aug 23, 2026
f0e7f3f
docs(notifications): correct contribution guide
maplefoxgit Aug 23, 2026
b1e3860
docs(ppi): sync data-source map with merged implementation
maplefoxgit Aug 23, 2026
871e66e
test(ppi): prevent peer details leaking to logs
maplefoxgit Aug 23, 2026
e86de76
Merge pull request #44 from ontrack-features-t2-2026/dependabot/bundl…
maplefoxgit Aug 23, 2026
40d676c
Merge pull request #40 from ontrack-features-t2-2026/docs/ppi-data-so…
maplefoxgit Aug 23, 2026
cb1b031
Merge pull request #35 from ontrack-features-t2-2026/docs/contributin…
maplefoxgit Aug 23, 2026
357e741
chore(docs): remove committed evidence
maplefoxgit Aug 23, 2026
9092ae4
style(ppi): fix sample data lint
maplefoxgit Aug 23, 2026
f3142f4
test(notifications): distinguish group and tutorial events
maplefoxgit Aug 23, 2026
87acffe
test(tasks): make submission setup deterministic
maplefoxgit Aug 23, 2026
457e1bf
test(notifications): cover preference gating
maplefoxgit Aug 23, 2026
89faa69
merge: update notifications integration with 11.0.x
maplefoxgit Aug 23, 2026
e0ef9d9
merge: include API PR #47 tutorial change email
maplefoxgit Aug 23, 2026
7bd317c
merge: include API PR #48 task submission email
maplefoxgit Aug 23, 2026
39afaf1
merge: include API PR #49 portfolio receipt email
maplefoxgit Aug 23, 2026
b8ba9fd
merge: include API PR #50 discussion request email
maplefoxgit Aug 23, 2026
2076bcf
merge: include API PR #51 safe lock-screen push copy
maplefoxgit Aug 23, 2026
a0e518e
merge: include API PR #43 queued notification email delivery
maplefoxgit Aug 23, 2026
99c2fe9
merge: include API PR #52 notification preference coverage
maplefoxgit Aug 23, 2026
88d66da
Merge remote-tracking branch 'origin/feature/peer-progress-indicator'…
maplefoxgit Aug 23, 2026
223007c
Merge remote-tracking branch 'origin/pr/46' into integration/peer-pro…
maplefoxgit Aug 23, 2026
aa80e16
merge: include EN-D06 reviewed event email copy
maplefoxgit Aug 23, 2026
feb9865
merge: include MN-D02 push opt-in flow
maplefoxgit Aug 23, 2026
2bac9e3
merge: include MN-D04 web push support matrix
maplefoxgit Aug 23, 2026
24bf138
merge: include MN-D05 lock-screen wording
maplefoxgit Aug 23, 2026
500beaa
merge: include MN-Q01 desktop verification record
maplefoxgit Aug 23, 2026
74a2b97
merge: include MN-Q02 Android verification record
maplefoxgit Aug 23, 2026
9c2ca60
test: stabilise notification CI setup
maplefoxgit Aug 23, 2026
06b9f7d
test: stabilise extension notification setup
maplefoxgit Aug 23, 2026
954d697
test(notifications): reconcile async mail and safe push copy
maplefoxgit Aug 23, 2026
cb03edb
docs(notifications): normalize email audit formatting
maplefoxgit Aug 23, 2026
d716e8d
feat(notifications): configure email sender
maplefoxgit Aug 23, 2026
fcbe7cc
Merge remote-tracking branch 'origin/feature/cross-unit' into integra…
maplefoxgit Aug 23, 2026
5e082f1
Merge branch 'integration/peer-progress-indicator-live-20260823' into…
maplefoxgit Aug 23, 2026
0edc4c9
Merge branch 'integration/notifications-all-20260823' into integratio…
maplefoxgit Aug 23, 2026
2aa7c0e
Merge remote-tracking branch 'origin/pr/47' into integration/11.0.x-a…
maplefoxgit Aug 23, 2026
ce80010
Merge remote-tracking branch 'origin/pr/49' into integration/11.0.x-a…
maplefoxgit Aug 23, 2026
99ae0e9
Merge remote-tracking branch 'origin/pr/41' into integration/11.0.x-a…
maplefoxgit Aug 23, 2026
4174074
Merge remote-tracking branch 'origin/pr/42' into integration/11.0.x-a…
maplefoxgit Aug 23, 2026
40d084b
Merge remote-tracking branch 'origin/pr/45' into integration/11.0.x-a…
maplefoxgit Aug 23, 2026
e2fa450
fix(cpd): filter cross-unit task definitions
maplefoxgit Aug 23, 2026
3bca8d8
Merge branch 'fix/api-cross-unit-task-definition-privacy-20260824' in…
maplefoxgit Aug 23, 2026
32d52d9
fix(ppi): prevent singleton progress buckets
maplefoxgit Aug 23, 2026
915d575
Merge branch 'fix/api-ppi-quantisation-privacy-20260824' into integra…
maplefoxgit Aug 23, 2026
18f8f05
fix(notifications): link group membership emails
maplefoxgit Aug 23, 2026
7bba07b
Merge branch 'fix/api-group-membership-email-link-20260824' into inte…
maplefoxgit Aug 23, 2026
35bf85c
fix(ci): reference deployment metadata outputs
maplefoxgit Aug 23, 2026
fc0c6c7
Merge branch 'fix/api-deployment-workflow-meta-id-20260824' into inte…
maplefoxgit Aug 23, 2026
0c4734a
test(notifications): isolate deadlines and authentication
maplefoxgit Aug 23, 2026
3af8e78
Merge branch 'fix/api-notification-test-isolation-20260824' into inte…
maplefoxgit Aug 23, 2026
717e206
test: isolate uploads and update settings contract
maplefoxgit Aug 23, 2026
2f945c7
merge: fix full-suite integration regressions
maplefoxgit Aug 23, 2026
b5326e3
fix: harden production worker startup
maplefoxgit Aug 23, 2026
4c6b373
fix(ci): reference deployment metadata outputs
maplefoxgit Aug 23, 2026
88002d4
test(notifications): authenticate push settings requests
maplefoxgit Aug 23, 2026
2f3df4f
test(notifications): isolate task submission deadlines
maplefoxgit Aug 23, 2026
44464ba
test(tasks): isolate upload conversion fixtures
maplefoxgit Aug 23, 2026
8b2250b
fix(cpd): filter cross-unit task definitions
maplefoxgit Aug 23, 2026
b017f61
fix(notifications): link group membership emails
maplefoxgit Aug 23, 2026
7066d7b
fix: add dependency-aware readiness checks
maplefoxgit Aug 23, 2026
87bbcb0
style(ppi): fix sample data lint
maplefoxgit Aug 23, 2026
be30dff
fix(ppi): prevent singleton progress buckets
maplefoxgit Aug 23, 2026
22979b0
fix(ppi): make sample cohorts demo ready
maplefoxgit Aug 23, 2026
1fbbd75
Merge pull request #55 from ontrack-features-t2-2026/fix/ppi-quantisa…
maplefoxgit Aug 23, 2026
5448add
Merge pull request #58 from ontrack-features-t2-2026/test/notificatio…
maplefoxgit Aug 23, 2026
e748be1
style: satisfy RuboCop symbol proc rule
maplefoxgit Aug 23, 2026
a150f49
feat(cpd): add personalized task recommendations
maplefoxgit Aug 23, 2026
7f91298
Merge pull request #64 from ontrack-features-t2-2026/fix/ppi-demo-rea…
maplefoxgit Aug 23, 2026
0ed036d
fix(cpd): replace placeholder recommendation ranking
maplefoxgit Aug 23, 2026
ca20f6b
fix(cpd): align recommendation payload contracts
maplefoxgit Aug 23, 2026
cdbb208
fix(notifications): cover task availability paths
maplefoxgit Aug 23, 2026
5278ddd
Merge pull request #61 from ontrack-features-t2-2026/fix/cpd-recommen…
maplefoxgit Aug 23, 2026
08d0f3c
fix(notifications): cover task availability paths
maplefoxgit Aug 23, 2026
f8410ed
test(notifications): drain queued replacement email
maplefoxgit Aug 24, 2026
69234fa
feat(cpd): add personalized task recommendations
maplefoxgit Aug 23, 2026
7adfe9e
fix(cpd): replace placeholder recommendation ranking
maplefoxgit Aug 23, 2026
ca30930
fix(cpd): align recommendation payload contracts
maplefoxgit Aug 23, 2026
055e719
chore(demo): add guarded all-features data scenario
maplefoxgit Aug 24, 2026
0b7bdd5
Merge pull request #66 from ontrack-features-t2-2026/demo/all-feature…
maplefoxgit Aug 24, 2026
1d9915d
fix(auth): keep callback credentials out of URLs and logs
maplefoxgit Aug 24, 2026
457cfe2
fix(production): harden all-features release runtime
maplefoxgit Aug 24, 2026
1a50a06
merge: add production readiness and worker hardening
maplefoxgit Aug 24, 2026
f2f73a6
merge: harden authentication callback credential handling
maplefoxgit Aug 24, 2026
d54f288
fix(release): verify merged production runtime
maplefoxgit Aug 24, 2026
a360f7c
fix(release): close production handover blockers
maplefoxgit Aug 24, 2026
b4e35ab
fix(security): patch release runtime dependencies
maplefoxgit Aug 24, 2026
d894e7d
ci: enforce OnTrack review policy
maplefoxgit Aug 24, 2026
d285c13
feat(peer-progress): add peer-only lifecycle breakdown
maplefoxgit Aug 24, 2026
189d5bb
test(peer-progress): assert complete lifecycle vectors
maplefoxgit Aug 24, 2026
e28abb7
test(tasks): make submission setup deterministic
maplefoxgit Aug 23, 2026
47a6783
fix(review-policy): report the status on the pull-request head
Clupai8o0 Aug 24, 2026
1fd6e2c
Merge pull request #68 from ontrack-features-t2-2026/chore/ontrack-re…
Clupai8o0 Aug 24, 2026
10361b0
chore(deps): bump websocket-driver from 0.7.7 to 0.8.2
dependabot[bot] Aug 24, 2026
2def4cd
chore(integration): sync 11.0.x review policy
maplefoxgit Aug 24, 2026
9910874
ci: scan 11.0.x with CodeQL
maplefoxgit Aug 24, 2026
3f6bd0e
ci: name the 11.0.x CodeQL check
maplefoxgit Aug 24, 2026
53b5026
fix(security): bound Sentry tunnel payloads
maplefoxgit Aug 24, 2026
5f7ccc7
ci: stabilize API validation check names
maplefoxgit Aug 24, 2026
dd0011f
Merge pull request #69 from ontrack-features-t2-2026/dependabot/bundl…
maplefoxgit Aug 24, 2026
87177a1
test: isolate Sentry tunnel request history
maplefoxgit Aug 24, 2026
861afed
fix(ci): correct the team membership gate and restore the card
Clupai8o0 Aug 25, 2026
e0fb1bb
fix(notifications): queue the email after the transaction commits
Clupai8o0 Aug 25, 2026
589a889
Merge pull request #47 from ontrack-features-t2-2026/email/tutorial-c…
maplefoxgit Aug 25, 2026
1a512ae
Merge pull request #45 from ontrack-features-t2-2026/perf/faster-api-…
maplefoxgit Aug 25, 2026
7b460cc
Merge pull request #51 from ontrack-features-t2-2026/security/v2-push…
maplefoxgit Aug 25, 2026
cc46e03
Merge pull request #48 from ontrack-features-t2-2026/email/submitted-…
maplefoxgit Aug 25, 2026
0a8e3b8
fix(ci): support stateless GitHub App tokens
maplefoxgit Aug 25, 2026
342f63e
ci: make required validation always report
maplefoxgit Aug 25, 2026
e5d8c58
Merge 11.0.x into integration/11.0.x-all-features-20260824
maplefoxgit Aug 25, 2026
c93d263
test: FILE-S01 Add Upload Authorisation and Abuse Security Tests
Thirus224849242 Aug 25, 2026
8138bba
fix: skip encrypted Word doc test when gotenberg config unavailable i…
Thirus224849242 Aug 26, 2026
2fa6276
Merge pull request #71 from ontrack-features-t2-2026/ci/require-pr-va…
Clupai8o0 Aug 26, 2026
b7b9e7d
Merge pull request #42 from ontrack-features-t2-2026/bugfix/harsh-not…
maplefoxgit Aug 26, 2026
c6197c9
fix: address PR review feedback - improve DOCX, cleanup, and concurre…
Thirus224849242 Aug 26, 2026
2f5b8fe
Merge pull request #53 from ontrack-features-t2-2026/test/task-upload…
maplefoxgit Aug 26, 2026
69119ef
Merge pull request #54 from ontrack-features-t2-2026/fix/ci-deploymen…
maplefoxgit Aug 26, 2026
1b2c627
Merge pull request #70 from ontrack-features-t2-2026/fix/github-app-t…
maplefoxgit Aug 26, 2026
2a67e30
Merge pull request #67 from ontrack-features-t2-2026/fix/auth-callbac…
maplefoxgit Aug 26, 2026
18f9f0d
Merge pull request #59 from ontrack-features-t2-2026/fix/cpd-task-def…
maplefoxgit Aug 26, 2026
ed61f42
ci: add weekly integration PR workflow
maplefoxgit Aug 26, 2026
8481e1b
Merge remote-tracking branch 'origin/feature/notifications' into emai…
maplefoxgit Aug 26, 2026
493a594
test: load minitest mocks for sharded runs
maplefoxgit Aug 26, 2026
f7e31f3
test(notifications): reconcile async mail expectations
maplefoxgit Aug 26, 2026
8a45f1e
test: expect privacy-safe notification push copy
maplefoxgit Aug 26, 2026
c149fb4
test: expect tutorial privacy-safe push copy
maplefoxgit Aug 26, 2026
c4fac56
Merge remote-tracking branch 'origin/11.0.x' into integration/ontrack…
maplefoxgit Aug 26, 2026
ee627e9
Merge remote-tracking branch 'origin/feature/cross-unit' into integra…
maplefoxgit Aug 26, 2026
75d7337
Merge remote-tracking branch 'origin/feature/notifications' into inte…
maplefoxgit Aug 26, 2026
c2b6378
Merge pull request #63 from ontrack-features-t2-2026/fix/api-producti…
Clupai8o0 Aug 26, 2026
0725797
Merge pull request #62 from ontrack-features-t2-2026/style/ppi-sample…
Clupai8o0 Aug 26, 2026
b0ac35f
Merge pull request #46 from ontrack-features-t2-2026/security/ppi-aut…
Clupai8o0 Aug 26, 2026
a8cd1b1
Merge pull request #74 from ontrack-features-t2-2026/fix/notification…
Clupai8o0 Aug 27, 2026
0baa319
ci: skip integration PR when a matrix branch is gone
Clupai8o0 Aug 27, 2026
132db9b
Merge branch '11.0.x' into automation/weekly-integration-prs-20260826
Clupai8o0 Aug 27, 2026
529c670
fix(notifications): listen on the mailers queue in production
Clupai8o0 Aug 27, 2026
7cbe8e0
test(notifications): keep the anonymous VAPID key assertion
Clupai8o0 Aug 27, 2026
5a47083
Merge branch 'feature/notifications' into email/portfolio-received
Clupai8o0 Aug 27, 2026
0ee6b69
test(notifications): assert the lock-screen body for portfolio_received
Clupai8o0 Aug 27, 2026
bf3803a
Merge branch 'feature/notifications' into email/sidekiq-worker
Clupai8o0 Aug 27, 2026
a311df9
Merge branch 'feature/notifications' into email/discussion-booked
Clupai8o0 Aug 27, 2026
95afb77
Merge branch 'feature/notifications' into email/test-preference-gating
Clupai8o0 Aug 27, 2026
a6b9b16
Merge branch 'feature/notifications' into fix/notifications-group-ema…
Clupai8o0 Aug 27, 2026
34fdd28
Merge branch 'feature/notifications' into test/notifications-isolatio…
Clupai8o0 Aug 27, 2026
c111e06
Merge branch 'feature/notifications' into email/task-availability-paths
Clupai8o0 Aug 27, 2026
edd353d
refactor(notifications): make the discussion notify helper private
Clupai8o0 Aug 27, 2026
f9c0d61
merge: resolve 11.0.x into integration/11.0.x-all-features-20260824
Clupai8o0 Aug 27, 2026
adfe1a6
Merge pull request #73 from ontrack-features-t2-2026/automation/weekl…
Clupai8o0 Aug 27, 2026
dfaba26
Merge pull request #49 from ontrack-features-t2-2026/email/portfolio-…
Clupai8o0 Aug 27, 2026
62cdd16
Merge pull request #43 from ontrack-features-t2-2026/email/sidekiq-wo…
Clupai8o0 Aug 27, 2026
2eded19
Merge pull request #57 from ontrack-features-t2-2026/test/notificatio…
Clupai8o0 Aug 27, 2026
8298a38
merge: resolve feature/notifications into email/task-availability-paths
Clupai8o0 Aug 27, 2026
468901d
Merge pull request #56 from ontrack-features-t2-2026/fix/notification…
Clupai8o0 Aug 27, 2026
512a9c6
merge: rewrite preference-gating tests for the queued email path
Clupai8o0 Aug 27, 2026
32bad0f
ci: keep the SHA pins while taking the new CodeQL trigger
Clupai8o0 Aug 27, 2026
cbc5de7
Merge pull request #50 from ontrack-features-t2-2026/email/discussion…
Clupai8o0 Aug 27, 2026
b7eaa5e
Merge feature/notifications into email/task-availability-paths
Clupai8o0 Aug 27, 2026
96ae771
test(notifications): drain the mail queue in the portfolio and discus…
Clupai8o0 Aug 27, 2026
fc97680
fix(ci): restore required RuboCop context
maplefoxgit Aug 27, 2026
eded7da
Merge pull request #60 from ontrack-features-t2-2026/integration/11.0…
maplefoxgit Aug 27, 2026
4cabc55
Merge remote-tracking branch 'origin/feature/notifications' into emai…
maplefoxgit Aug 27, 2026
81016ac
test(notifications): drain queued email assertions
maplefoxgit Aug 27, 2026
f0f0e8f
Merge pull request #65 from ontrack-features-t2-2026/email/task-avail…
Clupai8o0 Aug 27, 2026
023cdfa
merge: keep one drain in submit_portfolio
Clupai8o0 Aug 27, 2026
b578424
fix(auth): enforce shared authentication rate limits
maplefoxgit Aug 27, 2026
cb03f80
Merge pull request #76 from ontrack-features-t2-2026/fix/auth-rate-li…
maplefoxgit Aug 27, 2026
ad70886
Merge pull request #52 from ontrack-features-t2-2026/email/test-prefe…
maplefoxgit Aug 27, 2026
d16545a
Merge remote-tracking branch 'origin/11.0.x' into closure/api-ontrack…
maplefoxgit Aug 27, 2026
ef32dbb
Merge remote-tracking branch 'origin/feature/peer-progress-indicator'…
maplefoxgit Aug 27, 2026
6c8ebff
test(security): assert upload validation paths
maplefoxgit Aug 27, 2026
4cbad44
Merge remote-tracking branch 'origin/feature/notifications' into clos…
maplefoxgit Aug 27, 2026
d920892
fix(cpd): bound previous-unit project queries
maplefoxgit Aug 27, 2026
f25945d
ci: expand deterministic API test matrix
maplefoxgit Aug 27, 2026
c95f553
test(notifications): reconcile protected push settings
maplefoxgit Aug 27, 2026
6c74dbb
test(notifications): isolate portfolio receipt lookup
maplefoxgit Aug 27, 2026
6b45974
Merge pull request #77 from ontrack-features-t2-2026/closure/api-ontr…
Clupai8o0 Aug 27, 2026
4945d15
fix(tasks): grant the resubmission extension once per round of feedback
Clupai8o0 Aug 26, 2026
cdc22ec
fix(tasks): read deadline days in the campus time zone
Clupai8o0 Aug 27, 2026
17538ce
docs(notifications): correct push service host comments for Edge
Clupai8o0 Aug 27, 2026
42d4eba
test(security): tighten FILE-S01 evidence
maplefoxgit Aug 27, 2026
7b57fc9
fix(auth): match a federated assertion only on what it asserts
Clupai8o0 Aug 27, 2026
938cf42
fix(tasks): require assessment permission to set a task grade
Clupai8o0 Aug 27, 2026
fbb927a
fix(overseer): scope assessment results to the authorised project
Clupai8o0 Aug 27, 2026
6dbeae7
fix(submission): refuse student uploads to a finalised task
Clupai8o0 Aug 27, 2026
8e06487
fix(lti): bind an enrolment token to its subject and make it single use
Clupai8o0 Aug 27, 2026
3fc2664
fix(communications): keep sending when one recipient's delivery fails
Clupai8o0 Aug 27, 2026
a224fb7
fix(scorm): authorise the success status wherever it is written
Clupai8o0 Aug 27, 2026
b762a2f
fix(tasks): return 403 when a status transition is refused
Clupai8o0 Aug 27, 2026
b977a54
fix(notifications): dedicate the push queue
maplefoxgit Aug 27, 2026
1003df4
Merge pull request #95 from ontrack-features-t2-2026/fix/notification…
maplefoxgit Aug 27, 2026
062e095
Merge pull request #80 from ontrack-features-t2-2026/fix/api-pr72-fin…
maplefoxgit Aug 27, 2026
b5c015e
Merge remote-tracking branch 'origin/11.0.x' into refresh/api-pr79-20…
maplefoxgit Aug 27, 2026
d4f00ef
docs(notifications): scope the observed Edge endpoint
maplefoxgit Aug 27, 2026
ea265b1
Merge pull request #79 from ontrack-features-t2-2026/docs/edge-wns-ho…
maplefoxgit Aug 27, 2026
723b233
ci: reduce API test shard runtime
maplefoxgit Aug 27, 2026
c085538
Merge pull request #96 from ontrack-features-t2-2026/perf/api-ci-runt…
maplefoxgit Aug 27, 2026
c10f50a
fix(auth): reject mismatched login ids on email fallback
maplefoxgit Aug 28, 2026
5ee5889
Merge pull request #84 from ontrack-features-t2-2026/fix/grade-requir…
maplefoxgit Aug 28, 2026
466a1cb
Merge pull request #85 from ontrack-features-t2-2026/fix/scope-overse…
maplefoxgit Aug 28, 2026
11b8d90
Merge pull request #90 from ontrack-features-t2-2026/fix/close-submis…
maplefoxgit Aug 28, 2026
c2709d1
Merge pull request #94 from ontrack-features-t2-2026/fix/resubmission…
maplefoxgit Aug 28, 2026
d70bfb8
fix(lti): clean consumed tokens up with users
maplefoxgit Aug 28, 2026
f735d15
fix(communications): report failed deliveries accurately in CSV
maplefoxgit Aug 28, 2026
46b7503
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
761a8b3
fix(notifications): route comment alerts to feedback
maplefoxgit Aug 28, 2026
8cdccc7
fix(notifications): open all feedback alerts in feedback
maplefoxgit Aug 28, 2026
95819a3
Merge pull request #86 from ontrack-features-t2-2026/fix/scorm-succes…
maplefoxgit Aug 28, 2026
6210ab7
Merge pull request #89 from ontrack-features-t2-2026/fix/refused-tran…
maplefoxgit Aug 28, 2026
1cb9579
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
47cc3b2
fix(calendar): preserve weekdays in imported task weeks
maplefoxgit Aug 28, 2026
44c6315
Merge pull request #88 from ontrack-features-t2-2026/fix/federated-lo…
maplefoxgit Aug 28, 2026
fedac4f
Merge pull request #87 from ontrack-features-t2-2026/fix/lti-bind-tok…
maplefoxgit Aug 28, 2026
35cb052
Merge pull request #91 from ontrack-features-t2-2026/fix/communicatio…
maplefoxgit Aug 28, 2026
81c04b3
Merge branch '11.0.x' into fix/feedback-notification-route-20260828
Clupai8o0 Aug 28, 2026
d924862
Merge pull request #99 from ontrack-features-t2-2026/fix/feedback-not…
Clupai8o0 Aug 28, 2026
b22b08a
fix(security): resolve high-severity CodeQL alerts
maplefoxgit Aug 28, 2026
b177cf1
ci: run logical test shards within runner capacity
maplefoxgit Aug 28, 2026
6f9308a
ci: overlap test image builds
maplefoxgit Aug 28, 2026
49f3d39
ci: fingerprint shard profiles and streamline aggregation
maplefoxgit Aug 28, 2026
0596f84
ci: balance hosted workers with measured shard timings
maplefoxgit Aug 28, 2026
e333bdc
ci: profile runnable timings and trim warm setup
maplefoxgit Aug 28, 2026
a8b7c23
ci: balance logical shards with hosted test timings
maplefoxgit Aug 28, 2026
19df415
Merge pull request #103 from ontrack-features-t2-2026/fix/codeql-and-…
maplefoxgit Aug 29, 2026
5a020a8
ci: rebalance task model test shards (#100)
maplefoxgit Aug 30, 2026
02ac545
docs(notifications): record Android push verification (#102)
maplefoxgit Aug 30, 2026
55a2956
fix(mail): use configured production sender (#104)
maplefoxgit Aug 30, 2026
04b2c8f
fix(auth): renew refresh tokens before expiry (#101)
maplefoxgit Aug 30, 2026
c83d367
fix(tasks): return 403 instead of 500 for unauthorized submission access
jmirchh75 Aug 30, 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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .ci-setup/pdfGen/crontab → .ci-setup/crontab
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ BASH_ENV=/container.env
PATH=/tmp/texlive/bin/x86_64-linux:/tmp/texlive/bin/aarch64-linux:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bundle/bin

10,15,20,25,30,35,40,45,50,55 * * * * /doubtfire/lib/shell/generate_pdfs.sh
0 5 * * 1,3,5 /doubtfire/lib/shell/check_plagiarism.sh
0,10,20,30,40,50 * * * * /doubtfire/lib/shell/send_overseer_notifications.sh
0 5 * * * /doubtfire/lib/shell/check_plagiarism.sh
0 8 * * * /doubtfire/lib/shell/portfolio_autogen_check.sh
0 7 * * 1 /doubtfire/lib/shell/send_weekly_emails.sh
0 1 * * * /doubtfire/lib/shell/sync_enrolments.sh
File renamed without changes.
26 changes: 0 additions & 26 deletions .ci-setup/pdfGen/entry_point.sh

This file was deleted.

57 changes: 0 additions & 57 deletions .ci-setup/texlive-install.sh

This file was deleted.

11 changes: 0 additions & 11 deletions .ci-setup/texlive.profile

This file was deleted.

23 changes: 23 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,30 @@
Dockerfile
.git
.github
.docker
.bundle
.env
.env.*
!.env.example
.npmrc
.gem/credentials
.ssh
.aws
.config/gcloud
build
coverage
dist
log
node_modules
tmp
vendor
student-work
config/master.key
config/credentials
config/credentials.yml.enc
**/*.key
**/*.pem
**/*.p12
**/*.pfx
**/*.jks
**/*.keystore
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Optional values for development through the legacy root docker-compose.yml.
# Copy to .env. Database authentication remains the safe default. Never commit
# an institution credential or reuse a production registration.
DF_AUTH_METHOD=database
DF_AAF_ISSUER_URL=
DF_AAF_AUDIENCE_URL=http://localhost:3000
DF_AAF_CALLBACK_URL=http://localhost:3000/api/auth/jwt
DF_AAF_IDENTITY_PROVIDER_URL=
DF_AAF_UNIQUE_URL=
DF_AAF_AUTH_SIGNOUT_URL=
DF_SECRET_KEY_AAF=
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Jan 11 2022: Repository wide format (support zeitwerk mode loader)
f4050e826af83166e45b0b4f2af14179b40305dd
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto eol=lf

# Exclude test files from GitHub language statistics
test_files/** linguist-vendored
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# The App key is available only to the default-branch policy job. Keep every
# workflow and the evaluator itself under lead review.
/.github/workflows/ @ontrack-features-t2-2026/ontrack-leads
/.github/review-policy/ @ontrack-features-t2-2026/ontrack-leads
/.github/CODEOWNERS @ontrack-features-t2-2026/ontrack-leads
51 changes: 51 additions & 0 deletions .github/review-policy/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# OnTrack pull-request review policy

The required status context `ontrack/review-policy` passes when the current pull
request head has either:

- one approval from a current `ontrack-leads` member; or
- two approvals from distinct current `ontrack-contributors` members.

Approvals from the pull-request author, bots, stale commits, dismissed reviews,
or reviewers whose latest actionable review requests changes do not count.

## Security model

`ontrack-review-policy-signal.yml` is unprivileged and never checks out pull-request
code. A completed signal wakes `ontrack-review-policy.yml` through `workflow_run`.
The evaluator workflow checks out only this directory from the protected default
branch, then mints a short-lived token for the organization-owned GitHub App.

The App is installed only on the three OnTrack Doubtfire repositories and has:

- organization Members: read;
- repository Metadata: read (mandatory);
- repository Pull requests: read; and
- repository Commit statuses: write.

The App has no contents, workflow, administration, merge, or webhook permission.
Its private key is held in `ONTRACK_REVIEW_APP_PRIVATE_KEY` in the
`ontrack-review-policy` environment, which only permits the protected `11.0.x`
branch. Its numeric App ID is held in `ONTRACK_REVIEW_APP_ID`.

The evaluator reports on the pull-request head commit. GitHub gates on the test merge
commit whenever that commit carries a status and only falls back to the head when it
carries none, so reporting on the test merge commit would move the merge gate onto a
commit that carries none of this repository's other checks. The head is also stable,
where the test merge commit is recomputed every time the base branch moves.
A five-minute reconciliation covers team membership and base-branch changes that
do not emit a pull-request review event. Unchanged results are not republished,
which avoids GitHub's per-commit status limit.

## Ruleset integration

Keep the native one-overall-approval rule, stale-review dismissal, and conversation
resolution. Require `ontrack/review-policy` with the OnTrack Review Policy App as
its expected source. Remove the native `ontrack-leads` required-reviewer entry only
after the App status has been observed and made required; otherwise GitHub combines
the native team rules with AND semantics.

Changes to any workflow, the evaluator, or CODEOWNERS should continue to require
one `ontrack-leads` approval through a path-specific native reviewer rule. This is
necessary because any default-branch workflow could otherwise reference the App's
environment secret.
Loading