POWE-120: add Topic Memory dashboard - #1537
Conversation
There was a problem hiding this comment.
license-eye has checked 1434 files.
| Valid | Invalid | Ignored | Fixed |
|---|---|---|---|
| 1014 | 1 | 419 | 0 |
Click to see the invalid file list
- src/powercontext/server/dashboard/templates/topics.html
Use this command to fix any missing license headers
```bash
docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix
</details>
| @@ -0,0 +1,27 @@ | |||
| {% from 'components/page-heading.html' import page_heading %} | |||
There was a problem hiding this comment.
| {% from 'components/page-heading.html' import page_heading %} | |
| <!-- | |
| ~ Copyright (c) 2026 OceanBase. | |
| ~ | |
| ~ Licensed under the Apache License, Version 2.0 (the "License"); | |
| ~ you may not use this file except in compliance with the License. | |
| ~ You may obtain a copy of the License at | |
| ~ | |
| ~ http://www.apache.org/licenses/LICENSE-2.0 | |
| ~ | |
| ~ Unless required by applicable law or agreed to in writing, software | |
| ~ distributed under the License is distributed on an "AS IS" BASIS, | |
| ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| ~ See the License for the specific language governing permissions and | |
| ~ limitations under the License. | |
| --> | |
| {% from 'components/page-heading.html' import page_heading %} |
There was a problem hiding this comment.
license-eye has checked 1435 files.
| Valid | Invalid | Ignored | Fixed |
|---|---|---|---|
| 1014 | 2 | 419 | 0 |
Click to see the invalid file list
- src/powercontext/server/dashboard/templates/prompts.html
- src/powercontext/server/dashboard/templates/topics.html
Use this command to fix any missing license headers
```bash
docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix
</details>
| @@ -0,0 +1,20 @@ | |||
| {% from 'components/page-heading.html' import page_heading %} | |||
There was a problem hiding this comment.
| {% from 'components/page-heading.html' import page_heading %} | |
| <!-- | |
| ~ Copyright (c) 2026 OceanBase. | |
| ~ | |
| ~ Licensed under the Apache License, Version 2.0 (the "License"); | |
| ~ you may not use this file except in compliance with the License. | |
| ~ You may obtain a copy of the License at | |
| ~ | |
| ~ http://www.apache.org/licenses/LICENSE-2.0 | |
| ~ | |
| ~ Unless required by applicable law or agreed to in writing, software | |
| ~ distributed under the License is distributed on an "AS IS" BASIS, | |
| ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| ~ See the License for the specific language governing permissions and | |
| ~ limitations under the License. | |
| --> | |
| {% from 'components/page-heading.html' import page_heading %} |
| <section class="col-lg-7" aria-labelledby="topic-detail-heading"><div class="card"><div class="card-body"> | ||
| {% if errors.get('topic_memory_selected') %}{{ read_error(errors.topic_memory_selected, t.topic_memory) }} | ||
| {% elif data.topic_memory_selected %}{% set topic = data.topic_memory_selected %} | ||
| <div class="d-flex justify-content-between gap-3"><div><h2 class="card-title mb-1" id="topic-detail-heading">{{ topic.title }}</h2><code>topic-memory/{{ topic.artifact.artifact_id }}@{{ topic.artifact.revision }}</code></div><span class="badge bg-green-lt">{{ t.current_revision }}</span></div> |
There was a problem hiding this comment.
[P2] Check publication state before labeling a revision as current
This badge is unconditional, but the URL selects an exact revision. I reproduced this with SQLite and Firefox: after publishing revision 2, reopening the revision 1 link still shows the old content with “Current revision”, even though the Runtime reports is_current=False. A saved link can therefore present outdated guidance as current. Please distinguish historical revisions using the actual publication state and provide a link to the current revision.
| } | ||
| for item in items | ||
| ], | ||
| "next_cursor": None, |
There was a problem hiding this comment.
[P2] Allow browsing beyond the first 50 topics
The browse call defaults to 50 items, but next_cursor is always None and the page has no pagination controls. With 51 published topics in one Scope, I confirmed that the browser shows only the newest 50. The omitted topic is still searchable, but users cannot discover it by browsing the inventory. Please pass through the existing after cursor support and add navigation to subsequent pages.
Implements the read-only Topic Memory Dashboard requested by POWE-120.
/dashboard/topicswith browse, search, exact revision detail, and source references.POST /v1/topic-memory/searchwith the strict API contract (scope_id,query).Validation: targeted dashboard tests (2 passed), Ruff, and
git diff --check.