Skip to content

[ponytail] Needs decision: cuts that remove shipped or documented behaviour #127

Description

@devinmlowe

Not implemented until the maintainer decides

Each item below removes or degrades something that is shipped, documented in CLAUDE.md / README.md, or the subject of a recorded decision. The audit flagged them as over-engineering; the call is the maintainer's. Reply on this issue with the items to cut and they become sub-issues.

  • yagni: rollback machinery (src/interfaces/cli/rollback.ts:106, ~380 lines): persisted plan files with a progress marker, 10-file retention, the empty BREAKING_MIGRATIONS refusal, the auto-rollback offer, --rollback / --list-rollbacks / --restore-data. Shipped in 0.4.0 under issue [PRD] engram update --rollback + install-path sanity check #65 / decision Decision: update --rollback: code-only by default or full data restore? #66. The backup directory plus the printed manual recipe would be the whole feature.
  • stdlib: the hand-rolled TOML writer for the Codex host (src/interfaces/cli/hosts.ts:356, ~190 lines). Alternative: print the three-line [mcp_servers.engram] snippet for the user to paste. Degrades engram mcp install codex ([PRD] One-command host registration (engram mcp install) #50).
  • stdlib: the hand-rolled unified diff used only by engram mcp install --dry-run (src/interfaces/cli/hosts.ts:496, ~75 lines). Alternative: print before and after.
  • yagni: the extraction smoke check consolidates real extracted facts into the live database with source='smoke' (src/interfaces/cli/smoke.ts:200, ~60 lines). Alternative: extract and discard. This behaviour is documented in CLAUDE.md.
  • delete: shim-script archaeology in the install-path check (src/interfaces/cli/install-path.ts:86, ~55 lines). It exists for npm shims on Windows; nobody has run it on Windows.
  • yagni: the --json envelope for engram setup (src/interfaces/cli/setup.ts:108, ~50 lines).
  • delete: the --inline-token flag (src/interfaces/cli/hosts.ts:271, ~20 lines), documented under decision Decision: mcp install: write ENGRAM_MCP_TOKEN into host configs or reference the env var? #52.
  • shrink: import "newer-wins" arbitration in src/interfaces/cli/transfer.ts:318 (~120 lines). Alternative: an idempotent re-import skips an existing id.
  • yagni: Rust and Go parsers in src/graph/file-indexer.ts:873 (~60 lines). TS / JS / Python cover every caller in this repo.
  • yagni: the Hermes plugin stdio transport (interfaces/hermes-plugin/provider.py, mcp_client.py, cli.py, config_schema.py, ~889 lines). HTTP is the default, deploy.sh never copies cli.py / config_schema.py, and engram mcp already bridges stdio to HTTP. Issue [hermes-plugin] provider.py replaces a client whose reader thread died without stop() — the still-running node child (model loaded) is orphaned, an exited one is never wait()ed #105 is a bug in this code.
  • yagni: the three bash installers (scripts/install-daemon.sh, install-mcp-daemon.sh, install-visualizer.sh) re-copy need / resolve_node / build_engram / ensure_env_file / health-probe / log-tail (~180 lines). Alternative: one sourced scripts/lib/common.sh.
  • yagni: the three PowerShell installers are the same file modulo label, port and health path (~170 lines). Alternative: one shared .psm1. Nobody can run these here; parse-check only.
  • native: scripts/run-mcp-daemon.ps1 and run-visualizer.ps1 hand-roll a restart loop, rate window and pid files that Task Scheduler's -RestartCount / -RestartInterval already provide (~155 lines). Same Windows caveat.
  • delete: .github/workflows/dependabot-native-label.yml (44 lines) attaches one label; the dependabot group and the CI preflight gate already isolate native modules.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-decisionRemoves a shipped/documented feature; user decidesponytailOver-engineering audit cut (2026-09-20)sub-issueChild task of a parent issue

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions