Files
MemRelay/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/curated/Metrix Key Architectural Decisions.md
T

85 lines
4.3 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 Key Architectural Decisions
type: curated
permalink: main/projects/d5a7f581-c442-4554-87b9-ee723b8b0258/curated/metrix-key-architectural-decisions
stable_id: 783ddcc0-2e2e-4731-906a-e67cabc552a5
scope: project
project_id: d5a7f581-c442-4554-87b9-ee723b8b0258
workspace_type: development
usage_profile_id: null
preference_context: development
document_type: decisions
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:e71d9113-be70-4792-8a7d-81df157ea9a0: '1'
memory:52d53ae2-ce5b-4207-9813-0c9d3de029ce: '1'
memory:761650df-f1df-4e5a-b23a-adf2d01d5c9f: '1'
memory:34271d12-a706-491b-a06b-f561e81f7346: '1'
memory:cf3e85fe-dcf3-4af3-9a17-edfe63b2f56c: '1'
memory:5924806e-b234-49f7-b971-3c844fd07cf3: '3'
memory:6c4cbc6d-a59b-4128-9d6a-cb9652cff00e: '1'
memory:bc21af00-1127-44f8-93b7-aa484a7041c2: '1'
memory:a3896ad9-d30c-4963-9232-a7d1ab571d19: '2'
source_dispositions:
processed: 29
unchanged: 0
unsupported: 0
skipped: 0
cited_source_ids:
- curated_baseline:783ddcc0-2e2e-4731-906a-e67cabc552a5
- memory:6c4cbc6d-a59b-4128-9d6a-cb9652cff00e
- memory:bc21af00-1127-44f8-93b7-aa484a7041c2
- memory:a3896ad9-d30c-4963-9232-a7d1ab571d19
- memory:5924806e-b234-49f7-b971-3c844fd07cf3
- git:packaging/README.md
- git:packaging/pypiserver/Dockerfile
- memory:cf3e85fe-dcf3-4af3-9a17-edfe63b2f56c
- memory:e71d9113-be70-4792-8a7d-81df157ea9a0
- memory:52d53ae2-ce5b-4207-9813-0c9d3de029ce
- memory:761650df-f1df-4e5a-b23a-adf2d01d5c9f
- memory:34271d12-a706-491b-a06b-f561e81f7346
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-12T18:02:51.479473+00:00'
updated_at: '2026-09-23T15:09:11.699391+00:00'
tags:
- Metrix
- development
- decisions
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
---
## Key Decisions (as recorded)
| Decision ID | Summary | Rationale | Status |
|------------|----------|-----------|--------|
| `e71d9113‑be70‑4792‑8a7d‑81df157ea9a0` | Keep **CapacityReport** as independent sub‑module + Docker image | Isolated UI & historic data handling | Implemented, runs separately |
| `52d53ae2‑ce5b‑4207‑9813‑0c9d3de029ce` | Switch editor highlighting to **Shiki** | Monaco mis‑highlights multiline f‑strings | Integrated (theme sync pending) |
| `761650df‑f1df‑4e5a‑b23a‑adf2d01d5c9f` | Adopt **action‑based permission model** | Simplify checks, avoid page rule duplication | All modules migrated |
| `34271d12‑a706‑491b‑a06b‑f561e81f7346` | Consolidate script‑run retention to `{max_count, max_days}` | Remove overlapping policies | Unified |
| `cf3e85fe‑dcf3‑4af3‑9a17‑edfe63b2f56c` | Freeze local `docs/project_context.md`; **MemRelay only** stores memory | Avoid bidirectional sync, per user request | File read‑only, MemRelay source of truth |
| `5924806e‑b234‑49f7‑b971‑3c844fd07cf3` | Formalise **workflow**: Chinese‑first, KISS/YAGNI, ordered steps (implement→clean→memory→docs→commit) | Standardise practice | Documented, tooling enforced |
| *Docker‑socket mount* | Mount host Docker socket into `metrix‑app` | Enables host‑level container management for scripts | Documented, admin‑only |
| *Offline bundle* | Tarred images + compose files for air‑gapped deployment | Offline environments cannot pull from Docker Hub | `scripts/build_docker.py` creates bundle |
| *Internal PyPI server* | Run `pypiserver` container, serve wheels offline | Remove external PyPI dependency | Implemented, UI `/pypi` added |
| *Windows directory‑rename lock* | Work‑around: move locked objects, rename, move back, `git submodule sync` | IDE lock on `.git` prevented rename | Fixed (see troubleshooting) |
| *Sub‑module locations* | **CapacityReport** & **InterferenceETL** moved under `plugins/` with independent Docker images | Clear structure, isolated versioning | Completed (2026‑08‑17) |
Source: `curated_baseline:783ddcc0‑2e2e‑4731‑906a‑e67cabc552a5`.