Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

### Required

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L226)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L228)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L232)][[4](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L233)][[5](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L234)][[6](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L243)][[7](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L257)][[8](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L258)][[9](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L269)][[10](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L383)][[11](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L384)][[12](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L385)][[13](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L142)][[14](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L143)][[15](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L144)][[16](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L145)][[17](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L531)][[18](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L532)][[19](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L533)][[20](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L547)][[21](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L548)][[22](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L552)][[23](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L555)][[24](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L558)][[25](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L561)][[26](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L566)][[27](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L567)][[28](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L568)][[29](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L574)][[30](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/consolidated-mcq-modal.ts#L598)] and more :You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.


[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/sidebar/note-item-renderer.ts#L61)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/settings-tab.ts#L1160)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/settings-tab.ts#L1185)]:Using `innerHTML`, `outerHTML` or similar API's is a security risk. Instead, use the DOM API or the Obsidian helper functions: <https://docs.obsidian.md/Plugins/User+interface/HTML+elements>

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L123)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L551)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L560)][[4](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L569)][[5](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L583)][[6](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L599)]:We recommend against providing a default hotkey when possible. The reason being that it's easy to pick a hotkey that a user already has configured and they could get confused when that key doesn't do what they expect. Also, it's hard choosing a safe default hotkey that's available for all operating systems.

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L261)]:Do not detach leaves with your custom view in `onunload`, this is an antipattern, see: <https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines#Don't+detach+leaves+in+%60onunload%60>

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/mcq-modal.ts#L289)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/services/mcq-service.ts#L160)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/services/mcq-service.ts#L162)][[4](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/review-modal.ts#L174)][[5](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L253)][[6](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L256)][[7](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L277)][[8](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L283)][[9](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L289)][[10](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L295)][[11](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L301)][[12](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L312)][[13](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L320)][[14](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L336)][[15](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L341)][[16](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L379)][[17](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L384)][[18](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L394)][[19](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L405)][[20](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L414)][[21](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L417)][[22](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L421)][[23](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L438)][[24](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/utils/link-analyzer.ts#L541)][[25](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L66)][[26](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L109)][[27](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L184)][[28](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L275)][[29](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L281)][[30](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/controllers/review-controller-core.ts#L282)] and more :You should consider limiting the number of `console.log`s in your code, to not pollute the dev console.



---

### Optional

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/sidebar-view.ts#L70)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/sidebar-view.ts#L71)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/sidebar-view.ts#L78)][[4](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/sidebar-view.ts#L283)][[5](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/ui/settings-tab.ts#L908)][[6](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/services/pomodoro-service.ts#L226)][[7](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L126)][[8](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L127)][[9](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L367)][[10](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/main.ts#L368)]:Casting to `any` should be avoided as much as possible.

[[1](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/api/openrouter-service.ts#L150-L171)][[2](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/api/openai-service.ts#L92-L105)][[3](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/api/claude-service.ts#L92-L107)][[4](https://github.com/dralkh/spaceforge/blob/79d83e4eb4c6a31dd8d9078101919e50d3de3ee1/api/together-service.ts#L92-L106)]:Obsidian provides the [`requestUrl`](https://docs.obsidian.md/Reference/TypeScript+API/requestUrl) method, it will make sure that network requests work on every plattform.



---



Do <b>NOT</b> open a new PR for re-validation.
Once you have pushed all of the required changes to your repo, the bot will update the labels on this PR within 6 hours.
If you think some of the required changes are incorrect, please comment with `/skip` and the reason why you think the results are incorrect.