Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
711b5ae
v2 memory-control audit: space is unobservable, and required fields a…
briansrls Jul 15, 2026
1b199dc
Witness-realization plan: the v2 execution path (P0-P6), off the v1 c…
briansrls Jul 15, 2026
44b596c
Bind witness-realization plan into the doc graph (de-orphan; caught b…
briansrls Jul 15, 2026
6968b74
P0 field wall (authority half): MissingField diagnostic + presence ch…
briansrls Jul 15, 2026
af0f3fb
Merge origin/main into session/lively-heron-614 (catch up before P0 r…
briansrls Jul 15, 2026
513a7b9
P0 field wall: FP-class narrowings + regen sync + RED/GREEN witness s…
briansrls Jul 15, 2026
b13be20
P0 field wall: whole-tree ledger 568 -> 45 (three FP classes dissolved)
briansrls Jul 15, 2026
5e8cd86
P0 status + three open operator rulings recorded in the plan doc
briansrls Jul 15, 2026
bc76f2f
Merge remote-tracking branch 'origin/main' into session/lively-heron-614
briansrls Jul 15, 2026
50c1186
WIP: v2 memory control audit
briansrls Jul 15, 2026
b4c45ee
WIP: v2 memory control audit
briansrls Jul 15, 2026
a3e13c6
WIP: v2 memory control audit
briansrls Jul 15, 2026
43dd899
WIP: v2 memory control audit
briansrls Jul 15, 2026
9f55faf
WIP: v2 memory control audit
briansrls Jul 15, 2026
9edb928
WIP: v2 memory control audit
briansrls Jul 15, 2026
4efcc3c
Ruling 3: separate grounded identities from cast-domain to fix as-cas…
briansrls Jul 15, 2026
ea34a33
WIP: v2 memory control audit
briansrls Jul 15, 2026
0f2339e
WIP: v2 memory control audit
briansrls Jul 15, 2026
d81c57a
WIP: v2 memory control audit
briansrls Jul 15, 2026
de18346
Merge remote-tracking branch 'origin/main' into session/lively-heron-614
briansrls Jul 15, 2026
50c4646
WIP: v2 memory control audit
briansrls Jul 15, 2026
5d37829
WIP: v2 memory control audit
briansrls Jul 15, 2026
e818e29
WIP: v2 memory control audit
briansrls Jul 15, 2026
243f80e
WIP: v2 memory control audit
briansrls Jul 15, 2026
8b5e02d
card_intake: fold via fn helper (fixes List<List<Bool>> truthy bug); …
briansrls Jul 15, 2026
39dc933
WIP: v2 memory control audit
briansrls Jul 15, 2026
cdd60df
Wire P0 field-wall witness into CI + reconcile plan-doc drain status
briansrls Jul 15, 2026
8c14232
WIP: v2 memory control audit
briansrls Jul 15, 2026
9c9b47b
WIP: v2 memory control audit
briansrls Jul 15, 2026
7093996
WIP: v2 memory control audit
briansrls Jul 15, 2026
95f7062
WIP: v2 memory control audit
briansrls Jul 15, 2026
41577f0
Merge remote-tracking branch 'origin/main' into session/lively-heron-614
briansrls Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dag/gunbc/auth/patterns.dag
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import std.resources { Filesystem, Network, AuthContext }
import std.types {
AccessToken,
AuthScheme,
Bearer,
NonEmptyStr
}
import extdeps.cloud.gcp.gcp {
Expand Down Expand Up @@ -46,7 +47,6 @@ pattern credential_chain(
service_account: ServiceAccountEmail?,
secret_name: NonEmptyStr,
project_id: GcpProjectId,
scheme: String = "Bearer",
header_name: String?,
source_id: NonEmptyStr,
required_scopes: List<String>,
Expand Down Expand Up @@ -77,7 +77,7 @@ pattern credential_chain(
return {
token: build_token(
payload: utf8_secret_from_access_payload(payload: secret.payload),
scheme: scheme,
scheme: Bearer,
header_name: header_name,
source_id: source_id,
required_scopes: required_scopes
Expand Down
1 change: 1 addition & 0 deletions dag/gunbc/ci_layer_roots.dag
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ data bin_witness_wet_entries: List<ScheduleWitnessEntry> = [
bin_wet(entry: "dag/test/claim/diagnostics_test.dag", f: "diagnostics_type_and_arity_holds"),
bin_wet(entry: "dag/test/claim/diagnostics_test.dag", f: "diagnostics_empty_list_context_holds"),
bin_wet(entry: "dag/test/claim/diagnostics_test.dag", f: "diagnostics_constructor_owner_walls_hold"),
bin_wet(entry: "dag/test/claim/diagnostics_test.dag", f: "diagnostics_record_field_walls_hold"),
bin_wet(entry: "dag/test/claim/effects_rest_transport_parse_witness_test.dag", f: "effects_rest_transport_parse_keystone_holds"),
bin_wet(entry: "dag/test/claim/emit_host_typed_smoke_test.dag", f: "emit_host_golden_is_nonempty_holds"),
bin_wet(entry: "dag/test/claim/emit_host_typed_smoke_test.dag", f: "emit_host_golden_length_matches_declared_count_holds"),
Expand Down
19 changes: 8 additions & 11 deletions dag/gunbc/tools/card_intake.dag
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,15 @@ fn assess_intake(
if count(reasons) == 0 { ReadyToList } else { NeedsReview { reasons: reasons } }
}

fn count_true(flags: List<Bool>) -> Int {
fold(flags, init: 0, f: (acc, b) => if b { acc + 1 } else { acc })
fn count_flagged(
rs: List<{ card_name: String, disposition: IntakeDisposition, product_id: Int, market_price: Float? }>
) -> Int {
fold(rs, init: 0, f: (acc, r) => match r.disposition {
ReadyToList => acc
NeedsReview { reasons: _ } => acc + 1
})
}


func recognize_binder_photo(
photo_path: FilePath,
model: String = default_recognition_model
Expand Down Expand Up @@ -196,14 +200,7 @@ func intake_binder(
)
}

flags = for r in results {
match r.disposition {
ReadyToList => false
NeedsReview { reasons: _ } => true
}
}

return { total: count(results), flagged: count_true(flags: flags) }
return { total: count(results), flagged: count_flagged(rs: results) }
}

func list_card_sku(
Expand Down
10 changes: 9 additions & 1 deletion dag/std/coercion.dag
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ type CastSyntax {
cast_rules: List<CastRule>
}

data grounded_primitive_coproduct_cast_note: String = "The Int->Nat and String->FreeMonoid identities are GROUNDED, not hollow casts (operator Ruling 3, 2026-07-15): a Nat IS an Int (numeric tower grounded construction-side #5428, Zero->Int(0)/Succ->Int(k+1), native form == modeled form) and a String IS a FreeMonoid<Char> (std.string_type: type String = FreeMonoid<Char> — strings over an alphabet are the free monoid). They live in their OWN list, NOT in dag_cast_rules, on purpose: dag_can_cast consults BOTH lists so the wall's kernel_value_declared_type_mismatch stops flagging an Int literal where a Nat is expected (and a String where a FreeMonoid is expected); but is_dag_cast_domain_type reads ONLY dag_cast_rules, so grounding a primitive to a coproduct does NOT drag that coproduct into the explicit-`as`-cast validation domain. Folding them into dag_cast_rules would make Nat/String cast-domain types and newly REJECT pre-existing well-typed casts whose reverse rule is absent (`Nat as Int` in bmc_onboard, `Int as String` in srv3/host_effect were skipped before because their far type was not a domain type) — a regression, not the intent. NON-grounded primitive->coproduct straddles stay red by construction: Bool->FreeMonoid (card_intake), String->Doc (live_deploy), String->AuthScheme (auth) are genuine site bugs with no identity."

data dag_cast_rules: List<CastRule> = [
{ from_type: "Int", to_type: "Int" },
{ from_type: "Int", to_type: "Float" },
Expand All @@ -42,8 +44,14 @@ data dag_cast_rules: List<CastRule> = [
{ from_type: "Bool", to_type: "Int" },
]

data grounded_primitive_coproduct_identities: List<CastRule> = [
{ from_type: "Int", to_type: "Nat" },
{ from_type: "String", to_type: "FreeMonoid" },
]

fn dag_can_cast(source_type: String, target_type: String) -> Bool {
dag_cast_rules |> any(r => r.from_type == source_type && r.to_type == target_type)
(dag_cast_rules |> any(r => r.from_type == source_type && r.to_type == target_type))
|| (grounded_primitive_coproduct_identities |> any(r => r.from_type == source_type && r.to_type == target_type))
}

fn is_dag_cast_domain_type(name: String) -> Bool {
Expand Down
5 changes: 5 additions & 0 deletions dag/test/claim/diagnostics_test.dag
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import tools.diagnostics_witness_transport {
run_diagnostics_type_and_arity_witness,
run_diagnostics_empty_list_context_witness,
run_diagnostics_constructor_owner_witness,
run_diagnostics_record_field_walls_witness,
}
import std.logic { Bool }
import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly }
Expand All @@ -31,3 +32,7 @@ test fn diagnostics_empty_list_context_holds() -> Bool {
test fn diagnostics_constructor_owner_walls_hold() -> Bool {
run_diagnostics_constructor_owner_witness()
}

test fn diagnostics_record_field_walls_hold() -> Bool {
run_diagnostics_record_field_walls_witness()
}
2 changes: 1 addition & 1 deletion dag/test/claim/filesystem_write_closure_scale_witness.dag
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ data filesystem_write_closure_scale_anchor: ResourceHandle = ResourceHandle {
type: "filesystem",
resource_id: "closure-scale-witness",
key: "scale",
cap: ""
cap: "" as Secret
}

func witness_filesystem_write_survives_name_collision() -> Bool {
Expand Down
1 change: 1 addition & 0 deletions dag/test/claim/markdown_roundtrip_test.dag
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ fn spellings_override(bullet: String, separator: String) -> MarkdownSpellings {
blockquote_marker: commonmark_gfm_spellings.blockquote_marker,
list_indent: commonmark_gfm_spellings.list_indent,
block_separator: separator,
thematic_break: commonmark_gfm_spellings.thematic_break,
}
}

Expand Down
1 change: 1 addition & 0 deletions dag/test/claim/markdown_source_emit_test.dag
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ fn perturbed_bullet_spellings() -> MarkdownSpellings {
blockquote_marker: commonmark_gfm_spellings.blockquote_marker,
list_indent: commonmark_gfm_spellings.list_indent,
block_separator: commonmark_gfm_spellings.block_separator,
thematic_break: commonmark_gfm_spellings.thematic_break,
}
}

Expand Down
2 changes: 2 additions & 0 deletions dag/test/claim/realization_schedule_witness_test.dag
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ fn synthetic_correct_schedule() -> List<List<Runnable>> {
explicit_entries: []
node_frontier_selection: SelectionOff
profile: runnable_resource_profile_negligible()
exclude_substrings: []
discovery_scope_dirs: []
},
RunnableSingleClaim { entry: gate_entry, function: "emit_host_gate_passes", profile: runnable_resource_profile_negligible() }
]
Expand Down
2 changes: 2 additions & 0 deletions dag/test/claim/runnable_resource_profile_witness_test.dag
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ fn witness_corpus_never_forbids_co_residence() -> Bool {
memory: runnable_memory_substantial(),
execution_mode: Wet
)
exclude_substrings: []
discovery_scope_dirs: []
}
!runnable_forbids_corpus_co_residence(r: corpus)
}
Expand Down
8 changes: 6 additions & 2 deletions dag/test/claim/seed_debt_bundle_item_2_floor_scope.dag
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import std.realization_schedule {
Runnable,
RunnableDiscoveryBatch,
ScheduleWitnessEntry,
CorpusWitnessKind
CorpusWitnessKind,
runnable_resource_profile_negligible
}
import std.measure { HardwareThreadCount, hardware_thread_count }
import std.types { List }
Expand All @@ -27,7 +28,10 @@ fn seed_debt_floor_scope_batches() -> List<List<Runnable>> {
source_roots: witness_layer_roots,
scan_dirs: [],
explicit_entries: seed_debt_witness_entries(),
node_frontier_selection: SelectionOff
node_frontier_selection: SelectionOff,
exclude_substrings: [],
discovery_scope_dirs: [],
profile: runnable_resource_profile_negligible()
}
]]
}
Expand Down
5 changes: 5 additions & 0 deletions dag/tools/diagnostics_witness_transport.dag
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ data diagnostics_reexport_surface_suite: String = "reexport_surface"
data diagnostics_type_and_arity_suite: String = "type_and_arity"
data diagnostics_empty_list_context_suite: String = "empty_list_context"
data diagnostics_constructor_owner_suite: String = "constructor_owner"
data diagnostics_record_field_walls_suite: String = "record_field_walls"

fn run_diagnostics_suite(suite: String) -> Bool {
run_witness_bin(
Expand Down Expand Up @@ -36,3 +37,7 @@ fn run_diagnostics_empty_list_context_witness() -> Bool {
fn run_diagnostics_constructor_owner_witness() -> Bool {
run_diagnostics_suite(suite: diagnostics_constructor_owner_suite)
}

fn run_diagnostics_record_field_walls_witness() -> Bool {
run_diagnostics_suite(suite: diagnostics_record_field_walls_suite)
}
Loading
Loading