nodebb-plugin-unread-category-priority 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/library.js CHANGED
@@ -23,9 +23,11 @@ async function loadSettings() {
23
23
  plugin.init = async function (params) {
24
24
  const { router } = params;
25
25
 
26
- routeHelpers.setupAdminPageRoute(router, '/admin/plugins/unread-category-priority', [], (req, res) => {
26
+ routeHelpers.setupAdminPageRoute(router, '/admin/plugins/unread-category-priority', [], async (req, res) => {
27
+ const settings = await meta.settings.get(SETTINGS_HASH);
27
28
  res.render('admin/plugins/unread-category-priority', {
28
29
  title: 'Unread Category Priority',
30
+ priorityCids: (settings && settings.priorityCids) || '',
29
31
  });
30
32
  });
31
33
 
@@ -41,7 +43,9 @@ plugin.addAdminNavigation = async function (header) {
41
43
  return header;
42
44
  };
43
45
 
44
- // Move tids in a priority category to the front, keeping recency order within each group.
46
+ // Bump tids whose category is selected to the top, leaving everything else as-is.
47
+ // This is a stable partition: both the bumped block and the rest keep NodeBB's
48
+ // original recency order — categories are never clustered or re-sorted among themselves.
45
49
  function reorder(tids, cidByTid) {
46
50
  if (!Array.isArray(tids) || !tids.length) {
47
51
  return tids;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-unread-category-priority",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Boosts topics from a chosen category to the top of the Unread list",
5
5
  "main": "library.js",
6
6
  "keywords": [
@@ -4,8 +4,8 @@ define('admin/plugins/unread-category-priority', ['settings', 'alerts'], functio
4
4
  const ACP = {};
5
5
 
6
6
  ACP.init = function () {
7
- settings.load('unread-category-priority', $('.unread-category-priority-settings'));
8
-
7
+ // The current value is rendered server-side into the input, so there is no
8
+ // async settings.load() here — it would briefly blank the field on page load.
9
9
  $('#save').on('click', function () {
10
10
  settings.save('unread-category-priority', $('.unread-category-priority-settings'), function () {
11
11
  alerts.alert({
@@ -9,10 +9,11 @@
9
9
  <form role="form" class="unread-category-priority-settings">
10
10
  <div class="mb-3">
11
11
  <label class="form-label" for="priorityCids">Priority category IDs</label>
12
- <input type="text" id="priorityCids" name="priorityCids" class="form-control" placeholder="e.g. 5 or 5,3,8" />
12
+ <input type="text" id="priorityCids" name="priorityCids" class="form-control" placeholder="e.g. 5 or 5,3,8" value="{priorityCids}" />
13
13
  <p class="form-text">
14
14
  Comma-separated category IDs. Unread topics in these categories are pinned to the
15
- top of the Unread list. Recency order is preserved within each group.
15
+ top of the Unread list; everything else stays in its normal order, and the bumped
16
+ topics keep their normal recency order.
16
17
  Leave empty to disable — the plugin does nothing until at least one category is set.
17
18
  </p>
18
19
  </div>
@@ -1,7 +0,0 @@
1
- {
2
- "filePath": "/Users/shlomo/.claude/plugins/cache/a5c-ai/babysitter/4.0.157/skills/babysit/SKILL.md",
3
- "compressedContent": "description: Orchestrate via @babysitter. Use this skill when asked to babysit a run, orchestrate a process or whenever it is called explicitly. (babysit, babysitter, orchestrate, orchestrate a run, workflow, etc. allowed-tools: Read, Grep, Write, Task, Bash, Edit, Grep, Glob, WebFetch, WebSearch, Search, AskUserQuestion, TodoWrite, TodoRead, Skill, BashOutput, KillShell, MultiEdit, LS a5c/runs/<runId>/` through iterative execution. SDK_VERSION=$(node -e \"try{console. readFileSync('${CLAUDE_PLUGIN_ROOT}/versions. sdkVersion||'latest')}catch{console. sudo npm i -g @a5c-ai/babysitter-sdk@$SDK_VERSION **Alternatively, use the CLI alias:** `CLI=\"npx -y @a5c-ai/babysitter-sdk@$SDK_VERSION\"` make sure you have jq installed and available in the path. babysitter instructions:babysit-skill --harness claude-code --interactive For non-interactive mode (running with `-p` flag or no AskUserQuestion tool): babysitter instructions:babysit-skill --harness claude-code --no-interactive Follow the instructions returned by the command above to orchestrate the run.",
4
- "originalTokens": 405,
5
- "compressedTokens": 263,
6
- "compressedAt": "2026-06-04T14:24:19.264Z"
7
- }
@@ -1,28 +0,0 @@
1
- [INFO] 2026-06-04T14:28:40.603Z handleHookRunStop started
2
- [INFO] 2026-06-04T14:28:40.606Z Hook input received
3
- [INFO] 2026-06-04T14:28:40.606Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Session ID: 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c
4
- [INFO] 2026-06-04T14:28:40.606Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved pluginRoot: /Users/shlomo/.claude/plugins/cache/a5c-ai/babysitter/4.0.157
5
- [INFO] 2026-06-04T14:28:40.606Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved stateDir: /Users/shlomo/.a5c/state
6
- [INFO] 2026-06-04T14:28:40.606Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Checking session file at: /Users/shlomo/.a5c/state/3a7a1b56-d654-45b6-8bd4-bd9e1504d32c.md
7
- [INFO] 2026-06-04T14:28:40.608Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] No run associated with session — allowing exit
8
- [INFO] 2026-06-04T14:30:22.442Z handleHookRunStop started
9
- [INFO] 2026-06-04T14:30:22.445Z Hook input received
10
- [INFO] 2026-06-04T14:30:22.446Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Session ID: 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c
11
- [INFO] 2026-06-04T14:30:22.446Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved pluginRoot: /Users/shlomo/.claude/plugins/cache/a5c-ai/babysitter/4.0.157
12
- [INFO] 2026-06-04T14:30:22.446Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved stateDir: /Users/shlomo/.a5c/state
13
- [INFO] 2026-06-04T14:30:22.446Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Checking session file at: /Users/shlomo/.a5c/state/3a7a1b56-d654-45b6-8bd4-bd9e1504d32c.md
14
- [INFO] 2026-06-04T14:30:22.446Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] No active loop found for session 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c — allowing exit
15
- [INFO] 2026-06-04T14:31:25.162Z handleHookRunStop started
16
- [INFO] 2026-06-04T14:31:25.165Z Hook input received
17
- [INFO] 2026-06-04T14:31:25.165Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Session ID: 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c
18
- [INFO] 2026-06-04T14:31:25.166Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved pluginRoot: /Users/shlomo/.claude/plugins/cache/a5c-ai/babysitter/4.0.157
19
- [INFO] 2026-06-04T14:31:25.166Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved stateDir: /Users/shlomo/.a5c/state
20
- [INFO] 2026-06-04T14:31:25.166Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Checking session file at: /Users/shlomo/.a5c/state/3a7a1b56-d654-45b6-8bd4-bd9e1504d32c.md
21
- [INFO] 2026-06-04T14:31:25.166Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] No active loop found for session 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c — allowing exit
22
- [INFO] 2026-06-04T14:31:37.374Z handleHookRunStop started
23
- [INFO] 2026-06-04T14:31:37.377Z Hook input received
24
- [INFO] 2026-06-04T14:31:37.377Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Session ID: 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c
25
- [INFO] 2026-06-04T14:31:37.377Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved pluginRoot: /Users/shlomo/.claude/plugins/cache/a5c-ai/babysitter/4.0.157
26
- [INFO] 2026-06-04T14:31:37.377Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Resolved stateDir: /Users/shlomo/.a5c/state
27
- [INFO] 2026-06-04T14:31:37.377Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] Checking session file at: /Users/shlomo/.a5c/state/3a7a1b56-d654-45b6-8bd4-bd9e1504d32c.md
28
- [INFO] 2026-06-04T14:31:37.377Z [session=3a7a1b56-d654-45b6-8bd4-bd9e1504d32c] No active loop found for session 3a7a1b56-d654-45b6-8bd4-bd9e1504d32c — allowing exit