refactor: per-feature operation modules so features can land in parallel
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 12/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- desktop, developer-experience
Direzione di ricerca
This is design work spanning src/app.rs, src/editor_operations.rs, src/mcp/tools.rs and src/mcp_editor_tests.rs, and it is meant to be planned and reviewed before any code. Start by reading move_ui.rs and move_mcp_tests.rs to see the per-feature pattern the issue wants to generalise, then the central dispatch in apply_operation_guarded. Done means a reviewed plan, not a patch; a newcomer should wait for maintainer direction.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Every user-facing feature edits the same central files, so independent PRs always conflict and each rebase needs hand composition and re-review (Face, curves and Move all conflicted in these files on 2026-10-15/16):
| File | Role every feature touches |
|---|---|
src/app.rs (~4.9k lines) |
editor state, guards, apply_operation_guarded, menus, shortcuts, panels, inspection, large test module |
src/editor_operations.rs |
Operation enum and hardcoded TOOL_NAMES: [&str; N] |
src/mcp/tools.rs |
central parse_request match, catalog, annotation list |
src/mcp_editor_tests.rs (~4.8k lines) |
single protocol test file |
Tool counts are also written as prose ("twenty-eight tools") in README, .project-docs/mcp.md and an app.rs assertion, so unrelated features conflict on docs.
Goal
A feature can be added mostly in its own module(s) with only small, append-only touches to shared dispatch, so external contributors and agents can work in parallel under the issue-claim and draft-PR workflow.
Proposed direction (to be planned and reviewed before code)
- Per-feature operation modules: each feature declares its typed operation(s), guard requirements, MCP tool schema and parser, inspection fragment and native UI hooks.
move_ui.rs/move_mcp_tests.rsare the seed of this pattern. - Derived catalog:
TOOL_NAMESand the MCP catalog are built from registered features; docs reference a generated tool table instead of literal counts. - Split
app.rs(shell/layout, guards and dispatch, menus/shortcuts, panels) andmcp_editor_tests.rs(per feature). - Contributor docs: area map and an "adding a feature" guide separated from verification evidence logs.
Acceptance
- Behavior-neutral: every existing unit, Editor protocol, SDK and headless GPU test passes unchanged except for moves; MCP schemas byte-identical (snapshot test) unless a change is intended and reviewed.
- Native UI and MCP still dispatch the same typed operations through the same guards (drafts/commit_pending, modal, close, dirty scene, scene token, Move busy).
- A demonstration that adding a new tool touches only its module plus append-only registration.
- Landed as a reviewed PR series, each PR atomic and CI green.
Sequenced after the Move PR (#77) and before Rotate/Scale (#34, #35, #36), which will be the first features built on it.
- Lingua principale
- Rust
- Stelle
- 4
- Fork
- 2
- Merge medio
- 7h 53m
- PR unite (30g)
- 126
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cristim/AztecCraft
-
area/ui-parity effort/s impact/many priority/p3 severity/low triaged type/bug urgency/this-quarter
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cristim/AztecCraft#172 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area/selection effort/s impact/many priority/p3 severity/low triaged type/bug urgency/this-quarter
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
cristim/AztecCraft#168 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
cristim/AztecCraft#253 ·
I maintainer di solito rispondono entro 1 giorno
-
area/mcp effort/s impact/few priority/p2 severity/medium triaged type/feature urgency/this-quarter
Difficoltà 4/5 1-2 giorni Idoneità per principianti 53/100
cristim/AztecCraft#216 ·
I maintainer di solito rispondono entro 1 giorno
-
area/rendering area/uv effort/xl epic impact/many priority/p2 severity/medium triaged type/feature urgency/eventually
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
cristim/AztecCraft#202 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cristim/AztecCraft
Issue simili
-
bug easy good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
lacs-project/sysknife#659 ·
I maintainer di solito rispondono entro 2 giorni
-
E_FIT_INPUT_MISSING (mixture overrides): the message says ferx-r bundles lack mixture_overridesApertaP3
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Document multi-value claims with rowBoundaries operator:in (and their per-record application)Apertadocumentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
registrystack/registry-stack#2431 ·
I maintainer di solito rispondono entro 1 giorno
-
contribution
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
farion1231/cc-switch#8863 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno