From a4106ee20d00aec32e2a128f3411b67d9206ade3 Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Sun, 14 Dec 2025 20:20:46 +0100 Subject: [PATCH] refactor(astrolabe): reframe UI as semantic search service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update all user-facing text to focus on Astroglobe as a semantic search service for Nextcloud users: - info.xml: New description focusing on finding content by meaning - Settings sections: Renamed from "MCP Server" to "Astroglobe" - Personal settings: Reframed as content indexing controls - Admin settings: Reframed as semantic search administration - OAuth flow: Explains semantic search benefits to users Key messaging changes: - "MCP Server" → "Astroglobe" - "Grant Background Access" → "Enable Semantic Search" - "Vector Sync" → "Content Indexing" - Focus on user benefits: natural language search, finding by meaning 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- third_party/astroglobe/appinfo/info.xml | 28 +++--- third_party/astroglobe/lib/Settings/Admin.php | 8 +- .../astroglobe/lib/Settings/AdminSection.php | 8 +- .../astroglobe/lib/Settings/Personal.php | 10 +-- .../lib/Settings/PersonalSection.php | 10 +-- .../astroglobe/templates/settings/admin.php | 66 +++++++------- .../templates/settings/oauth-required.php | 72 +++++++--------- .../templates/settings/personal.php | 86 ++++++++----------- 8 files changed, 129 insertions(+), 159 deletions(-) diff --git a/third_party/astroglobe/appinfo/info.xml b/third_party/astroglobe/appinfo/info.xml index d730e3b..facb85f 100644 --- a/third_party/astroglobe/appinfo/info.xml +++ b/third_party/astroglobe/appinfo/info.xml @@ -3,25 +3,31 @@ xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd"> astroglobe Astroglobe - Manage your Nextcloud MCP Server + AI-powered semantic search across your Nextcloud 0.1.0 agpl diff --git a/third_party/astroglobe/lib/Settings/Admin.php b/third_party/astroglobe/lib/Settings/Admin.php index a7b5985..2bab18f 100644 --- a/third_party/astroglobe/lib/Settings/Admin.php +++ b/third_party/astroglobe/lib/Settings/Admin.php @@ -12,10 +12,10 @@ use OCP\IConfig; use OCP\Settings\ISettings; /** - * Admin settings panel for MCP Server. + * Admin settings panel for Astroglobe. * - * Displays server status, vector sync metrics, configuration, - * and provides administrative controls. + * Displays semantic search service status, indexing metrics, + * configuration, and provides administrative controls. */ class Admin implements ISettings { private $client; @@ -89,7 +89,7 @@ class Admin implements ISettings { * @return string The section ID */ public function getSection(): string { - return 'mcp'; + return 'astroglobe'; } /** diff --git a/third_party/astroglobe/lib/Settings/AdminSection.php b/third_party/astroglobe/lib/Settings/AdminSection.php index 3f891eb..d5ca194 100644 --- a/third_party/astroglobe/lib/Settings/AdminSection.php +++ b/third_party/astroglobe/lib/Settings/AdminSection.php @@ -9,9 +9,9 @@ use OCP\IURLGenerator; use OCP\Settings\IIconSection; /** - * Admin settings section for MCP Server. + * Admin settings section for Astroglobe. * - * Creates a dedicated section in admin settings for MCP-related configuration. + * Creates a dedicated section in admin settings for semantic search administration. */ class AdminSection implements IIconSection { private $l; @@ -26,14 +26,14 @@ class AdminSection implements IIconSection { * @return string The section ID */ public function getID(): string { - return 'mcp'; + return 'astroglobe'; } /** * @return string The translated section name */ public function getName(): string { - return $this->l->t('MCP Server'); + return $this->l->t('Astroglobe'); } /** diff --git a/third_party/astroglobe/lib/Settings/Personal.php b/third_party/astroglobe/lib/Settings/Personal.php index b057919..39ab36c 100644 --- a/third_party/astroglobe/lib/Settings/Personal.php +++ b/third_party/astroglobe/lib/Settings/Personal.php @@ -14,12 +14,12 @@ use OCP\IUserSession; use OCP\Settings\ISettings; /** - * Personal settings panel for MCP Server. + * Personal settings panel for Astroglobe. * - * Displays user session information, background access status, - * and provides controls for managing MCP server integration. + * Displays semantic search status, background indexing access, + * and provides controls for managing content indexing. * - * Uses OAuth PKCE flow - each user must authorize access to MCP server. + * Uses OAuth PKCE flow - each user must authorize background access. */ class Personal implements ISettings { private $client; @@ -146,7 +146,7 @@ class Personal implements ISettings { * @return string The section ID */ public function getSection(): string { - return 'mcp'; + return 'astroglobe'; } /** diff --git a/third_party/astroglobe/lib/Settings/PersonalSection.php b/third_party/astroglobe/lib/Settings/PersonalSection.php index 9f75d87..23fa21c 100644 --- a/third_party/astroglobe/lib/Settings/PersonalSection.php +++ b/third_party/astroglobe/lib/Settings/PersonalSection.php @@ -9,9 +9,9 @@ use OCP\IURLGenerator; use OCP\Settings\IIconSection; /** - * Personal settings section for MCP Server. + * Personal settings section for Astroglobe. * - * Creates a dedicated section in personal settings for MCP-related configuration. + * Creates a dedicated section in personal settings for semantic search configuration. */ class PersonalSection implements IIconSection { private $l; @@ -23,17 +23,17 @@ class PersonalSection implements IIconSection { } /** - * @return string The section ID (e.g. 'mcp') + * @return string The section ID */ public function getID(): string { - return 'mcp'; + return 'astroglobe'; } /** * @return string The translated section name */ public function getName(): string { - return $this->l->t('MCP Server'); + return $this->l->t('Astroglobe'); } /** diff --git a/third_party/astroglobe/templates/settings/admin.php b/third_party/astroglobe/templates/settings/admin.php index 90b96aa..0c1dcdd 100644 --- a/third_party/astroglobe/templates/settings/admin.php +++ b/third_party/astroglobe/templates/settings/admin.php @@ -1,14 +1,14 @@
-

