Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Generalize Move transactions into kind-based manipulation (Move/Rotate/Scale)

Open
#34 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
desktop

Research direction

Start from the current Move transaction code and MCP tool definitions that expose set_active_tool, begin_move, update_move and finish_move, plus their existing MCP tests. Read .project-docs/mcp.md and its coverage inventory to see where tool schemas and protocol tests are documented. The work is done when those Move-specific names become Manipulation* with a ManipulationKind enum, one tool per behavior, typed kind/parameter errors, synchronized schemas, and the same tests ported. Confirm the prerequisite Move landed and re-read merged hunks before starting.

Written by the indexing model from the issue text.

Description

area/mcp area/viewport in-progress type/feature

Problem

The Move transaction and MCP tools are Move-specific; Rotate and Scale need shared guards.

Current behavior

World-axis Move (landing now) exposes set_active_tool, begin_move, update_move, finish_move.

Expected behavior

Rename MoveId/MoveError to Manipulation*, add a ManipulationKind enum, and replace *_move with begin_manipulation{kind,...}, update_manipulation, finish_manipulation in one atomic commit after every Move MCP test is ported. One tool per behavior, never two.

Acceptance criteria

  • Schema uses oneOf with additionalProperties false; kind/parameter mismatch is a typed error.
  • Prerequisite: Move landed on main and merged hunks re-read.
  • Unimplemented controls stay visibly disabled with a reason; no dummy tools or controls.
  • MCP coverage in the same change: implemented operations and relevant state exposed with synchronized tool schemas, real Editor protocol tests (scene token, draft, modal, close and busy guards) and updates to .project-docs/mcp.md and its coverage inventory.
  • Native visual check of the real window (screenshot reviewed), not only headless tests.
  • Tests cover malformed, empty, boundary and failure cases; failed operations preserve the baseline.
  • No parity claim without comparison against the pinned Maya reference (#5); unverified constants are documented as provisional.
Dominant language
Rust
Stars
4
Forks
2
Avg merge
2h 28m
Merged PRs (30d)
76

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cristim/AztecCraft

All issues in cristim/AztecCraft

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.