## Cleanup Notes ~ May 6, 2026

This repository currently mixes multiple partially finished workstreams. The
goal is to recover to a clean, reviewable git state with focused commits so
normal development can continue.

## Scope and constraints

- `TODO.md` is long-horizon context and is out of scope for this cleanup pass.
- `redMCP/` is actively used on this machine; do not delete files in that tree
  and do not stop running `redMCP` processes during cleanup.
- `redMCP/startProd.sh` is a local convenience script and is intentionally not a
  project artifact for this cleanup. Ignore it.
- Use `plugins/redmine_contacts_helpdesk/LOCAL_CHANGELOG.md` as a primary anchor
  for reconstructing intent and grouping related changes.

## Recovered change groups

The current dirty tree appears to contain these distinct units:

1. Helpdesk issue API `include=helpdesk` patch and docs/manifest.
2. Post-import automation and validator/worker hardening.
3. Semantic index service, deployment assets, tests, and runbooks.
4. redMCP feature expansion (HTTP handler/server, client/dispatcher updates,
   tests, docs).
5. Skill metadata/docs under `skills/redmine-communicator/`.

## Working checklist

- [x] Inventory all modified and untracked files.
- [x] Identify likely project groupings for clean commits.
- [x] Confirm `LOCAL_CHANGELOG.md` aligns with Helpdesk API patch files.
- [x] Stage and commit Helpdesk API patch as a focused unit.
- [x] Stage and commit post-import automation as a focused unit.
- [x] Stage and commit semantic index files as a focused unit.
- [x] Stage and commit redMCP feature updates as a focused unit.
- [x] Stage and commit redmine-communicator skill files (optional split).
- [x] Run targeted syntax/tests for each committed unit.
- [x] Confirm final worktree state and note any intentionally uncommitted files.

## Cleanup result

Committed units:

- `fba494d` Add Helpdesk issue API include serializer
- `faad708` Automate post-import refresh and validation workflow
- `b305544` Add semantic-index service, deployment assets, and tests
- `4c931ba` Expand redMCP safe issue operations and HTTP handling
- `42fc831` Add redmine-communicator skill docs and setup tooling
- `def9084` Handoff notes for next agent/workflow
- `22c8e91` Sanitize noisy MCP text fields by default
- `a7d23cd` Resolve human project names in MCP project_id args

Intentionally untracked local files:

- `redMCP/startProd.sh`
- `roadmap/`

Recent validation run for redMCP changes:

- `php -l app/McpDispatcher.php`
- `php -l app/McpEnvironment.php`
- `php -l app/mcp-http-router.php`
- `php -l bin/redmcp-server.php`
- `php -l bin/test-redmine-structure.php`
- `php bin/test-redmine-structure.php` (`OK 90 assertions`)

## Handoff notes for next session

- Gitea private repo is created and current history was pushed.
- Monorepo approach is acceptable; keep path-scoped commits and deployment-unit
  boundaries.
- Production semantic-index target is a separate host from production Redmine.
- redMCP improvement focus is operational quality:
  - useful error/access logging without console spam,
  - easy background operation,
  - simple install/remove/status workflow.
- A single fixed systemd service is not preferred for redMCP because multiple
  concurrent identities/API keys may be needed. Prefer an instance model.
- If systemd is used for redMCP, implement a simple operator script with
  `install`, `remove`, and `status` flows.
- Production plugin rollout milestone completed:
  - `deploy_redmine_prod_patches.sh` was used to deploy plugin patches on
    production.
  - Upload bundle used: `dist/redmine-prod-plugin-rollout-20260506T210606Z.tar.gz`.
  - User-reported outcome: production deploy completed and appears to be
    working.

## Notes to keep in mind

- Do not commit secrets (`.env`, tokens, credentials).
- `semantic_index/search.sh.md` looks like conversational scratch text; treat as
  optional/non-essential unless deliberately kept.
- If a file belongs to multiple units, prefer smallest safe unit first and
  document rationale in commit messages.
