Skip to content

fragmentation/git + hex publish workflow#1

Merged
systemic-engineer merged 3 commits into
mainfrom
mara/fragmentation-git
Mar 2, 2026
Merged

fragmentation/git + hex publish workflow#1
systemic-engineer merged 3 commits into
mainfrom
mara/fragmentation-git

Conversation

@systemic-engineer

@systemic-engineer systemic-engineer commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • fragmentation/gitwrite(fragment, dir) writes a Fragment to disk as a content-addressed file (SHA-named, under a caller-supplied directory). No opinion about where — the caller decides. TDD arc: red then green.
  • Hex publish workflow — release-triggered CI that runs tests then gleam hex publish --yes. Uses nix-setup + HEXPM_API_KEY mapped from org secret HEX_API_KEY.

Test plan

  • 65 tests passing locally
  • Pre-push hook green (test + format)
  • CI passes on this PR
  • After merge: create a GitHub release (v0.1.0) to trigger first hex publish

🤖 Generated with Claude Code

systemic-engineer and others added 3 commits March 1, 2026 22:12
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Mara <mara@systemic.engineer>
@systemic-engineer systemic-engineer merged commit 4fc3056 into main Mar 2, 2026
1 check passed
systemic-engineer added a commit that referenced this pull request Jun 2, 2026
Tests reference types and behaviours that DON'T compile yet — the
GREEN commit's job is to make them green. Per docs/specs/fragmentation-mcp.md
§3.4 (shard sub-tools), §4 (HamiltonScheduler at the agent altitude),
§9 T2 (scope + acceptance).

What the new tests pin:

1. `ShardId(uuid::Uuid)` newtype — no bare UUIDs cross the wire.
2. `BudgetMb(u64)` newtype — no bare megabytes cross the wire.
3. The four `fragmentation.shard.*` sub-tools (open/status/flush/close)
   dispatch as separate wire callables — refinement #1 from the T1 report.
4. `TWELVE_TOOL_NAMES` becomes `FIFTEEN_TOOL_NAMES` (11 + 4 sub-tools).
   The §3.6 row count is still twelve CATEGORIES; the wire callable count
   is fifteen. Spec §3.6 needs a small upsert in GREEN.
5. `Mcp::dispatch_line` ticks the named shard's `HamiltonScheduler`
   before routing — observable via `tick_count` in `shard.status`.
6. `shard.close` removes the shard; subsequent ops with the same id
   return `ERROR_INVALID_PARAMS`.
7. The binary is now `frgmnt`, not `fragmentation-mcp` (Alex's directive).
8. `ToolRegistry::with_twelve_tools` → `with_default_tools` (it's no
   longer twelve).

The scaffold + binary_stdio integration tests update in lockstep:
scaffold.rs swaps `TWELVE_TOOL_NAMES` for `FIFTEEN_TOOL_NAMES` and
adjusts the `tools/list` count assertion to 15; binary_stdio.rs
renames the binary to `frgmnt` and adds a `shard.open` round-trip.

[substrate-pull:realize] — the shard surface is wire binding; the
capability (FrgmntStore, HamiltonScheduler) lives in the substrate.
The realization is at the right altitude.

GPG: -c commit.gpgsign=false per the brief's signing seam.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant