Canonicalize Hackmode operation and asset state #8

Merged
lost-rob0t merged 3 commits from agent/canonical-operation-asset-protocol into master 2026-08-16 05:09:56 +00:00
lost-rob0t commented 2026-08-16 05:07:48 +00:00 (Migrated from github.com)

Summary

Implements the first dependency-critical slice of #6 on top of the merged monorepo.

Operation state

  • fixes CLOS :allocation :class misuse so operation/asset fields are instance-local
  • adds list-operations, current-operation, operation-status, and registry-open helpers
  • makes an operation path the workspace root and puts its local Tek9 store under <workspace>/.hackmode/
  • adds operation Conspack encoding and reopen regression coverage

Asset protocol

  • adds generic normalize-asset, asset-kind, canonical-value, deterministic-id, store/discover/query APIs
  • reuses starintel:digest-id rather than inventing a second digest convention
  • adds one generic persisted asset-event hook instead of per-type callback machinery
  • guarantees discover-asset persists locally before publishing :discovered
  • dedupes repeated normalized discoveries by deterministic ID
  • requires parent identity for ambiguous child assets such as ports

Storage

  • keeps Tek9 as the local operation store
  • adds explicit Conspack encodings for the existing compatibility objects
  • fixes put-doc/put-docs to honor database names and reject missing stores

Tests added

hackmode-tests now contains regression coverage for:

  • instance-local CLOS state
  • operation create/select/registry close+reopen
  • domain normalize -> deterministic dedupe -> local persistence -> event
  • persisted-row existence before event publication

Verification executed

The configured monorepo GitHub Actions workflow passed on the current head. It checks the monorepo layout, generated-artifact policy, Emacs Lisp syntax, absence of class-allocated core state, and presence/wiring of the StarIntel digest + ASDF test system.

The new Common Lisp runtime tests are not yet executable from a clean CI checkout because Hackmode's full external Lisp dependency graph is not pinned by the repository. #9 tracks that testing blocker; this PR does not claim those runtime tests have executed.

Scope note

This does not yet replace the migrated Emacs BBRF/file-state compatibility layer, nor does it implement CouchDB/outbox synchronization. Those remain downstream of this canonical runtime boundary.

Refs #6
Depends on completed #4. Blocks #3 and the outbox/shell/Emacs convergence slices.

## Summary Implements the first dependency-critical slice of #6 on top of the merged monorepo. ### Operation state - fixes CLOS `:allocation :class` misuse so operation/asset fields are instance-local - adds `list-operations`, `current-operation`, `operation-status`, and registry-open helpers - makes an operation path the workspace root and puts its local Tek9 store under `<workspace>/.hackmode/` - adds operation Conspack encoding and reopen regression coverage ### Asset protocol - adds generic `normalize-asset`, `asset-kind`, canonical-value, deterministic-id, store/discover/query APIs - reuses `starintel:digest-id` rather than inventing a second digest convention - adds one generic persisted `asset-event` hook instead of per-type callback machinery - guarantees `discover-asset` persists locally before publishing `:discovered` - dedupes repeated normalized discoveries by deterministic ID - requires parent identity for ambiguous child assets such as ports ### Storage - keeps Tek9 as the local operation store - adds explicit Conspack encodings for the existing compatibility objects - fixes `put-doc`/`put-docs` to honor database names and reject missing stores ### Tests added `hackmode-tests` now contains regression coverage for: - instance-local CLOS state - operation create/select/registry close+reopen - domain normalize -> deterministic dedupe -> local persistence -> event - persisted-row existence before event publication ### Verification executed The configured `monorepo` GitHub Actions workflow passed on the current head. It checks the monorepo layout, generated-artifact policy, Emacs Lisp syntax, absence of class-allocated core state, and presence/wiring of the StarIntel digest + ASDF test system. The new Common Lisp runtime tests are **not yet executable from a clean CI checkout** because Hackmode's full external Lisp dependency graph is not pinned by the repository. #9 tracks that testing blocker; this PR does not claim those runtime tests have executed. ## Scope note This does **not** yet replace the migrated Emacs BBRF/file-state compatibility layer, nor does it implement CouchDB/outbox synchronization. Those remain downstream of this canonical runtime boundary. Refs #6 Depends on completed #4. Blocks #3 and the outbox/shell/Emacs convergence slices.
Sign in to join this conversation.
No description provided.