116 lines
4.8 KiB
Markdown
116 lines
4.8 KiB
Markdown
---
|
||
title: Ax9000WRTBuild – Project Overview
|
||
type: curated
|
||
permalink: main/projects/6f47523e-e22e-4cdd-bd18-76e5e474ee0c/curated/ax9000-wrtbuild-project-overview
|
||
stable_id: 7b8945b7-d58e-4bbd-93d0-63b5569c98e4
|
||
scope: project
|
||
project_id: 6f47523e-e22e-4cdd-bd18-76e5e474ee0c
|
||
workspace_type: general
|
||
usage_profile_id: null
|
||
preference_context: general
|
||
document_type: overview
|
||
revision: 5
|
||
source_memory_ids: []
|
||
source_checkpoint_ids: []
|
||
source_file_ids: []
|
||
source_git_commit: a066d95b43240f85f5abcf18305c2edfe1da91a3
|
||
source_git_commits:
|
||
- a066d95b43240f85f5abcf18305c2edfe1da91a3
|
||
source_agent_sync_ids: []
|
||
model_connection: Sub2API
|
||
model_name: openai/gpt-oss-20b
|
||
source_count: 52
|
||
source_revisions:
|
||
memory:be916376-ddf7-44e0-be53-963d5b2aa655: '1'
|
||
memory:5daa77ea-300c-4185-b408-8e5d021e67d5: '1'
|
||
memory:1033d1fb-6d87-4009-8b39-498c8963f6aa: '1'
|
||
memory:e61163f1-50db-49d4-839b-a8bdb67741c2: '1'
|
||
memory:86a5a0e1-2536-48c2-b48a-5e6b8e85cd50: '1'
|
||
memory:814d437d-2c21-4f02-b17b-97fd3ec03f7e: '1'
|
||
memory:650349fe-0a22-4d62-b3ab-329523cb1960: '1'
|
||
memory:180c6231-32a2-4513-980b-613afff09cbe: '1'
|
||
memory:635986da-9408-414d-8d89-73e76bd921ed: '1'
|
||
memory:f8c5300e-3068-4003-a816-b20f997d9715: '1'
|
||
memory:4f58f272-ba63-4f40-a617-c35cfa4cad6e: '1'
|
||
memory:b83ec829-f008-4de0-a4a3-79ad7a6c3a98: '1'
|
||
memory:bf2dc676-cc13-41f7-b05d-4ed20fc6360e: '1'
|
||
memory:975e8c20-b999-4c43-80c0-78030668fec1: '1'
|
||
memory:f1a1ef45-2ef0-4ace-9385-05a7bd12ab85: '1'
|
||
memory:2dc986e1-06de-466f-bfd5-9221cc66fa14: '1'
|
||
memory:77f1fcf5-022f-47b4-a605-52c12ba91612: '1'
|
||
source_dispositions:
|
||
processed: 52
|
||
unchanged: 0
|
||
unsupported: 0
|
||
skipped: 0
|
||
cited_source_ids:
|
||
- memory:86a5a0e1-2536-48c2-b48a-5e6b8e85cd50
|
||
- memory:814d437d-2c21-4f02-b17b-97fd3ec03f7e
|
||
- memory:650349fe-0a22-4d62-b3ab-329523cb1960
|
||
- memory:180c6231-32a2-4513-980b-613afff09cbe
|
||
- memory:635986da-9408-414d-8d89-73e76bd921ed
|
||
- memory:f8c5300e-3068-4003-a816-b20f997d9715
|
||
- memory:4f58f272-ba63-4f40-a617-c35cfa4cad6e
|
||
- memory:b83ec829-f008-4de0-a4a3-79ad7a6c3a98
|
||
- memory:bf2dc676-cc13-41f7-b05d-4ed20fc6360e
|
||
- memory:975e8c20-b999-4c43-80c0-78030668fec1
|
||
- memory:f1a1ef45-2ef0-4ace-9385-05a7bd12ab85
|
||
- memory:2dc986e1-06de-466f-bfd5-9221cc66fa14
|
||
- memory:77f1fcf5-022f-47b4-a605-52c12ba91612
|
||
- source_file:packages/luci-app-frpc/root/www/luci-static/resources/view/frpc.js
|
||
- source_file:packages/luci-app-frpc/Makefile
|
||
- source_file:packages/luci-app-frpc/po/zh_Hans/frpc.po
|
||
- source_file:AGENTS.md
|
||
- memory:be916376-ddf7-44e0-be53-963d5b2aa655
|
||
- memory:5daa77ea-300c-4185-b408-8e5d021e67d5
|
||
- memory:1033d1fb-6d87-4009-8b39-498c8963f6aa
|
||
- memory:e61163f1-50db-49d4-839b-a8bdb67741c2
|
||
job_cited_source_ids: []
|
||
conflicts: []
|
||
supersedes: []
|
||
preferences: []
|
||
source_cursor: 700
|
||
source_hash: 425f69c7d615a0522a06a54c0b88e30cbb169b3da8e430a957345bc06a169bb7
|
||
prompt_version: 2026-08-12.3
|
||
schema_version: '3'
|
||
curation_job_id: 63262a75-ff99-4aa4-9c31-03f6b59df88f
|
||
created_at: '2026-08-12T17:42:27.070190+00:00'
|
||
updated_at: '2026-09-19T08:47:00.547268+00:00'
|
||
tags:
|
||
- global_guidance
|
||
- architecture
|
||
---
|
||
|
||
# Global Guidance & Policies
|
||
|
||
- **Answer‑First** – deliver confirmed answers immediately. <br>
|
||
- **No Auto‑Project Creation** – only write global‑scope memory in temporary sessions.
|
||
- **Push After Commit** – commits are pushed automatically; rebase on new remote changes.
|
||
- **MemRelay Only** – all memory persists in MemRelay; no local `aidocs/` artifacts are created unless exported by the user.
|
||
- **Vault‑First Credential Access** – all sensitive data resides in Vaultwarden; any matching vault entry is automatically used.
|
||
- **Development Preferences** – communication is in Chinese; follow KISS & YAGNI, avoid unnecessary dependencies.
|
||
|
||
# Project Architecture
|
||
|
||
- **Host**: Windows 10/11 with WSL 2 and Docker Desktop (Linux container).
|
||
- **Container**: `openwrt‑local‑builder:25.12` based on Ubuntu 24.04.
|
||
- **Volume**: `openwrt‑build‑work` > 50 GB.
|
||
- **Back‑end**: FastAPI 0.139 (dev mode, unauthenticated by default).
|
||
- **Front‑end**: Vue 3 with Vite, served on `localhost:9000`.
|
||
- **OpenWrt Source**: `qosmio/openwrt‑ipq` 25.12‑nss with feeds from the official repository, Qosmio NSS, and community `kiddin9`.
|
||
- **Luci App**: `luci‑app‑ax900‑hardware` (fan & LED control).
|
||
- **NSS**: `kmod‑qca‑nss‑*`, `nss‑firmware‑ipq807x`.
|
||
|
||
## Key Decisions Supporting Architecture
|
||
|
||
- Use separate FastAPI for backend and Vue for the console.
|
||
- Replace fragile patch scripts with formal `.patch` files and Git
|
||
apply.
|
||
- Adopt a single JSON‑Schema for configuration, driving both Pydantic
|
||
types on the backend and TypeScript types for the front‑end.
|
||
- Lock Docker image digest, Git commit SHA, and the `uv.lock`
|
||
to ensure deterministic builds.
|
||
- Store credentials securely in Vaultwarden.
|
||
|
||
*All architecture and decision points are derived from the project
|
||
memorandum and associated decisions documents.* |