t('MCP Server Administration')); ?>

+

t('Astroglobe Administration')); ?>

-

t('Monitor and configure the Nextcloud MCP (Model Context Protocol) Server.')); ?>

+

t('Monitor and configure the semantic search service for your Nextcloud instance.')); ?>

@@ -29,7 +29,7 @@ style('astroglobe', 'astroglobe-settings');

t('Configuration')); ?>

- +
t('Server URL')); ?>t('Service URL')); ?> @@ -63,7 +63,7 @@ style('astroglobe', 'astroglobe-settings');
'mcp_server_url' => 'http://localhost:8000',
 'mcp_server_api_key' => 'your-secret-api-key',

- + t('See documentation for details')); ?>

@@ -71,22 +71,14 @@ style('astroglobe', 'astroglobe-settings'); - +
-

t('Server Status')); ?>

+

t('Service Status')); ?>

- - - - - - - - - +
t('Version')); ?>
t('Authentication Mode')); ?>
t('Management API Version')); ?>
t('Uptime')); ?> @@ -103,7 +95,7 @@ style('astroglobe', 'astroglobe-settings');
t('Vector Sync')); ?>t('Semantic Search')); ?> @@ -120,10 +112,10 @@ style('astroglobe', 'astroglobe-settings');
- +
-

t('Vector Sync Metrics')); ?>

+

t('Indexing Metrics')); ?>

@@ -173,34 +165,39 @@ style('astroglobe', 'astroglobe-settings');
-

t('Vector Sync Metrics')); ?>

+

t('Indexing Metrics')); ?>

-

t('Failed to retrieve vector sync status:')); ?>

