Rename SolveCraft to SolidCraft everywhere, with compatibility shims (#389)

* WIP deep rename (not for push)

* WIP2

* WIP3

* WIP4 wxs fix

* rustfmt

* Rename the remaining identifiers in merged crash-report code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bherbruckandClaude Opus 5.5 authored and GitHub committed 2026-10-12 17:17:01 -04:00
1 parent 27415e4dd7
commit 296683229d
464 files changed
+3408 -2956

No files matched your search

+14 -14
View File
@@ -1,6 +1,6 @@
use crate::Session;
use serde_json::{Value, json};
use solvecraft_doc::config::{Column, ConfigFaceTarget};
use solidcraft_doc::config::{Column, ConfigFaceTarget};
fn run(s: &mut Session, command: &str, params: Value) -> Value {
s.execute(command, &params).unwrap_or_else(|error| panic!("{command} {params}: {error}"))
}
@@ -63,7 +63,7 @@ fn strict_face_rows_resize_rename_preview_suppress_and_roundtrip() {
let mb = state.body(&body).unwrap();
let colors = s.doc.face_colors(mb);
assert_eq!(colors.len(), 1);
let names = solvecraft_doc::naming::face_names(mb);
let names = solidcraft_doc::naming::face_names(mb);
assert!(names[colors[0].0].ends_with(":+z"));
assert!(s.doc.appearances.faces[0].strict_name);
run(&mut s, "appearance.assign", json!({"faces":[{"body":body,"point":[5,5,20]}]}));
@@ -76,7 +76,7 @@ fn strict_face_rows_resize_rename_preview_suppress_and_roundtrip() {
let hidden = run(&mut s, "config.activate", json!({"row":"Hidden"}));
assert_eq!(hidden["styles"][0]["dormant"], true);
assert!(s.model.state().bodies.is_empty());
let reopened = solvecraft_doc::format::read(&s.doc.to_json()).unwrap();
let reopened = solidcraft_doc::format::read(&s.doc.to_json()).unwrap();
assert_eq!(reopened, *s.doc);
run(&mut s, "config.activate", json!({"row":"Tall"}));
assert_eq!(s.doc.face_colors(s.model.state().body("Housing").unwrap())[0].1.name, "ABS - Red");
@@ -103,9 +103,9 @@ fn strict_face_split_pieces_share_lineage_without_index_targets() {
let state = s.model.state();
let body = state.body(&body).unwrap();
let colors = s.doc.face_colors(body);
let names = solvecraft_doc::naming::face_names(body);
let names = solidcraft_doc::naming::face_names(body);
assert!(colors.len() >= 2, "split should create multiple painted pieces: {names:?}");
assert!(colors.iter().all(|(index, look)| solvecraft_doc::naming::strip_piece(&names[*index]).ends_with(":+z") && look.name == "ABS - Red"));
assert!(colors.iter().all(|(index, look)| solidcraft_doc::naming::strip_piece(&names[*index]).ends_with(":+z") && look.name == "ABS - Red"));
}
#[test]
@@ -127,10 +127,10 @@ fn strict_face_missing_lineage_never_retargets_and_rolls_back() {
assert_eq!(s.doc, before);
assert_eq!(s.revision, revision);
assert_eq!(s.undo.len(), history);
let look = solvecraft_doc::appearance::library("ABS - Red").unwrap();
s.doc_mut().appearances.faces.push(solvecraft_doc::appearance::FaceLook {
let look = solidcraft_doc::appearance::library("ABS - Red").unwrap();
s.doc_mut().appearances.faces.push(solidcraft_doc::appearance::FaceLook {
body: body.clone(),
point: solvecraft_geom::Vec3::new(5., 5., 10.),
point: solidcraft_geom::Vec3::new(5., 5., 10.),
name: Some(format!("F{other}:+z")),
strict_name: true,
certificate: None,
@@ -150,11 +150,11 @@ fn face_occurrence_pick_uses_definition_identity_and_coordinates() {
let world = s.world_state();
let placed = world.bodies.iter().find(|body| body.name != body.definition_name()).unwrap();
let placed_name = placed.name.clone();
let point = solvecraft_doc::apply_point(&placed.source_transform, solvecraft_geom::Vec3::new(5., 5., 10.));
let point = solidcraft_doc::apply_point(&placed.source_transform, solidcraft_geom::Vec3::new(5., 5., 10.));
let key = face_column(&mut s, &placed_name, json!(point));
let Column::FaceAppearance(target) = &s.doc.configs.columns[0] else { panic!() };
assert_eq!(target.body, body);
assert!(target.point.dist(solvecraft_geom::Vec3::new(5., 5., 10.)) < 1e-8);
assert!(target.point.dist(solidcraft_geom::Vec3::new(5., 5., 10.)) < 1e-8);
run(&mut s, "config.row", json!({"name":"Paint","values":{key:"ABS - Blue"}}));
run(&mut s, "config.activate", json!({"row":"Paint"}));
assert!(s.world_state().bodies.iter().all(|body| s.doc.face_colors(body).len() == 1));
@@ -171,10 +171,10 @@ fn extrude_cap_certification_follows_actual_positive_negative_and_symmetric_name
let state = s.model.state();
let body = state.body("Pad").unwrap();
let faces = body.body.faces(0.01).unwrap();
let names = solvecraft_doc::naming::face_names(body);
let names = solidcraft_doc::naming::face_names(body);
let mut caps = 0;
for face in faces {
let name = solvecraft_doc::naming::strip_piece(&names[face.index]);
let name = solidcraft_doc::naming::strip_piece(&names[face.index]);
let origin = name.strip_prefix('F').unwrap().split_once(':').unwrap().0.parse().unwrap();
let target = ConfigFaceTarget { body: "Pad".into(), origin_feature: origin, name: name.into(), point: face.centroid, certificate: None };
if name.ends_with(":start") || name.ends_with(":top") || name.ends_with(":bottom") {
@@ -216,7 +216,7 @@ fn hostile_and_uncertified_face_targets_are_rejected() {
body: body.clone(),
origin_feature: id,
name: format!("F{id}:face:0"),
point: solvecraft_geom::Vec3::ZERO,
point: solidcraft_geom::Vec3::ZERO,
certificate: None,
};
assert!(s.doc.certify_config_face(&target).is_err());
@@ -225,7 +225,7 @@ fn hostile_and_uncertified_face_targets_are_rejected() {
json!({"body":body,"origin_feature":id,"name":format!("F{id}:+z"),"point":[0,0,1e20]}),
json!({"body":body,"origin_feature":id,"name":format!("F{id}:+z"),"point":[0,0,0],"extra":[[]]}),
] {
assert!(solvecraft_doc::config::validate_styles_json(&json!({"configs":{"columns":[{"face_appearance":value}]}})).is_err());
assert!(solidcraft_doc::config::validate_styles_json(&json!({"configs":{"columns":[{"face_appearance":value}]}})).is_err());
}
assert!(s.execute("config.column", &json!({"component_appearance":0})).is_err());
assert!(s.execute("config.column", &json!({"face_appearance":{"body":body,"point":[0,0,1e20]}})).is_err());