Skip to content

refactor: remove 4425 lines of migrated duplicates - #517

Merged
gHashTag merged 8 commits into
mainfrom
cleanup/remove-migrated-duplicates
Apr 19, 2026
Merged

gHashTag merged 8 commits into
mainfrom
cleanup/remove-migrated-duplicates

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Summary

Removes 17 files (4425 lines) that were migrated to dedicated repositories.

What was deleted

Directory Files Destination
src/bench/ 9 files (66KB IGLA benchmarks) trinity-training/src/bench/
src/vsa_hybrid/ 8 files (79KB ternary ops) zig-golden-float/src/ternary/
src/test_gen_core.zig 1 file (outdated) Removed

Why

These duplicates increase monolith size and build time. They are now maintained in their specialized repositories:

  • trinity-training — ML/обучение HSLM
  • zig-golden-float — Числовое ядро (GF16, TF3, VSA, JIT)

Impact

  • Reduces trinity monolith size
  • Faster builds (fewer files to compile)
  • Clearer separation of concerns
  • No functionality loss — all code exists in dedicated repos

Checklist

  • Files verified to exist in destination repos
  • No external imports of deleted modules found
  • vsa_hybrid/ only used internally (self-referential)
  • test_gen_core.zig imported non-existent path (outdated)

gHashTag and others added 8 commits April 19, 2026 12:50
…534

Updated 4 files to import from ../math_bridge.zig:
- src/gravity/math_formulas.zig
- src/gravity/einstein_bridge.zig
- src/blind_spot/unified_framework.zig
- src/brain/microglia.zig (comment already correct)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Удалены файлы, перенесённые в zig-golden-float и trinity-training:
- JIT, бенчмарки, загрузчики данных (mnist/cifar10)
- bigint, hybrid, packed_trit, packed_vsa
- math/gen_*, formats.zig, constants.zig
- cifar-10-python.tar.gz (35 MB)

Файлы уже существуют в соответствующих репозиториях.
- Convert `build.zig` → `build.zig.tri` (VIBEE spec format)
- Add `golden_float` package dependency via zig-pkg
- Remove legacy .bak2 files from brain/ and storm/
Extract Knowledge Graph components from Trinity:
- knowledge_graph.zig (26KB) — RDF triples storage
- kg_server.zig (57KB) — HTTP API for KG operations
- kg_cli.zig (19KB) — CLI for KG management

Total: ~102KB extracted from monolith.

Добавлены:
- build.zig.zon — с зависимостью от zig-golden-float
- README.md — документация репозитория
- LICENSE — MIT лицензия

Разгружка монолита: часть плана экосистемы.
…pository

- Extract sequence_hdc.zig (510KB) to zig-hdc
- Extract vsa.zig, vsa_jit.zig to zig-hdc
- Extract src/vsa/ (27 files) to zig-hdc
- Remove shakespeare_extended.txt (not needed in monolith)
- Add zig-hdc as dependency in build.zig.zon

Разгружаем монолит на 510KB + 27 файлов VSA.

Русский перевод описания изменений.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add zig-hdc (Hyperdimensional Computing) to build.zig.zon
- zig-hdc provides sequence_hdc, VSA, and JIT compilation

Русский перевод описания изменений.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Вынесены в отдельный репозиторий zig-knowledge-graph:
- knowledge_graph.zig (26KB)
- kg_server.zig (57KB)
- kg_cli.zig (19KB)

Total: ~102KB удалено из монолита.

Разгрузка монолита продолжается.
Deleted 17 files (4425 lines) that were migrated to dedicated repos:

- src/bench/ (9 files, 66KB IGLA benchmarks) → trinity-training/src/bench/
- src/vsa_hybrid/ (8 files, 79KB ternary operations) → zig-golden-float/src/ternary/
- src/test_gen_core.zig (21 lines, outdated) → removed

These files are now maintained in their specialized repositories,
reducing trinity monolith size and build time.

Миграция дубликатов в специализированные репозитории.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit 42490a2 into main Apr 19, 2026
13 of 24 checks passed
gHashTag added a commit that referenced this pull request Oct 4, 2026
… that test nothing (#1333)

* fix(brain): EventBus.poll applies max_events after the since filter

poll(since, allocator, max_events) scanned only the first max_events
buffered events and then filtered them by `since`. Whenever those oldest
events were at or before `since`, it returned nothing even though newer
events matched: with three old events and two new ones,
poll(boundary, a, 1) returned 0 events instead of 1.

The scan now walks the whole buffer and stops once max_events events
have passed the filter, which is what the doc comment already promised
("Returns events with timestamp > since ... Limited by max_events").
poll(0, a, n) is unchanged.

Found by the new `tri stress --health` probe limit-after-filter. A module
test pins it: it fails on the old code (0 events) and passes on this one.

Refs #1326

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(tri): tri stress --health runs brain self-check probes

`tri stress --health` was a stub that printed "not implemented yet" and
no Score: line, so the brain-ci Brain Health Check failed on every run
as "not measured".

It now runs 17 probes against the three brain regions linked into tri:
basal_ganglia (8: claim, refuse, heartbeat, complete, abandon, TTL
expiry, shard accounting, an 8-thread one-winner-per-task race),
reticular_formation (5: string ownership, FIFO order, since filter,
limit-after-filter, bounded ring) and locus_coeruleus (4: exponential,
capped and monotone, linear and constant, jitter bounds).

Each probe uses fresh private instances (never the process globals) and
its own leak-checking allocator; a leak fails the probe. The output
lists every probe as PASS or FAIL with its claim, then one plain-ASCII
line

  Score: <n.n>/100 (<passed> of <total> probes passed)

where n = 100 * passed / total, then "Status: HEALTHY" or
"Status: UNHEALTHY". The command exits 1 if any probe failed. Nothing
in the score is a constant: removing the basal_ganglia live-claim check,
the locus_coeruleus cap or the poll fix drops it to 88.2, 82.4 and 94.1.

Not covered: other src/brain regions (not linked into tri), load and
soak behaviour. The other stress modes still only print a notice.

Refs #1326

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ci): brain health step reads the number right after Score:

The Brain Health Check parsed the first number anywhere on the Score:
line, so a colour escape such as ESC[32m before "Score:" read as 32.
It now reads only the number directly after "Score:" on the first
Score: line, integer or decimal.

The HEALTHY check used `grep -q "HEALTHY"`, which also matches
"UNHEALTHY", so every run with a Status line reported healthy. It now
matches the whole line "Status: HEALTHY".

A run above the threshold with failed probes now gets a warning
annotation instead of passing silently. The threshold (80), the
not-measured and unparseable branches, and `|| true` are unchanged.

The comment block describes what the score measures and states that the
CLI Smoke Test, which fails on any failed probe, only runs after
brain-unit, brain-integration and brain-stress succeed.

Closes #1326

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ci): grant brain-ci the token permission its PR comments need

The repository default GITHUB_TOKEN is read-only and brain-ci.yml had no
permissions block, so "Comment Health on PR" failed with 403 "Resource
not accessible by integration" on the first PR run where the health
check passed (run 37176287100). The same applies to the stress comment
and the Critical State Notification. Those steps were unreachable while
the health check failed first.

Grant contents: read and pull-requests: write at workflow level. A PR
from a fork still receives a read-only token.

Refs #1326

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(brain): stress_test reads claims through the sharded registry

stress_test.zig still read `registry.claims`, the single map the registry
had before it was split into 16 shards, so the file stopped compiling
(13 errors) and test-brain-stress could not run. Count with
Registry.count() and look a claim up in the one shard
Registry.getShardIndex names, under that shard's read lock. The tests
themselves are unchanged: 261/261 pass on zig 0.15.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(brain): metrics_dashboard deinit and overwrite no longer corrupt or leak

Restoring test-brain ran the dashboard's own tests for the first time in
months (integration_test.zig imports the file by path). They found:

- RegionMetrics.deinit freed the alert through raw_metrics.allocator
  after raw_metrics.deinit() had set the map to undefined: a segfault at
  0xaaaa... whenever a region carried an alert. Read the allocator first.
- setMetric/setMetricOwned on an existing key leaked the new key copy and
  the replaced value, because HashMap.put keeps the stored key. Copy the
  key only on first insert and free the replaced value.
- Five tests leaked memory they owned (the singletons collect() creates,
  buffers setMetric copies) and one asserted a 23-byte prefix of a name
  formatAscii truncates to 20 bytes. The assertions now match the code.

test-brain: 151/151 pass, no leaks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(build): restore the brain test steps brain-ci calls

#517 (42490a2) removed test-basal-ganglia, test-reticular-formation,
test-locus-coeruleus, test-brain and test-brain-stress from build.zig while
brain-ci.yml kept calling them, so every Unit Tests leg failed with "no
step named ..." and nothing behind it ran. Point the steps back at the
source files, which were never removed.

