Skip to content

design-15: line_uuid, per-line users, chain recognition, Sub-Store integration - #2

Merged
lr00rl merged 2 commits into
mainfrom
feat/design-15-line-uuid-chain-users
Jul 22, 2026
Merged

design-15: line_uuid, per-line users, chain recognition, Sub-Store integration#2
lr00rl merged 2 commits into
mainfrom
feat/design-15-line-uuid-chain-users

Conversation

@lr00rl

@lr00rl lr00rl commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Design-15 decision record + sidecar metadata contract v2 for the vpn-core deep-optimization program (operator review 2026-07-17).

  • D1 control-plane line_uuid per line, persisted line_hash_id ↔ line_uuid mapping
  • D2 sidecar /etc/sing-box/lattice-metadata.json schema v2 (+ reserved in-config _lattice key for a future fork); stock sing-box strict parsing re-verified against upstream source (v1.11.15 / v1.13.14 / v1.14.0-alpha all reject unknown fields)
  • D3 dual-track per-line user write path (adopted sb user add/del first, managed render second), unique per-user name rule
  • D4 Sub-Store stays a separate companion plugin: preview + opt-in persisted endpoint + debounced auto-sync
  • D5 merge of Sub-Store into vpn-core explicitly rejected (recorded)

Contract artifacts

  • docs/contracts/lattice-singbox-metadata-v2.schema.json (JSON Schema 2020-12)
  • 5 fixtures; validated locally with python-jsonschema (all expectations met)

Verification

  • fixtures x schema: valid-full ✅ valid-minimal ✅ legacy-v1 rejected (upgrades on read) ✅ two invalid rejected ✅

Refs: design-09, design-12, design-14, ADR-001.

…on, Sub-Store integration

Decision record for the 2026-07-17 operator review:
- D1 control-plane line_uuid with persisted line_hash_id mapping
- D2 sidecar metadata contract v2 (+ reserved in-config key for a future fork);
  stock sing-box strict parsing verified against upstream source
- D3 dual-track per-line user write path, adopted-first, unique user name rule
- D4 Sub-Store stays a separate companion: preview, persisted endpoint, auto-sync
- D5 plugin merge explicitly rejected

Includes docs/contracts/lattice-singbox-metadata-v2.schema.json with
valid/invalid fixtures (validated with Draft 2020-12).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant