Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1477 commits
Select commit Hold shift + click to select a range
e1edf48
Merge pull request #23 from ontrack-features-t2-2026/push/pwa-offline
maplefoxgit Aug 15, 2026
d286b89
test(notifications): assert every event produces a valid push payload
KimSreng1 Aug 15, 2026
3220368
Merge pull request #25 from ontrack-features-t2-2026/push/test-event-…
maplefoxgit Aug 15, 2026
54e2599
fix(deps): apply Rails 8.0.x security patches
maplefoxgit Aug 16, 2026
57922d7
fix(deps): update Rack and Rack Session
maplefoxgit Aug 16, 2026
0c9420c
fix(deps): update OAuth2 JWT and Ruby SAML
maplefoxgit Aug 16, 2026
3cdfb6f
fix(deps): update Faraday and Addressable
maplefoxgit Aug 16, 2026
efc8fa4
fix(deps): upgrade Puma to 7.2.1
maplefoxgit Aug 17, 2026
12318df
Merge pull request #26 from ontrack-features-t2-2026/security/api-rai…
Clupai8o0 Aug 17, 2026
560d665
feat(notifications): add due soon reminder job
Clupai8o0 Aug 17, 2026
b11f3cc
feat(notifications): collapse repeat push notifications with a tag
Clupai8o0 Aug 17, 2026
e89f03e
Merge pull request #27 from ontrack-features-t2-2026/security/api-rac…
Clupai8o0 Aug 17, 2026
83eec1d
Merge pull request #28 from ontrack-features-t2-2026/security/api-aut…
Clupai8o0 Aug 17, 2026
997e92a
Merge pull request #29 from ontrack-features-t2-2026/security/api-htt…
Clupai8o0 Aug 17, 2026
490792a
Merge pull request #30 from ontrack-features-t2-2026/security/api-pum…
Clupai8o0 Aug 17, 2026
ae25c31
Merge pull request #31 from ontrack-features-t2-2026/email/due-soon
maplefoxgit Aug 17, 2026
395238a
Merge pull request #32 from ontrack-features-t2-2026/push/collapse-no…
maplefoxgit Aug 17, 2026
97fdddb
docs(notifications): add recipient amplification risk review
ronitkhokharr Aug 17, 2026
9a6b914
fix(api): secure settings api against unauthenticated access
anaghwadhwa123 Jul 29, 2026
814ceeb
fix(ppi): quantise student progress percentages
maplefoxgit Aug 18, 2026
f99c2c3
fix(ppi): invalidate snapshots after grade changes
maplefoxgit Aug 18, 2026
a8c0b18
fix(db): sync peer progress schema and collation
maplefoxgit Aug 18, 2026
457ea76
style(ppi): satisfy rubocop
maplefoxgit Aug 18, 2026
62ee298
fix(ppi): finalise privacy state safeguards
maplefoxgit Aug 18, 2026
cc17f4e
fix(settings): separate public bootstrap from protected flags
maplefoxgit Aug 18, 2026
b7a6a29
docs(notifications): correct amplification risk analysis
maplefoxgit Aug 19, 2026
d3be7c7
Merge pull request #34 from ontrack-features-t2-2026/email/recipient-…
maplefoxgit Aug 19, 2026
7c7b16a
feat: add rake task to seed PPI sample dashboard test data
gauravmyana2002 Aug 19, 2026
a03e17b
docs: publish PPI backend data-source and field-ownership map
gauravmyana2002 Aug 19, 2026
91d4db9
fix(ppi): stop the quantised percentage revealing the submitted count
Clupai8o0 Aug 20, 2026
1e011b1
Merge pull request #16 from ontrack-features-t2-2026/ppi/student-prog…
Clupai8o0 Aug 20, 2026
55ec78a
Merge pull request #33 from ontrack-features-t2-2026/fix/settings-api…
Clupai8o0 Aug 20, 2026
21117c4
docs(notifications): lead the mail section with Mailpit
Clupai8o0 Aug 20, 2026
da96312
feat(push): add safe notification click contract
maplefoxgit Aug 20, 2026
6936679
chore(ci): notify Teams when a pull request opens
maplefoxgit Aug 20, 2026
b8920d8
fix(push): accept bounded notification task routes
maplefoxgit Aug 21, 2026
e506e40
Refactor Teams notification to use Adaptive Card format
maplefoxgit Aug 21, 2026
50cd1e7
Merge pull request #39 from ontrack-features-t2-2026/feature/ppi-samp…
David-Tenni Aug 21, 2026
e9e8dd7
Merge pull request #38 from ontrack-features-t2-2026/fix/notify-teams-pr
maplefoxgit Aug 21, 2026
9331712
fix(tests):Flaky test used stale info
maplefoxgit Aug 22, 2026
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
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
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
28d400f
fix: clean up overseer work directory on failure
gnahk66 Aug 30, 2026
c044d02
style: fix overseer job formatting
gnahk66 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