proto becomes bxcore, the one shared crate (M5b task 00)

Done the way the owner asked and the spike mapped: the crate and the
manifests renamed, then what the build reported fixed. Layers: 138
"proto unresolved" errors across 169 files; cargo fmt reordering
imports; six fixture paths built as strings in brokerd's and bxctl's
tests, which the compiler cannot see, and comments naming
crates/proto/; the crate-dependency check and its self-test. One more
the spike did not reach: a `\nproto =` key inside a printf format in
the self-test, which a word-boundary replacement skips because `n` and
`p` are both word characters.

make gate: gate: ok, 944 tests; no new entry in /tmp.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-26 01:48:38 -07:00
co-authored by Claude Opus 5.5
parent 727e027fcf
commit 2b3ae080b4
311 changed files with 426 additions and 410 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
use std::path::{Path, PathBuf};
use proto::DataClass;
use bxcore::DataClass;
use serde::Deserialize;
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
+7 -7
View File
@@ -4,7 +4,7 @@
use std::collections::HashSet;
use proto::{DataClass, MemoryArgs, MemoryFile, Timestamp};
use bxcore::{DataClass, MemoryArgs, MemoryFile, Timestamp};
use crate::check::check;
use crate::entries;
@@ -270,7 +270,7 @@ fn claim(
fn consolidate(
file: MemoryFile,
before: &[String],
lines: &[proto::ConsolidateEntry],
lines: &[bxcore::ConsolidateEntry],
ctx: &Context,
) -> Result<(Vec<String>, Vec<Note>), String> {
let mut named: HashSet<usize> = HashSet::new();
@@ -279,23 +279,23 @@ fn consolidate(
for line in lines {
let action = line.action().map_err(|e| e.to_string())?;
match action {
proto::EntryAction::Keep(old) => {
bxcore::EntryAction::Keep(old) => {
claim(file, before, &mut named, &old)?;
after.push(old.trim().to_string());
}
proto::EntryAction::Rewrite { old, text } => {
bxcore::EntryAction::Rewrite { old, text } => {
claim(file, before, &mut named, &old)?;
after.push(checked(&text)?);
}
proto::EntryAction::Move(old) => {
bxcore::EntryAction::Move(old) => {
claim(file, before, &mut named, &old)?;
out.push(note(ctx, Kind::Moved(file), old.trim()));
}
proto::EntryAction::Drop(old) => {
bxcore::EntryAction::Drop(old) => {
claim(file, before, &mut named, &old)?;
out.push(note(ctx, Kind::Dropped(file), old.trim()));
}
proto::EntryAction::New(text) => {
bxcore::EntryAction::New(text) => {
after.push(checked(&text)?);
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
//! section 3). A file's size is the characters of its entries joined by separator lines, which
//! is what `render` writes, less the final newline.
use proto::memory::SEPARATOR;
use bxcore::memory::SEPARATOR;
/// The entries of a file's text: split at lines that are only `§` (spaces around it allowed),
/// each trimmed, empty ones left out.
+1 -1
View File
@@ -6,7 +6,7 @@ use std::io::Write;
use std::os::unix::fs::{DirBuilderExt, OpenOptionsExt, PermissionsExt};
use std::path::{Path, PathBuf};
use proto::MemoryFile;
use bxcore::MemoryFile;
use crate::check::{Refused, check};
use crate::entries;
+1 -1
View File
@@ -5,7 +5,7 @@
use std::os::unix::fs::PermissionsExt;
use std::path::{Path, PathBuf};
use proto::{DataClass, LogRecord};
use bxcore::{DataClass, LogRecord};
use rusqlite::{Connection, params};
use crate::notes::{self, Kind};
+1 -1
View File
@@ -3,7 +3,7 @@
use serde::{Deserialize, Serialize};
use proto::{MemoryFile, Timestamp};
use bxcore::{MemoryFile, Timestamp};
use crate::edit::{Context, Outcome};
use crate::files::Store;
+1 -1
View File
@@ -7,7 +7,7 @@
//! § dropped 2026-09-24T20:14Z from memory.md in session mm-y73sxj…
//! ```
use proto::{DataClass, MemoryFile, Timestamp};
use bxcore::{DataClass, MemoryFile, Timestamp};
/// How an entry came into `notes.md`.
#[derive(Debug, Clone, PartialEq, Eq)]
+1 -1
View File
@@ -3,7 +3,7 @@
use serde::Serialize;
use proto::{DataClass, RecallArgs, Timestamp};
use bxcore::{DataClass, RecallArgs, Timestamp};
use rusqlite::params;
use crate::files::Store;
+2 -2
View File
@@ -4,8 +4,8 @@
use serde::{Deserialize, Serialize};
use proto::escape::escape_model_text;
use proto::{DataClass, MemoryArgs, Timestamp};
use bxcore::escape::escape_model_text;
use bxcore::{DataClass, MemoryArgs, Timestamp};
use crate::edit::{Context, apply};
use crate::files::Store;
+3 -3
View File
@@ -5,7 +5,7 @@ use std::os::unix::net::{UnixListener, UnixStream};
use std::sync::{Arc, Mutex, MutexGuard};
use std::time::Duration;
use proto::{
use bxcore::{
DataClass, Empty, Envelope, ErrorCode, MemoryAdminReply, MemoryArgs, MemoryBlockReply,
MemoryCall, MemoryCommand, Message, PROTOCOL_VERSION, RecallArgs, Reindexed, Timestamp,
ToolResponse, WireError, read_frame, write_frame,
@@ -205,8 +205,8 @@ impl Memoryd {
fn call(&self, call: MemoryCall) -> ToolResponse {
let state = self.lock();
let result = match call.request.tool.as_str() {
proto::memory::RECALL => self.recall(&state, &call),
proto::memory::MEMORY => self.memory(&state, &call),
bxcore::memory::RECALL => self.recall(&state, &call),
bxcore::memory::MEMORY => self.memory(&state, &call),
_ => {
return ToolResponse::Failed {
message: "memoryd runs only recall and memory".to_string(),