feat: Add global relationships management to GlobalSymbolIndex

- Introduced a new schema version (v2) with a global_relationships table.
- Implemented CRUD operations for file relationships, including update and delete functionalities.
- Added query capabilities for relationships by target and symbols.
- Created migration logic from v1 to v2 schema.
- Enhanced tests for global relationships, covering various scenarios including insertion, querying, and deletion.

docs: Add update-single command for generating module documentation

- Created a new command to generate manual-style documentation (CLAUDE.md) for a single module.
- Detailed execution process and implementation phases for the command.
- Included usage examples and error handling guidelines.

feat: Implement team command for CLI interface

- Added a new team command for logging and retrieving messages in a team message bus.
- Supported subcommands for logging, reading, listing, and checking status of messages.
- Included error handling and JSON output options.

test: Add comprehensive tests for global relationships

- Developed extensive tests for the global_relationships table in GlobalSymbolIndex.
- Covered schema creation, migration, CRUD operations, and performance benchmarks.
- Ensured project isolation and validated query functionalities for relationships.
This commit is contained in:
catlog22
2026-02-13 11:39:53 +08:00
parent e88d552cd1
commit 17f52da4c6
21 changed files with 1587 additions and 127 deletions

View File

@@ -142,12 +142,12 @@ export function ObservabilityPanel() {
<label className="block text-xs font-medium text-muted-foreground mb-1">
{formatMessage({ id: 'issues.observability.filters.type' })}
</label>
<Select value={type} onValueChange={(v) => setType(v)}>
<Select value={type || '__all__'} onValueChange={(v) => setType(v === '__all__' ? '' : v)}>
<SelectTrigger>
<SelectValue placeholder={formatMessage({ id: 'issues.observability.filters.typeAll' })} />
</SelectTrigger>
<SelectContent>
<SelectItem value="">{formatMessage({ id: 'issues.observability.filters.typeAll' })}</SelectItem>
<SelectItem value="__all__">{formatMessage({ id: 'issues.observability.filters.typeAll' })}</SelectItem>
{EVENT_TYPES.map((t) => (
<SelectItem key={t} value={t}>
{t}

View File

@@ -209,7 +209,7 @@ export function QueuePanel() {
</SelectTrigger>
<SelectContent>
{(historyIndex.queues || []).length === 0 ? (
<SelectItem value="" disabled>
<SelectItem value="__none__" disabled>
{formatMessage({ id: 'issues.queue.history.empty' })}
</SelectItem>
) : (