-
-
Notifications
You must be signed in to change notification settings - Fork 10
Contributing and Issues
Mochi is still in active development, so contributions should prioritize stability, clarity, and small reviewable changes.
Read:
- the repository README
- Project Philosophy
- Interaction Core
- Development and Testing
REGRESSION_WATCHLIST.md
If your change affects input, animation state, dragging, context-menu behavior, or asset loading, assume it can create regressions outside the exact feature being edited.
Good pull requests are usually narrow:
- fix one reproducible bug
- replace one animation state
- improve one interaction path
- add one regression test
- improve one small piece of documentation
- improve packaging validation
Avoid combining unrelated work such as:
new drag system
+ repository cleanup
+ UI redesign
+ asset migration
+ state-machine rewrite
Even individually reasonable changes become difficult to validate when bundled together.
Useful issue labels/categories include:
bugenhancementanimationinputstate-machinerenderinguialpha-blockerpolishdocs
The exact label set may evolve, but issues should clearly distinguish release-blocking reliability problems from optional polish.
Use for problems that prevent normal public-alpha use, including:
- crash
- input freeze
- context menu permanently intercepting input
- Mochi stuck in an invalid state
- pickup/drop fundamentally broken
- package fails to launch/install
- serious unexpected permission requirement
A major interaction is broken, but Mochi remains generally usable.
Noticeable regression or behavior inconsistency that should be fixed but does not block basic use.
Visual feel, timing, minor animation quality, or optional UX improvements.
## 🌱 Summary
Briefly describe the issue.
## 🧩 Area
- [ ] Animation
- [ ] Input / mouse interaction
- [ ] Drag / pickup / put-down
- [ ] State machine
- [ ] Context menu
- [ ] Sleep / wake
- [ ] Walking
- [ ] Emotes
- [ ] Rendering / transparency
- [ ] Audio
- [ ] UI / overlay
- [ ] Packaging / installation
- [ ] Performance
- [ ] Other
## 🚨 Priority
- [ ] Alpha blocker
- [ ] High
- [ ] Medium
- [ ] Low / polish
## 🔁 Steps to reproduce
1.
2.
3.
## ✅ Expected behavior
What should Mochi do?
## ❌ Actual behavior
What happens instead?
## 🧠 State / interaction sequence
```text
IDLE
→ ...
→ FAILUREOS / distro: Desktop environment: Wayland / X11 / XWayland: Mochi version / commit: Python version:
- root cause understood
- expected behavior works consistently
- Mochi remains interactable
- regression test added/updated
- full test suite passes
- live test passes when applicable
## Why interaction sequences matter
Mochi bugs are often lifecycle bugs rather than isolated visual bugs.
This:
```text
IDLE → RIGHT CLICK → WALK → DRAG → INPUT FREEZE
is usually more diagnostic than:
Drag sometimes does not work.
Include the sequence whenever possible.
Attach visual evidence for:
- checkerboard backgrounds
- matte/halo artifacts
- eye inconsistencies
- loop restart pops
- window placement problems
- context menu stuck on screen
For freeze/state bugs, include debug logs if available.
A runtime PR should explain:
- what was broken or missing
- the confirmed cause or design need
- the smallest implementation used
- tests added/updated
- manual/live scenarios tested
- any remaining uncertainty
Do not describe a change as fully verified if compositor-level interaction was not actually tested.
For interaction-related changes, verify that the fix does not break:
- single-click squish
- double-click heart
- pickup → drag → put-down
- context menu
- Walk
- Sleep/Wake
- Emote
- Computer/typing
- idle recovery
For art changes, verify:
- transparency
- no gray matte
- canonical eyes
- bottom-center alignment
- nearest-neighbor rendering
- no legacy art
Do not overwrite the entire Mochi asset tree to add one animation.
Preferred flow:
- identify the exact state being replaced
- preserve current working art for other states
- add/replace only relevant files
- update the manifest
- run asset integrity tests
- build/audit package
- preview visually
AI-assisted code or art is acceptable as part of the development process, but generated output should be treated like any other contribution:
- inspect it
- understand the change
- test it
- document relevant limitations
- do not merge generated assets without production QA
AI output does not reduce the acceptance standard.
Mochi uses different tools for different layers of work:
- GitHub Issues — concrete bugs, regressions, and implementation tasks
- Trello — sprint planning and prioritization
- Git commits / PRs — actual implementation history
- Wiki/docs — durable knowledge and architecture guidance
Avoid duplicating entire issue descriptions in planning tools. Link between them instead.
The best contribution is not necessarily the biggest one.
A small fix that keeps Mochi responsive across every interaction is more valuable than a large feature that destabilizes the creature core.
- Home
- Getting Started
- Current Development Status
- Architecture and Tech Stack
- Interaction Core
- Animation and Art Pipeline
- Development and Testing
- Troubleshooting and Regressions
- Contributing and Issues
- Roadmap and Public Alpha
- Project Philosophy
Repository: https://github.com/miflow13/mochi-desktop
Issues: https://github.com/miflow13/mochi-desktop/issues