85 lines
4.3 KiB
Markdown
85 lines
4.3 KiB
Markdown
---
|
||
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`. |