feat: add subreddit themes gallery #6

Merged
nimmo merged 1 commit from subreddit-themes-gallery into main 2026-07-26 00:10:57 +01:00
Owner
## Summary\n- add persisted, many-to-many subreddit themes\n- manage themes directly from subreddit cards\n- add a Themes browser that opens combined gallery results\n\n## Validation\n- npm test\n- node --test tests/db-migrations.test.js
feat: add subreddit themes gallery
All checks were successful
Build and Push Docker Image / prepare_tags (push) Successful in 1s
Build and Push Docker Image / lint (push) Successful in 3s
Build and Push Docker Image / notify-start (push) Successful in 1s
AI pull-request review / review (pull_request) Successful in 3m35s
Build and Push Docker Image / build-amd (push) Successful in 4m11s
Build and Push Docker Image / build-nvidia (push) Successful in 3m8s
Build and Push Docker Image / build-cpu (push) Successful in 1m11s
Build and Push Docker Image / notify-failure (push) Has been skipped
e7a5f42177
Author
Owner

Automated code review

Reviewed commit: e7a5f421772adec974cc45c2d4c15122fac48272

Verdict: Requires further work

Resolve the blocking or important findings and investigate failed deterministic checks before merging.

Overall assessment

The PR introduces a persisted many-to-many relationship between subreddits and user-defined themes, adding database tables, API routes, frontend views, and navigation integration. Changes adhere to architectural rules: migrations are appended-only, all new API routes include required @openapi JSDoc blocks, parameterized SQL queries prevent injection, and the vanilla JS SPA remains syntactically valid.

Blocking findings

None.

Important findings

None.

Suggestions

None.

Tests and validation

  • unit-tests: failure
    • Raw output: `

    /usr/bin/node-22[298687]: std::unique_ptr node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start() at ../../src/node_platform.cc:104

    Assertion failed: (0) == (uv_thread_create(t.get(), start_thread, this))

----- Native stack trace -----

1: 0x7f1565027767 node::Assert(node::AssertionInfo const&) [/lib64/libnode.so.127]
2: 0x7f15650be3a2 node::WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int, node::PlatformDebugLogLevel) [/lib64/libnode.so.127]
3: 0x7f15650d1781 node::NodePlatform::NodePlatform(int, v8::TracingController*, v8::PageAllocator*) [/lib64/libnode.so.127]
4: 0x7f1564ff016b [/lib64/libnode.so.127]
5: 0x7f1564ff153c node::Start(int, char**) [/lib64/libnode.so.127]
6: 0x7f1564c0a681 [/lib64/libc.so.6]
7: 0x7f1564c0a798 __libc_start_main [/lib64/libc.so.6]
8: 0x5575dea8e035 _start [/usr/bin/node-22]
`

Questions

None.

Review limitations

  • Cannot verify runtime behavior or full integration test suite execution due to lack of environment access.

Diff coverage

  • db.js: reviewed — included in a context-limited batch
  • public/app.js: reviewed — included in a context-limited batch
  • public/index.html: reviewed — included in a context-limited batch
  • public/style.css: reviewed — included in a context-limited batch
  • public/views/subreddits.js: reviewed — included in a context-limited batch
  • public/views/themes.js: reviewed — included in a context-limited batch
  • routes/themes.js: reviewed — included in a context-limited batch
  • server.js: reviewed — included in a context-limited batch
  • tests/db-migrations.test.js: reviewed — included in a context-limited batch
Review metadata
  • Reviewer: forgejo-ai-review v1
  • Model: qwen3.6:35b-a3b-q8_0
  • Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md
  • Commits considered: 1
  • Previous automated review: none found
  • Findings: 0
<!-- forgejo-ai-review:v1 --> ## Automated code review Reviewed commit: `e7a5f421772adec974cc45c2d4c15122fac48272` ## Verdict: Requires further work Resolve the blocking or important findings and investigate failed deterministic checks before merging. ### Overall assessment The PR introduces a persisted many-to-many relationship between subreddits and user-defined themes, adding database tables, API routes, frontend views, and navigation integration. Changes adhere to architectural rules: migrations are appended-only, all new API routes include required @openapi JSDoc blocks, parameterized SQL queries prevent injection, and the vanilla JS SPA remains syntactically valid. ### Blocking findings None. ### Important findings None. ### Suggestions None. ### Tests and validation - unit-tests: **failure** - Raw output: ` # /usr/bin/node-22[298687]: std::unique_ptr<long unsigned int> node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start() at ../../src/node_platform.cc:104 # Assertion failed: (0) == (uv_thread_create(t.get(), start_thread, this)) ----- Native stack trace ----- 1: 0x7f1565027767 node::Assert(node::AssertionInfo const&) [/lib64/libnode.so.127] 2: 0x7f15650be3a2 node::WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int, node::PlatformDebugLogLevel) [/lib64/libnode.so.127] 3: 0x7f15650d1781 node::NodePlatform::NodePlatform(int, v8::TracingController*, v8::PageAllocator*) [/lib64/libnode.so.127] 4: 0x7f1564ff016b [/lib64/libnode.so.127] 5: 0x7f1564ff153c node::Start(int, char**) [/lib64/libnode.so.127] 6: 0x7f1564c0a681 [/lib64/libc.so.6] 7: 0x7f1564c0a798 __libc_start_main [/lib64/libc.so.6] 8: 0x5575dea8e035 _start [/usr/bin/node-22] ` ### Questions None. ### Review limitations - Cannot verify runtime behavior or full integration test suite execution due to lack of environment access. ### Diff coverage - `db.js`: **reviewed** — included in a context-limited batch - `public/app.js`: **reviewed** — included in a context-limited batch - `public/index.html`: **reviewed** — included in a context-limited batch - `public/style.css`: **reviewed** — included in a context-limited batch - `public/views/subreddits.js`: **reviewed** — included in a context-limited batch - `public/views/themes.js`: **reviewed** — included in a context-limited batch - `routes/themes.js`: **reviewed** — included in a context-limited batch - `server.js`: **reviewed** — included in a context-limited batch - `tests/db-migrations.test.js`: **reviewed** — included in a context-limited batch <details><summary>Review metadata</summary> - Reviewer: forgejo-ai-review v1 - Model: qwen3.6:35b-a3b-q8_0 - Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md - Commits considered: 1 - Previous automated review: none found - Findings: 0 </details>
Author
Owner

Automated review reported no blocking, important, or suggestion-level code findings. Its only failure was Node's worker-thread creation assertion in the review environment; I reran the full suite locally in the project Node 22 environment and it passes, including the new theme migration coverage. No code changes are warranted. This PR is ready to merge.

Automated review reported no blocking, important, or suggestion-level code findings. Its only failure was Node's worker-thread creation assertion in the review environment; I reran the full suite locally in the project Node 22 environment and it passes, including the new theme migration coverage. No code changes are warranted. This PR is ready to merge.
nimmo merged commit eadf6e8800 into main 2026-07-26 00:10:57 +01:00
nimmo deleted branch subreddit-themes-gallery 2026-07-26 00:10:58 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/redview!6
No description provided.