Files
MemRelay/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/curated/development/Metrix Maintenance & Open Issues (Shared Workspace).md
T

114 lines
6.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Metrix Maintenance & Open Issues (Shared Workspace)
type: curated
permalink: main/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/curated/development/metrix-maintenance-open-issues-shared-workspace
stable_id: 13ffa178-e9cf-4735-8da4-e1d4cf683a52
scope: project
project_id: d5a7f581-c442-4554-87b9-ee723b8b0258
workspace_type: development
usage_profile_id: null
preference_context: development
document_type: maintenance
revision: 1
source_memory_ids: []
source_checkpoint_ids: []
source_file_ids: []
source_git_commit: e660bc7bb4fc5ccda47decb4d514874a148ed9b2
source_git_commits:
- e660bc7bb4fc5ccda47decb4d514874a148ed9b2
source_agent_sync_ids: []
model_connection: Sub2API
model_name: git-restore
source_count: 29
source_revisions:
memory:6c4cbc6d-a59b-4128-9d6a-cb9652cff00e: '1'
memory:a3896ad9-d30c-4963-9232-a7d1ab571d19: '2'
memory:bc21af00-1127-44f8-93b7-aa484a7041c2: '1'
memory:5924806e-b234-49f7-b971-3c844fd07cf3: '3'
source_dispositions:
processed: 29
unchanged: 0
unsupported: 0
skipped: 0
cited_source_ids:
- memory:6c4cbc6d-a59b-4128-9d6a-cb9652cff00e
- memory:a3896ad9-d30c-4963-9232-a7d1ab571d19
- memory:bc21af00-1127-44f8-93b7-aa484a7041c2
- memory:5924806e-b234-49f7-b971-3c844fd07cf3
job_cited_source_ids: []
conflicts: []
supersedes: []
preferences: []
source_cursor: 162
source_hash: e2fcea7c8a9e0df7a91925fb2a9beabd922058868310effc908f95df2d78b218
prompt_version: 2026-08-12.3
schema_version: '3'
curation_job_id: null
created_at: '2026-08-19T02:32:37.159033+00:00'
updated_at: '2026-09-23T15:09:21.197870+00:00'
tags:
- maintenance
- troubleshooting
- tasks
- preferences
- sql
- docker
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
---
## High‑Priority Open Work Items (as of 2026‑08‑26)
| ID | Description | Root Cause | Source |
|----|-------------|------------|--------|
| **SQL‑Index‑Missing** | Add missing index for large `UPDATE JOIN` on ~5 M‑row text column (query > 2 h) | C‑05 (large query) | `memory:6c4cbc6d‑a59b‑...` |
| **FastAPI `/health` Freeze** | Convert async blocking handler to regular `def` | C‑03 | `memory:6c4cbc6d‑a59b‑...` |
| **Docker Exec Timeout** | Remove default 3 s socket timeout that disconnects terminals | C‑04 | `memory:6c4cbc6d‑a59b‑...` |
| **Container‑Host Networking** | Ensure containers reliably reach host services | Identified need | – |
| **API‑Token Permission Granularity** | Extend token model for fine‑grained actions (`container:start`) | Current policy blocks mutating ops | – |
| **Full‑Text Audit‑Log Search** | Add MySQL `FULLTEXT` indexes & UI toggle | Keyword‑only search today | – |
| **InterferenceETL Schedule UI** | Visual cron‑editor for `schedule` field | Text‑only schedule currently | `memory:a3896ad9‑d30c‑...` |
| **CapacityReport CI/CD** | Automate tests & Docker image builds per release | Manual sync currently | – |
| **Shiki Theme Sync** | Keep Shiki highlighting in sync with UI dark/light theme | Pending implementation | – |
| **Internal PyPI Cache Eviction** | Background job to purge old wheels when size/TTL limits hit | No eviction policy | – |
| **Terminal Copy‑Paste on Windows** | Add error handling & UI notification for pipe failures | Sporadic failures observed | – |
| **Column‑Width Persistence** | Store layout metadata via user‑preferences API (instead of only `localStorage`) | Current per‑page only | – |
| **Duplicate‑CGI Merge Strategy** | Configurable (`highest|latest|average`) merge for duplicate rows | Fixed to “highest DBM” | – |
## Resolved Tasks (Verified at 2026‑08‑26 checkpoint)
- **FastAPI `/health` async → def conversion** – ✅ (`memory:fb67062d‑89fa‑...`).
- **Docker exec timeout removal** – ✅ (`memory:6c4cbc6d‑a59b‑...`).
- **Shiki theme sync implementation** – ✅ (`memory:fb67062d‑89fa‑...`).
- **InterferenceETL cron‑editor UI** – ✅ (`memory:6d022bb5‑053d‑...`).
- **CapacityReport second instance deployment** – ✅ (`memory:2a61dd7b‑d069‑...`).
## Troubleshooting Summary
| # | Symptom | Cause | Solution |
|---|---------|-------|----------|
| 1 | Windows directory rename locked | IDE holds handle on `.git` | Stop IDE, rename, `git submodule sync` |
| 2 | `/health` endpoint never returns | Async handler performed blocking I/O | Convert to regular `def` |
| 3 | Docker `exec` sessions disconnect after ~3 s | Default socket timeout | Call `socket.settimeout(None)` after `exec_start` |
| 4 | Missing `api_enabled` flag → `forbidden` error | Config lacks flag | Add `api_enabled: bool = True` in `core/config.py` |
| 5 | Hard‑coded credentials in `pypi_mirror.py` | Placeholder left in code | Use env vars or Vaultwarden |
| 6 | `create-module.mjs` typo (`___SNAKE___snapshot`) | Template typo | Fix placeholder |
| 7 | Empty `pytest.ini` | No test files | Add tests or update config |
| 8 | Generic `except Exception: pass` in container exec WS | Swallows errors | Log exception & close WebSocket |
| 9 | Permission expansion not applied (`resource:*` → read) | Expansion logic missing | Ensure `expand_permissions` runs during seeding |
|10| Shiki theme not syncing on UI theme change | Shiki instance not updated | Watch `appStore.dark`, call `shiki.setTheme` |
|11| Terminal copy‑paste fails on Windows named pipes | Missing error handling | Add UI toast & fallback to TCP |
|12| Column‑width reset on reload | Width stored only in `localStorage` | Persist via `/api/user/preferences` |
|13| Duplicate CGI merge strategy undefined | No config option | Add `duplicate_cgi_merge` setting |
|14| Internal PyPI cache grows unbounded | No eviction policy | Background job to delete oldest wheels when limits exceeded |
## Ongoing Development Preferences (scenario level)
1. **Workflow Order** – Implement → Clean → Memory → Docs → Commit (Chinese‑first, KISS/YAGNI). (source: `global_guidance_memory:5924806e-...`, `global_guidance_document:e4fc35f2-...`)
2. **Git Commit Convention** – `type: 中文一句话描述` (e.g., `feat: 添加用户登录`). (source: `global_guidance_document:d3a20d44-...`)
3. **Environment** – Development on Windows + WSL2 + Docker Desktop; all commands must be Windows‑compatible. (source: `global_guidance_document:6973450e-...`, `global_guidance_document:8a861a5f-...`)
These preferences are recorded at the **scenario** level for the *development* workspace and do not create global settings.
## Tags
`[maintenance]` `[troubleshooting]` `[tasks]` `[preferences]` `[sql]` `[docker]`