+

t('Failed to retrieve indexing status:')); ?>

- +
-

t('Features')); ?>

+

t('Capabilities')); ?>

  • - - t('User Settings')); ?> -

    t('Users can manage their MCP server connections in Personal Settings.')); ?>

    + + t('Semantic Search')); ?> +

    t('Search by meaning across Notes, Files, Calendar, and Deck using natural language queries.')); ?>

  • - + t('Vector Visualization')); ?> -

    t('Interactive semantic search interface with 2D PCA visualization.')); ?>

    +

    t('Explore content relationships in an interactive 2D visualization.')); ?>

  • - - t('MCP Protocol')); ?> -

    t('Full support for MCP sampling, elicitation, and bidirectional streaming.')); ?>

    + + t('Per-User Indexing')); ?> +

    t('Users control their own content indexing via Personal Settings.')); ?>

    +
  • +
  • + + t('Hybrid Search')); ?> +

    t('Combines semantic understanding with keyword matching for optimal results.')); ?>

@@ -209,11 +206,6 @@ style('astroglobe', 'astroglobe-settings');

t('Documentation')); ?>

t('Status')); ?>
- + - + - - - -
t('Server URL')); ?>t('Service URL')); ?>
t('Server Version')); ?>t('Version')); ?>
t('Auth Mode')); ?>
- +
-

t('Session Information')); ?>

+

t('Content Indexing')); ?>

- - - - - + @@ -75,33 +67,25 @@ style('astroglobe', 'astroglobe-settings');

- t('Background access allows the MCP server to sync your documents in the background for semantic search. Without it, your documents will not be indexed.')); ?> + t('Enable background indexing to use semantic search. Your Notes, Files, Calendar events, and Deck cards will be indexed so you can search by meaning.')); ?>

- t('Grant Background Access')); ?> + t('Enable Semantic Search')); ?>
-

t('Background Access Details')); ?>

+

t('Indexing Details')); ?>

t('User ID')); ?>
t('Background Access')); ?>t('Status')); ?> - t('Granted')); ?> + t('Active')); ?> - t('Not Granted')); ?> + t('Not Enabled')); ?>
- - - - - + - - - - - +
t('Flow Type')); ?>
t('Provisioned At')); ?>t('Enabled Since')); ?>
t('Token Audience')); ?>
t('Scopes')); ?>t('Indexed Content')); ?>
@@ -111,10 +95,10 @@ style('astroglobe', 'astroglobe-settings');

- t('This will delete the refresh token and prevent background operations from running on your behalf.')); ?> + t('This will stop background indexing and remove your content from semantic search. You can re-enable it at any time.')); ?>

@@ -143,39 +127,39 @@ style('astroglobe', 'astroglobe-settings'); - +
-

t('Semantic Search')); ?>

-

t('Search your indexed content using semantic similarity. Find documents by meaning, not just keywords.')); ?>

+

t('Search Your Content')); ?>

+

t('Use natural language to search across your Notes, Files, Calendar, and Deck cards. Ask questions like "meeting notes from last week" or "recipes with chicken".')); ?>

- t('Open MCP Server UI')); ?> + t('Open Astroglobe')); ?>

t('Semantic Search')); ?>

- t('Vector sync is not enabled on the MCP server. Contact your administrator to enable this feature.')); ?> + t('Semantic search is not enabled on this server. Contact your administrator to enable this feature.')); ?>

- +
-

t('Connection Management')); ?>

-

t('You are currently connected to the MCP server via OAuth.')); ?>

+

t('Manage Connection')); ?>

+

t('You are connected to the Astroglobe service.')); ?>

- t('This will remove your OAuth connection to the MCP server. You will need to authorize access again to use MCP features.')); ?> + t('This will disconnect from the Astroglobe service. You will need to re-authorize to use semantic search features.')); ?>

@@ -183,12 +167,12 @@ style('astroglobe', 'astroglobe-settings');