Not restored: test-intraparietal (intraparietal_sulcus.zig is stubs around
the hslm library that left this repo and does not compile) and test-hslm
(hslm is tested in gHashTag/trinity-training; no such step ever existed).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ci): brain-ci runs only steps that exist and measure something

- Unit Tests: basal-ganglia, reticular-formation, locus-coeruleus only;
  intraparietal and hslm dropped with the reason in the file.
- Stress: pipefail-safe exit code plus zig's own "N/M tests passed"
  count. A missing count is NOT MEASURED and fails, never 0. The 270/300
  threshold and the hard-coded 100/100 PR table are gone; nothing ever
  produced them.
- CLI Smoke: only `tri stress --health`, no `|| true`. task stats, task
  list, event stats and stress --scan are unimplemented and exit 0.
- Export Brain Metrics job and the --record/--history steps removed: they
  call unimplemented subcommands, and the health job wrote "snapshot
  recorded" whether or not anything was.
- Report shows each job's real result instead of FAIL for skipped; the
  verdict still requires every job to succeed. Weekly artifact name is
  now unique (`with:` never expanded $(date)).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(build): link libc for the state_recovery brain module

captureState() calls std.c.getpid(). macOS links libc implicitly, so
test-brain passed locally, but on ubuntu-latest the integration binary
failed to compile with 'dependency on libc must be explicitly specified'
(brain-ci run 37180861619). A cross-compile for x86_64-linux-gnu
reproduces the error before this change and compiles cleanly after it.

Refs #1331

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ci): brain-ci merge gate fails red instead of skipping

The gate needed brain-health-report without always(), so whenever the
report failed the gate was skipped. A skipped check renders grey, not
red: on #1328 (run 37176676345) the report failed and the Merge Gate
showed skipped. With always() the gate runs and its existing check
fails it for any report result other than success.

Refs #1331

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build(brain): spell out brain test roots so the S01 checker can see them

The capability index (external/t27/tools/trinity_manifest.py) finds build
targets only as `const X = b.addTest(.{ .root_module = b.createModule(.{
.root_source_file = b.path(...) }) })` and `b.step("literal", ...)`. The
helper-built roots and the region-step loop showed up as `test:None` and
hid three steps. Each brain test root and step is now written out, so
every target has a precise name a capability card can own. No test
changes: the same files are compiled with the same imports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build(reproduce): vendor gHashTag/t27@39e06aa0 and measure trinity/brain.regions

The brain test steps this PR restores (test-basal-ganglia,
test-reticular-formation, test-locus-coeruleus, test-brain,
test-brain-stress) and their six src/brain test roots had no S01 card,
so the capability index failed on each as UNASSIGNED_TARGET.
gHashTag/t27#5965 (39e06aa0, Closes gHashTag/t27#5953) adds the card
trinity/brain.regions that owns exactly those eleven targets.

- tools/contracts.py vendor --revision 39e06aa0: external/t27 and the
  lock move from de2a1aca; 76 files (the new card is the 76th). It also
  brings gHashTag/t27#5474: the S01 checker skips build.zig comments and
  counts the vendored copies apart, and the acceptance of mcp.needle-mcp
  and mcp.trinity-mcp becomes zig build -Dci=true && test -x
  zig-out/bin/<name>.
- specs/reproduce/capabilities.t27: trinity/brain.regions is in RUN. The
  profile's test step does not compile its roots, so its five zig build
  test-<region> commands are its only measure in the index.
  mcp.needle-mcp and mcp.trinity-mcp leave KNOWN_BLOCKED: they were
  blocked on steps that exist only in commented-out lines, and their
  new acceptance is the install the profile already makes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build(reproduce): raise the contract-test floor to the 78 that run at t27@39e06aa0

The vendoring of gHashTag/t27@39e06aa0 added one spec test, the
card_is_bound_to_its_package test of specs/trinity/capabilities/
brain.regions.t27; no other vendored spec changed its number of tests.
t27c built at 39e06aa0 with zig 0.16.0 measures 58 specs and 78 tests,
all passing, so a floor left at 77 would let one test vanish unseen.

The other ledgers were re-checked against the new vendor and stand as
they are: the eleven TEST_BLOCKED specs fail with the same first error
each, lotus.t27 still drops 48 top-level tokens, and the two
specs/tools/mcp specs still declare no test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <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