90 lines
4.3 KiB
Markdown
90 lines
4.3 KiB
Markdown
---
|
||
title: Global Development Workflows
|
||
type: curated
|
||
permalink: main/global/curated/7aee455b-24cc-4008-bdaf-443721e6f939/global-development-workflows
|
||
stable_id: e4fc35f2-1606-4b79-9c1e-367edeea97d0
|
||
scope: global
|
||
project_id: null
|
||
workspace_type: global
|
||
usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998
|
||
preference_context: global
|
||
document_type: workflows
|
||
revision: 1
|
||
source_memory_ids:
|
||
- d8161df6-3159-46c9-9402-c5ab30d1436e
|
||
source_checkpoint_ids: []
|
||
source_file_ids: []
|
||
source_git_commit: null
|
||
source_git_commits: []
|
||
source_agent_sync_ids: []
|
||
model_connection: Sub2API
|
||
model_name: git-restore
|
||
source_count: 90
|
||
source_revisions:
|
||
memory:5ed86f53-b53e-4534-8e51-d3a010069d5e: '2'
|
||
memory:105b328f-4bda-4641-90a7-7282ef156316: '2'
|
||
memory:3f91189b-11a1-45bb-8357-4f413dc1609d: '1'
|
||
source_dispositions:
|
||
processed: 90
|
||
unchanged: 0
|
||
unsupported: 0
|
||
skipped: 0
|
||
cited_source_ids:
|
||
- curated_baseline:e4fc35f2-1606-4b79-9c1e-367edeea97d0
|
||
- cross_workspace_memory:df065dbf-85de-4f2b-bbb1-5d8b115de08c
|
||
- cross_workspace_memory:9f00df57-ec45-4d63-9da6-9b2fb16c2d6b
|
||
- cross_workspace_memory:0f19c98d-0d69-4702-af18-e75edae6370a
|
||
- cross_workspace_memory:1dfbc803-3390-4cc7-9a17-6bf86c9bb165
|
||
- cross_workspace_memory:6e63a053-fea4-4785-984c-b61fab08810a
|
||
- cross_workspace_memory:dd093dd7-71be-46a2-bcb1-4a87c3d4b9ab
|
||
- cross_workspace_memory:dc70f54c-8e29-4834-a5c1-a63bc9ac9e68
|
||
- cross_workspace_memory:e1b8d25d-f638-4fbe-8a8d-0eda8f2d7d46
|
||
- cross_workspace_memory:6b129c78-a412-41e9-af9f-63ab071e03d9
|
||
- cross_workspace_memory:5924806e-b234-49f7-b971-3c844fd07cf3
|
||
- cross_workspace_memory:2bff13bb-b5cc-40fd-8b2f-774f5c6b9dba
|
||
- cross_workspace_memory:61e30ee3-0e26-4d64-b00e-f77bc3a3fd60
|
||
- memory:5ed86f53-b53e-4534-8e51-d3a010069d5e
|
||
- memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
job_cited_source_ids:
|
||
- curated_baseline:e4fc35f2-1606-4b79-9c1e-367edeea97d0
|
||
conflicts: []
|
||
supersedes: []
|
||
preferences: []
|
||
source_cursor: 571
|
||
source_hash: b84354eb37ab531c5be3076d5c3f130399f235bc33c8cf9453cbfcecae042e49
|
||
prompt_version: 2026-08-12.3
|
||
schema_version: '3'
|
||
curation_job_id: null
|
||
created_at: '2026-08-08T07:55:35.371609+00:00'
|
||
updated_at: '2026-09-23T14:50:02.231152+00:00'
|
||
tags:
|
||
- workflows
|
||
- global
|
||
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
||
---
|
||
|
||
# Global Development Workflow
|
||
|
||
1. **Project memory & Git process**
|
||
- All notes are kept in `aidocs/project_context.md`. `aidocs/` is in `.gitignore` and never committed.
|
||
- After completing a task, perform: delete temporary files, debug logs, unused code → update memory (what/why/validation/issues/next steps) → check `.gitignore` → commit with `type: 中文一句话描述`. Default is *commit only*; push only when explicitly requested.
|
||
|
||
2. **Credential Retrieval Workflow**
|
||
- Before any login, SSH, database or API call, query Vaultwarden. If exactly one match, use it directly. If multiple or none, prompt for selection or manual input.
|
||
- When adding or updating credentials, immediately write them to the password vault; memory records only the entry name, purpose, and usage method.
|
||
|
||
3. **Technical Notes**
|
||
- **FastAPI async** – Never perform blocking I/O inside `async def`; change to normal `def` so FastAPI handles it in a thread‑pool.
|
||
- **PowerShell JSON** – Write JSON to a temporary file and send with `curl.exe --data-binary @file` to preserve quotes.
|
||
- **Large‑table SQL** – Add indexes on frequently queried text columns, raise DB `read/write_timeout` along with client `upload_timeout`/`run_timeout`.
|
||
- **Docker exec timeout** – Obtain raw socket and call `socket.settimeout(None)` to disable default 3 s timeout.
|
||
- **Docker Hub proxy** – Configure Docker Desktop to **Manual** with HTTP/HTTPS pointing to `http://127.0.0.1:7897` and restart Docker.
|
||
|
||
4. **Version & Deployment Rules**
|
||
- For OTA, always use the official release version matching the device's ABI and keep the device’s firmware tightly coupled to the release channel.
|
||
- Do not flash generic RK3568 images; use the project‑provided U‑Boot, DTB and RTL8367S/DSA configurations.
|
||
|
||
5. **Testing & Validation**
|
||
- Regression tests should use real timestamps and ensure that the JSON output from `memrelay://capabilities` rendered via `jsonable_encoder` matches the raw resource structure.
|
||
- FastAPI handlers that perform blocking I/O should be switched to synchronous functions. |