Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1561 commits
Select commit Hold shift + click to select a range
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
42f7373
fix(api): mailer text leak, image bloat, dependabot path and an api-r…
Clupai8o0 Aug 30, 2026
f7aabcd
chore(ci): lint workflow YAML with actionlint
Clupai8o0 Aug 30, 2026
16f6f0b
ci(codeql): cancel superseded CodeQL runs on the same ref
Clupai8o0 Aug 30, 2026
ce6d79a
fix(submission): write the done zip atomically so a failed write keep…
Clupai8o0 Aug 30, 2026
d56f432
fix(similarity): a deleted task no longer aborts the whole plagiarism…
Clupai8o0 Aug 30, 2026
ebbdfe2
fix(lti): return 404 when a unit has no D2L mapping
Clupai8o0 Aug 30, 2026
c83d367
fix(tasks): return 403 instead of 500 for unauthorized submission access
jmirchh75 Aug 30, 2026
d9552e8
fix(comments): return 4xx for a bad comment attachment, not 500
Clupai8o0 Aug 30, 2026
727852d
fix(comments): let group members open a shared comment attachment
Clupai8o0 Aug 31, 2026
2cfe140
fix(ci): verify actionlint release checksum
maplefoxgit Aug 31, 2026
8cdae0f
Merge pull request #124 from ontrack-features-t2-2026/fix/pr-file-01
maplefoxgit Aug 31, 2026
6167869
Merge pull request #122 from ontrack-features-t2-2026/fix/submission-…
maplefoxgit Aug 31, 2026
01fd301
Merge pull request #120 from ontrack-features-t2-2026/fix/d2l-mapping…
maplefoxgit Aug 31, 2026
78ac690
Merge pull request #118 from ontrack-features-t2-2026/fix/dom-21
maplefoxgit Aug 31, 2026
3fff999
Merge pull request #115 from ontrack-features-t2-2026/fix/pr-slr-01
maplefoxgit Aug 31, 2026
7ff9176
Merge pull request #114 from ontrack-features-t2-2026/ci/tci-06-codeq…
maplefoxgit Aug 31, 2026
f0aad99
Merge pull request #111 from ontrack-features-t2-2026/fix/api-audit-8
maplefoxgit Aug 31, 2026
c319ed7
fix(discussions): scope attachment status handling
maplefoxgit Aug 31, 2026
7643d38
Merge pull request #112 from ontrack-features-t2-2026/chore/tci-07
maplefoxgit Aug 31, 2026
58513be
feat(units): let a convenor trigger a plagiarism rescan on demand
Clupai8o0 Aug 30, 2026
74afd31
fix(similarity): isolate JPlag work directory cleanup
maplefoxgit Aug 31, 2026
66f4448
fix(tasks): make discussed:false unmark a task instead of marking it
Clupai8o0 Aug 30, 2026
181215d
fix(domain): "Mark comment as unread" always returns 500 - delete_all
Clupai8o0 Aug 30, 2026
23765e6
fix(tasks): clear all discussed markers
maplefoxgit Aug 31, 2026
01f5e72
fix(comments): scope unread lookup to group submission
maplefoxgit Aug 31, 2026
447e56b
fix(similarity): harden JPlag workspace execution
maplefoxgit Aug 31, 2026
38e6bc3
feat(users): persist and timestamp the theme preference
Clupai8o0 Aug 30, 2026
0ea0c91
fix(users): keep theme preference account-private
maplefoxgit Aug 31, 2026
bdda1b9
fix(units): reject duplicate similarity scans cleanly
maplefoxgit Sep 1, 2026
3e16b04
fix(push): add notification icon and badge
shalitha99 Sep 1, 2026
a5eaa02
Merge pull request #110 from ontrack-features-t2-2026/theme/user-them…
maplefoxgit Sep 2, 2026
b353749
Merge pull request #113 from ontrack-features-t2-2026/feat/int-05
maplefoxgit Sep 2, 2026
8580479
Merge pull request #116 from ontrack-features-t2-2026/fix/dom-07
maplefoxgit Sep 2, 2026
4696313
Merge pull request #121 from ontrack-features-t2-2026/fix/comment-att…
maplefoxgit Sep 2, 2026
e1b0856
Merge pull request #117 from ontrack-features-t2-2026/fix/dom-03
maplefoxgit Sep 2, 2026
79ce5bd
fix(uploads): the portfolio upload endpoint enforces no size limit at…
anaghwadhwa123 Sep 2, 2026
b20ed98
feat: expose privacy-safe dashboard feedback state
Tyler2811 Sep 2, 2026
5605a96
docs(config): read import lead time from correctly spelled env var
jmirchh75 Sep 2, 2026
9949cbd
fix(uploads): return 4xx for invalid chat attachments
Tyler2811 Sep 4, 2026
801f93b
Merge pull request #133 from ontrack-features-t2-2026/feature/cpd-fb0…
Tyler2811 Sep 5, 2026
865542e
Merge pull request #134 from ontrack-features-t2-2026/fix/pr-file-02
Tyler2811 Sep 5, 2026
66f1dff
Merge pull request #132 from ontrack-features-t2-2026/docs/dx-a06
maplefoxgit Sep 5, 2026
9d50755
Merge pull request #129 from ontrack-features-t2-2026/fix/pr-file-05
maplefoxgit Sep 5, 2026
f898751
Merge pull request #130 from ontrack-features-t2-2026/fix/pr-mn-14
maplefoxgit Sep 5, 2026
2262c2c
fix: guard feedback chip generation and scope new outcomes
gnahk66 Sep 7, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .ci-setup/pdfGen/crontab → .ci-setup/crontab
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ 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 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.

25 changes: 25 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,32 @@
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
test
test_files
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
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Set update schedule for GitHub Actions and Ruby dependencies

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
- package-ecosystem: "bundler"
directory: "/"
schedule:
# Check for updates to Ruby gems every week
interval: "weekly"
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