Both content.js and courses.js independently monkey-patch history.pushState (and courses.js also patches replaceState). They chain correctly because manifest.json controls load order (content.js first, then courses.js), but this is fragile — if load order changes or a third script patches pushState, behaviour could break silently.
Consider consolidating into a shared SPA navigation helper, or at least documenting the dependency on load order.
Discovered during PR review of feat/course-dropdown.
Both
content.jsandcourses.jsindependently monkey-patchhistory.pushState(andcourses.jsalso patchesreplaceState). They chain correctly because manifest.json controls load order (content.jsfirst, thencourses.js), but this is fragile — if load order changes or a third script patches pushState, behaviour could break silently.Consider consolidating into a shared SPA navigation helper, or at least documenting the dependency on load order.
Discovered during PR review of
feat/course-dropdown.