Files
cubelinux-2/RESUME-20260820-hashmap.md
T
CUBELinux-2andHermes Agent 7b0cf6fda5 chore(this session): land all 4 tasks — fixes, cube-bench run, cubecli extract, check gate passed
1. Fixes applied this session:
   - cubesys/src/lib.rs:136 — `store_code_cell` annotated with
     `#[allow(clippy::too_many_arguments)]` (8 args is inherent to the
     record-codec bridge; clippy -D warnings gate).
   - cubesys/src/store.rs:699 — `put_code_cell` annotated identically.
   - cubesys/src/commands.rs:819 — `cell.links().iter().copied().collect()`
     replaced with `cell.links().to_vec()`.
   - cubesys/src/commands.rs:991 — `while let Some(tok) = it.next()` loop
     rewritten as direct `for tok in it`.
   - cubesys/src/commands.rs:1187 — ls handler uses `parse_path` (not
     `path_to_czyx`) for directory ACL gate; derived prefix coordinate
     matches NullSpace acl_bucket convention.

2. cube-bench executed: ./check bench stage passes with correctness
   assertions on every measurement path (100k puts, 100k gets, crypto
   benchmarks, VM dispatch, session commands, concurrent RwLock stress).

3. cubecli extracted: standalone crate at cubecli/ with its own
   Cargo.toml + src/main.rs; cube binary unchanged (same CLI surface,
   demo, commands); cubesys/Cargo.toml no longer declares the `cube`
   bin; workspace members updated.

4. ./check gate: fmt + tests + clippy -D warnings all green;
   `./check bench` also passes.

Verification: ./check (full gate) + ./check bench both PASS.

Co-Authored-By: Hermes Agent
2026-08-20 18:08:19 -04:00

1.6 KiB

RESUME POINT — HashBackend (HashMap<u32, Vec>) work, 2026-08-20

WHAT WAS DONE THIS SESSION

  1. Scrapbed cube-store-raw/ and cube-fuse-proxy/ — wrong-architecture duplicates that broke the build (103 errors). They referenced a non-existent backend plan.
  2. Cleaned Cargo.toml — removed the two stale members.
  3. Added 7 HashBackend (HashMap) trait-level tests to cubestore/src/lib.rs:
    • put/get/delete roundtrip
    • overwrite replaces value
    • keys() returns sorted order
    • scan_prefix filters C/Z/Y correctly
    • empty backend edge case
    • null coord (0,0,0,0) is a valid distinct key
    • multiple backends are independent
  4. Cleaned up _assert_backend_assoc workaround + dead HashMap import in record_codec — no longer needed now that HashBackend has real tests.
  5. Workspace green: 15/15 cubestore tests pass, cargo check clean.

CURRENT STATE

  • Branch: feat/os-kernel-in-cube (HEAD b97efa2)
  • cubestore has 15 tests: 8 original + 7 new HashMap/HashBackend tests
  • No duplicate crates in workspace

NEXT STEPS (pick one)

  1. Wire HashBackend into cubefs-mount as the default in-memory backend (already wired via --seed; verify it mounts and serves reads/writes without a daemon)
  2. Benchmark HashBackend vs FileBackedStore — put/get latency to establish the in-memory baseline
  3. Continue reading the spec from CUBELinux.txt (offset ~360+) — the store trait and in-memory backend section, then implement the next piece
  4. Add a small CLI smoke test that exercises HashBackend directly (put/get/delete) without going through CubeStore