Commit Graph
12 Commits
Author SHA1 Message Date
mrcharles 9042f99ea6 REPORT: phase 2 status — skeleton works, gaps and next chunk listed
Records what the skeleton does (config, routing, single-shot loop, intake,
gated bash, REPORT writeback, test coverage), the one missing input for the
live MVP demo (HARNESS_LITELLM_KEY), the stubbed items (redmine notes,
budget gate, bw refs, streaming/resume, session persistence), and the
ordered phase 3 work.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-28 19:21:43 -05:00
mrcharles 62d3781d71 harness: single-shot conductor + CLI with MVP demo path
`harness once` runs one bounded iteration (intake -> routing -> bounded turn
-> REPORT) then exits, so callers chain it without a daemon. The bounded
turn loops request -> tool calls -> results up to max_rounds; gate denials
feed back to the model and are counted instead of failing the turn.
--dry-run prints the plan (task, resolved model, tool bounds) and makes zero
LLM calls; --demo runs the [demo] issue ("tell me about yourself" through
LiteLLM -> GLM self-description as the REPORT), the MVP acceptance bar.
Distinct exit codes for config/usage, intake, and llm failures. Ships
harness.toml.example (scope query, tier map, allow-lists); real configs are
gitignored. Loop tests run end-to-end against a scripted fake OpenAI server:
demo turn, dry-run zero-call, tool round-trip, denial counting, round limit,
and error-class mapping.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-28 19:21:04 -05:00
mrcharles aefa73aa90 harness: LiteLLM client, Redmine intake, REPORT writeback, gated bash tool
OpenAI-compatible chat client for the LiteLLM proxy (base_url normalization,
Bearer auth, retry/backoff on 429/5xx/transport, usage accounting) - stdlib
http only. Intake lists issues in scope from /issues.json with the task
class read from a configurable custom field. Writeback lands each turn as
REPORT-<vertical>-<task>-<ts>.md plus REPORT-latest.md (atomic rename) with
model/tier/token telemetry. The bash tool ports maki's permission semantics
without tree-sitter: segment-by-segment compound-command checks, deny beats
allow, word-boundary "cmd *" matching, $()/backtick/subshell denied, output
truncation, per-command timeout with process-group cleanup.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-28 19:20:57 -05:00
mrcharles 591d345371 harness: config layer + model routing v0 (tier map, no heuristics)
harness.toml loading via a stdlib-only TOML subset parser (tables, bare
keys, strings/ints/bools, multi-line arrays; anything richer fails loudly).
Secrets are refs only (env:/file:/literal:, bw: reserved) and are redacted
from every error path. Model routing v0: static class -> tier alias ->
concrete model map per the DESIGN model-selection layer; requests carry the
resolved concrete model and unknown classes fail hard so routing stays
auditable. Table-driven tests cover the parser, validation, key refs, and
routing decisions.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-28 19:20:51 -05:00
mrcharles a1623e141e Porting notes: maki (bash permission scopes, token reduction, subagent tiers)
Maps the maki reference to the harness build: tree-sitter scope extraction
and the 4-way rule matcher for the permission gate, index/tool_search token
reduction, weak/medium/strong subagent tiers with model clamping, and the
headless spawn model that the conductor loop follows. Gotchas preserved:
headless prompt==deny for complex bash, matcher suffix order, deny-exact vs
allow-broad asymmetry, symlink-aware path checks.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-28 19:20:47 -05:00
mrcharles b69d387203 DESIGN: MVP demo bar + model selection layer (tier map, LiteLLM aliases, auto-pick v1) 2026-08-28 18:58:49 -05:00
mrcharles a6068100d0 Porting notes: crush (MCP via go-sdk, session model, skip-list) 2026-08-28 18:56:20 -05:00
mrcharles 54c64b594b Add verbatim AGPLv3 LICENSE + README 2026-08-28 18:52:58 -05:00
mrcharles e53398ea36 DESIGN: Go-only toolchain policy; separate-CLI tooling architecture 2026-08-28 18:48:41 -05:00
mrcharles 162ecc38c5 DESIGN: verticals first-class, SoR-only interaction layer 2026-08-28 18:45:45 -05:00
mrcharles 518effbadc DESIGN: crush feature-parity target per Charles 2026-08-28 18:45:29 -05:00
mrcharles a0eb99b3fb MOPAC harness v0 spec: headless Go conductor loop, tool ports, LiteLLM-first 2026-08-28 18:43:23 -05:00