feat(ui): declutter dashboard done-recently + MCP-access, add per-project stats
Dashboard: - 'Done recently' chip-cloud -> compact uniform list (Active-now row style), showing 5 with inline expand to the rest (backend already returns up to 8). - New 'Projects' rail card: each active project with 'N open · M done'. Backend already computed done_count (dashboard.py) — now surfaced in the /api/dashboard payload per active project. MCP Access (Connect Claude / Claude Code): - Progressive disclosure: lead with the pre-filled plugin-install snippet; fold server name, scope, marketplace URL, and the MCP-only path into a single 'Customize' expander. Desktop tab keeps its own server-name field. - Marketplace URL now defaults to this instance's own repo via config.PLUGIN_MARKETPLACE_URL (env-overridable); /api/plugin/marketplace-url falls back to it, so the field + install snippet are pre-filled out of the box instead of showing a generic placeholder. Refs #761 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ from __future__ import annotations
|
||||
from quart import Blueprint, g, jsonify, request
|
||||
|
||||
from scribe.auth import admin_required, get_current_user_id, login_required
|
||||
from scribe.config import Config
|
||||
from scribe.services import plugin_context as plugin_ctx_svc
|
||||
from scribe.services import repo_bindings as repo_bindings_svc
|
||||
from scribe.services.settings import get_admin_setting, set_setting
|
||||
@@ -60,8 +61,10 @@ async def session_context():
|
||||
@login_required
|
||||
async def get_marketplace_url():
|
||||
"""The plugin marketplace git URL, readable by any logged-in user so their
|
||||
Settings page can show a copyable install command."""
|
||||
return jsonify({"marketplace_url": await get_admin_setting(_MARKETPLACE_KEY)})
|
||||
Settings page can show a copyable install command. Falls back to the
|
||||
config default (this deployment's own repo) when no admin override is set."""
|
||||
url = await get_admin_setting(_MARKETPLACE_KEY, default=Config.PLUGIN_MARKETPLACE_URL)
|
||||
return jsonify({"marketplace_url": url})
|
||||
|
||||
|
||||
@plugin_bp.put("/marketplace-url")
|
||||
|
||||
Reference in New Issue
Block a user