From 791706b4bd17c9327481fc321ca94d162feafc2c Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Sun, 18 Oct 2026 17:49:36 +0700 Subject: [PATCH 1/2] types ratchet: four newly parsed type names get their own names, HttpStatus leaves the ledger, five specs resealed (Closes #10389) #10370 made specs parse that did not before, so Context, MatchResult, UnsubscribeResult and ProofTrace gained a second definition. Renamed on the side #10370 touched: LocalhostContext (security.t27), RouteMatchResult (router.t27), SchemaUnsubscribeResult (bus/schema.t27), CoaProofTrace and DatalogProofTrace. HttpStatus has one definition again, so its ledger line and classified row are dropped. Co-Authored-By: Claude Sonnet 5.5 --- .trinity/seals/DatalogEngine.json | 12 ++++----- .trinity/seals/ar_DatalogEngine.json | 12 ++++----- .trinity/seals/ar_coa_planning.json | 14 +++++----- .trinity/seals/ar_datalog_engine.json | 14 +++++----- .trinity/seals/bus-schema.json | 12 ++++----- .trinity/seals/bus_bus-schema.json | 14 +++++----- .trinity/seals/coa_planning.json | 12 ++++----- .trinity/seals/datalog_engine.json | 12 ++++----- .trinity/seals/server-router.json | 12 ++++----- .trinity/seals/server_server-router.json | 14 +++++----- .trinity/seals/utils_port::security.json | 14 +++++----- docs/TYPE_CONFLICTS.md | 3 +-- docs/reports/type_conflicts.json | 1 - docs/reports/type_conflicts_classified.json | 13 +--------- specs/ar/coa_planning.t27 | 12 ++++----- specs/ar/datalog_engine.t27 | 26 +++++++++---------- specs/bus/schema.t27 | 6 ++--- .../apps/server/src/api/utils/security.t27 | 4 +-- specs/server/router.t27 | 14 +++++----- 19 files changed, 104 insertions(+), 117 deletions(-) diff --git a/.trinity/seals/DatalogEngine.json b/.trinity/seals/DatalogEngine.json index 615f31831a..63c274c4e1 100644 --- a/.trinity/seals/DatalogEngine.json +++ b/.trinity/seals/DatalogEngine.json @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:53b71ef6ec786012e875b7253f54076ffe9b394faa91f6e70d8393fa2bf85e68", - "gen_hash_rust": "sha256:9c995a0f67e1def9cadc8c96ae4b458016a36efa6d4ec2d47f637d6cd3c993a4", - "gen_hash_verilog": "sha256:33ee6d2c28d853b57ae94c38a625a099580a9cea007f74885720ba3959cfe0f6", - "gen_hash_zig": "sha256:65e4997bcec9230e723411a3e2e288e4da07094858a5b047a677661165a0d2c2", + "gen_hash_c": "sha256:e177976555ae946fca80a0f2ea977e73d53dda7d10218d0792c1b644a1aa106c", + "gen_hash_rust": "sha256:80c0bac3d5197c543c5a29d7020450315e2b5bf630ffe668b0df143238511810", + "gen_hash_verilog": "sha256:73f581973048c74a79252d00c9cae6a1d135a0f42a5afdf26a2ee70be9ccf18d", + "gen_hash_zig": "sha256:884f29d5a2c05849d12b6a8544e80845e0b9aa964e99fa750a0575a0a2c2a7e2", "module": "datalog_engine", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:41Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:87593c89dc0850001a456e2dcadac858617c7e133511a6bc4d3499b5c914f2a2", + "spec_hash": "sha256:52016c554a0dc551f8146f51c394bca2f01110762cd88582c28740a8b9d7caa5", "spec_path": "specs/ar/datalog_engine.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/ar_DatalogEngine.json b/.trinity/seals/ar_DatalogEngine.json index 615f31831a..63c274c4e1 100644 --- a/.trinity/seals/ar_DatalogEngine.json +++ b/.trinity/seals/ar_DatalogEngine.json @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:53b71ef6ec786012e875b7253f54076ffe9b394faa91f6e70d8393fa2bf85e68", - "gen_hash_rust": "sha256:9c995a0f67e1def9cadc8c96ae4b458016a36efa6d4ec2d47f637d6cd3c993a4", - "gen_hash_verilog": "sha256:33ee6d2c28d853b57ae94c38a625a099580a9cea007f74885720ba3959cfe0f6", - "gen_hash_zig": "sha256:65e4997bcec9230e723411a3e2e288e4da07094858a5b047a677661165a0d2c2", + "gen_hash_c": "sha256:e177976555ae946fca80a0f2ea977e73d53dda7d10218d0792c1b644a1aa106c", + "gen_hash_rust": "sha256:80c0bac3d5197c543c5a29d7020450315e2b5bf630ffe668b0df143238511810", + "gen_hash_verilog": "sha256:73f581973048c74a79252d00c9cae6a1d135a0f42a5afdf26a2ee70be9ccf18d", + "gen_hash_zig": "sha256:884f29d5a2c05849d12b6a8544e80845e0b9aa964e99fa750a0575a0a2c2a7e2", "module": "datalog_engine", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:41Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:87593c89dc0850001a456e2dcadac858617c7e133511a6bc4d3499b5c914f2a2", + "spec_hash": "sha256:52016c554a0dc551f8146f51c394bca2f01110762cd88582c28740a8b9d7caa5", "spec_path": "specs/ar/datalog_engine.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/ar_coa_planning.json b/.trinity/seals/ar_coa_planning.json index 1244abf2ef..554d500021 100644 --- a/.trinity/seals/ar_coa_planning.json +++ b/.trinity/seals/ar_coa_planning.json @@ -1,5 +1,5 @@ { - "built_by": "t27c-bootstrap@0.5.2+093bf4713", + "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [ { "spec": "specs/base/types.t27", @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:73052f6405021ced45bec65ca41ab84ce2ae45791983bd74ca9f66436a7ca6a1", - "gen_hash_rust": "sha256:f52372abfffaa791487f5795f7574157c4114ba69d1f6fa41037abea5550f29a", - "gen_hash_verilog": "sha256:da4c08e037138eb684e5977f268e86c51417da872395f9680f3c507087ea915d", - "gen_hash_zig": "sha256:8d681fb65d3ebbfd0a8994590dd129ae103e140fe15ea20e9df70daf2e33ca13", + "gen_hash_c": "sha256:b645c316292baa31cfc7b2c6b94fee49b47936c9a00517733c661ae435776625", + "gen_hash_rust": "sha256:fe51bf8bc98e674d7a224a8cd355c95acd355c9264ae337bacb0e93900cc7e50", + "gen_hash_verilog": "sha256:acac34bf7b218b8c15d17dab86d2d8f0f89aa8f70d4dec550afc18c01dcf5386", + "gen_hash_zig": "sha256:dd4a4ab0b093b791166a44ceed113ae74e12265edea264797708cf7e1bb92c79", "module": "coa_planning", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:39Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:d88d0199bd4974d508c822771f72c1855e1804f3ab69407262b4acc5bddf8ce1", + "spec_hash": "sha256:44ed31095160994e28ac2f65458af64c84118bdc0ae9945382c5598cfe41589a", "spec_path": "specs/ar/coa_planning.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/ar_datalog_engine.json b/.trinity/seals/ar_datalog_engine.json index 615f31831a..7bad39c4aa 100644 --- a/.trinity/seals/ar_datalog_engine.json +++ b/.trinity/seals/ar_datalog_engine.json @@ -1,5 +1,5 @@ { - "built_by": "t27c-bootstrap@0.5.2+093bf4713", + "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [ { "spec": "specs/base/types.t27", @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:53b71ef6ec786012e875b7253f54076ffe9b394faa91f6e70d8393fa2bf85e68", - "gen_hash_rust": "sha256:9c995a0f67e1def9cadc8c96ae4b458016a36efa6d4ec2d47f637d6cd3c993a4", - "gen_hash_verilog": "sha256:33ee6d2c28d853b57ae94c38a625a099580a9cea007f74885720ba3959cfe0f6", - "gen_hash_zig": "sha256:65e4997bcec9230e723411a3e2e288e4da07094858a5b047a677661165a0d2c2", + "gen_hash_c": "sha256:e177976555ae946fca80a0f2ea977e73d53dda7d10218d0792c1b644a1aa106c", + "gen_hash_rust": "sha256:80c0bac3d5197c543c5a29d7020450315e2b5bf630ffe668b0df143238511810", + "gen_hash_verilog": "sha256:73f581973048c74a79252d00c9cae6a1d135a0f42a5afdf26a2ee70be9ccf18d", + "gen_hash_zig": "sha256:884f29d5a2c05849d12b6a8544e80845e0b9aa964e99fa750a0575a0a2c2a7e2", "module": "datalog_engine", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:41Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:87593c89dc0850001a456e2dcadac858617c7e133511a6bc4d3499b5c914f2a2", + "spec_hash": "sha256:52016c554a0dc551f8146f51c394bca2f01110762cd88582c28740a8b9d7caa5", "spec_path": "specs/ar/datalog_engine.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/bus-schema.json b/.trinity/seals/bus-schema.json index 94b46395c8..fa8926ea1c 100644 --- a/.trinity/seals/bus-schema.json +++ b/.trinity/seals/bus-schema.json @@ -2,16 +2,16 @@ "built_by": "t27c-bootstrap@0.5.2+093bf4713", "closure": [], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:d22bce45e0204d2bcdbad2a44105d04be02c5ec34248212fbff003ad5a10ee54", - "gen_hash_rust": "sha256:5bbc48eb273b37edc455dc2f3a4027107ed35c36cad9b76862311d4f16f7e599", - "gen_hash_verilog": "sha256:01c1d923a2ce3335a97005db06cd9cb69a369bbcffc21e56b44b51c30907e857", - "gen_hash_zig": "sha256:00d82e4e7e0be532e30f7ae594ca5fd8784daa0829ff4a7b3dec9132faf57d73", + "gen_hash_c": "sha256:dfabef0d788ade5f2b4e7a55bcbc63d6a7c1ef17dca9135ecae799b87cb5e432", + "gen_hash_rust": "sha256:0d28dd423c071e10844a6422af81fe8e9ca75d719247ff33b910617ae152ca01", + "gen_hash_verilog": "sha256:e6b1d283eae6b7a97ce7025de436ffe6d883cccbc43a14f5e688bd80381e71b6", + "gen_hash_zig": "sha256:7bc39985be3705964426d94e68b9b1d7d277bec0efdb4b4a7f16e2defe577d07", "module": "bus-schema", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:41Z", + "sealed_at": "2026-10-18T10:47:42Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:76393971b7cf90665df9492a8fc5243c0c893ba25613dcec5818ba05c7039893", + "spec_hash": "sha256:1252d5a26a2656a213ae87826324b561dd5969349885ec9536d6289eca17616e", "spec_path": "specs/bus/schema.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/bus_bus-schema.json b/.trinity/seals/bus_bus-schema.json index 94b46395c8..9faabd7de6 100644 --- a/.trinity/seals/bus_bus-schema.json +++ b/.trinity/seals/bus_bus-schema.json @@ -1,17 +1,17 @@ { - "built_by": "t27c-bootstrap@0.5.2+093bf4713", + "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:d22bce45e0204d2bcdbad2a44105d04be02c5ec34248212fbff003ad5a10ee54", - "gen_hash_rust": "sha256:5bbc48eb273b37edc455dc2f3a4027107ed35c36cad9b76862311d4f16f7e599", - "gen_hash_verilog": "sha256:01c1d923a2ce3335a97005db06cd9cb69a369bbcffc21e56b44b51c30907e857", - "gen_hash_zig": "sha256:00d82e4e7e0be532e30f7ae594ca5fd8784daa0829ff4a7b3dec9132faf57d73", + "gen_hash_c": "sha256:dfabef0d788ade5f2b4e7a55bcbc63d6a7c1ef17dca9135ecae799b87cb5e432", + "gen_hash_rust": "sha256:0d28dd423c071e10844a6422af81fe8e9ca75d719247ff33b910617ae152ca01", + "gen_hash_verilog": "sha256:e6b1d283eae6b7a97ce7025de436ffe6d883cccbc43a14f5e688bd80381e71b6", + "gen_hash_zig": "sha256:7bc39985be3705964426d94e68b9b1d7d277bec0efdb4b4a7f16e2defe577d07", "module": "bus-schema", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:41Z", + "sealed_at": "2026-10-18T10:47:42Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:76393971b7cf90665df9492a8fc5243c0c893ba25613dcec5818ba05c7039893", + "spec_hash": "sha256:1252d5a26a2656a213ae87826324b561dd5969349885ec9536d6289eca17616e", "spec_path": "specs/bus/schema.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/coa_planning.json b/.trinity/seals/coa_planning.json index 1244abf2ef..8c966519b0 100644 --- a/.trinity/seals/coa_planning.json +++ b/.trinity/seals/coa_planning.json @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:73052f6405021ced45bec65ca41ab84ce2ae45791983bd74ca9f66436a7ca6a1", - "gen_hash_rust": "sha256:f52372abfffaa791487f5795f7574157c4114ba69d1f6fa41037abea5550f29a", - "gen_hash_verilog": "sha256:da4c08e037138eb684e5977f268e86c51417da872395f9680f3c507087ea915d", - "gen_hash_zig": "sha256:8d681fb65d3ebbfd0a8994590dd129ae103e140fe15ea20e9df70daf2e33ca13", + "gen_hash_c": "sha256:b645c316292baa31cfc7b2c6b94fee49b47936c9a00517733c661ae435776625", + "gen_hash_rust": "sha256:fe51bf8bc98e674d7a224a8cd355c95acd355c9264ae337bacb0e93900cc7e50", + "gen_hash_verilog": "sha256:acac34bf7b218b8c15d17dab86d2d8f0f89aa8f70d4dec550afc18c01dcf5386", + "gen_hash_zig": "sha256:dd4a4ab0b093b791166a44ceed113ae74e12265edea264797708cf7e1bb92c79", "module": "coa_planning", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:39Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:d88d0199bd4974d508c822771f72c1855e1804f3ab69407262b4acc5bddf8ce1", + "spec_hash": "sha256:44ed31095160994e28ac2f65458af64c84118bdc0ae9945382c5598cfe41589a", "spec_path": "specs/ar/coa_planning.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/datalog_engine.json b/.trinity/seals/datalog_engine.json index 615f31831a..63c274c4e1 100644 --- a/.trinity/seals/datalog_engine.json +++ b/.trinity/seals/datalog_engine.json @@ -7,16 +7,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:53b71ef6ec786012e875b7253f54076ffe9b394faa91f6e70d8393fa2bf85e68", - "gen_hash_rust": "sha256:9c995a0f67e1def9cadc8c96ae4b458016a36efa6d4ec2d47f637d6cd3c993a4", - "gen_hash_verilog": "sha256:33ee6d2c28d853b57ae94c38a625a099580a9cea007f74885720ba3959cfe0f6", - "gen_hash_zig": "sha256:65e4997bcec9230e723411a3e2e288e4da07094858a5b047a677661165a0d2c2", + "gen_hash_c": "sha256:e177976555ae946fca80a0f2ea977e73d53dda7d10218d0792c1b644a1aa106c", + "gen_hash_rust": "sha256:80c0bac3d5197c543c5a29d7020450315e2b5bf630ffe668b0df143238511810", + "gen_hash_verilog": "sha256:73f581973048c74a79252d00c9cae6a1d135a0f42a5afdf26a2ee70be9ccf18d", + "gen_hash_zig": "sha256:884f29d5a2c05849d12b6a8544e80845e0b9aa964e99fa750a0575a0a2c2a7e2", "module": "datalog_engine", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:29:36Z", + "sealed_at": "2026-10-18T10:47:41Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:87593c89dc0850001a456e2dcadac858617c7e133511a6bc4d3499b5c914f2a2", + "spec_hash": "sha256:52016c554a0dc551f8146f51c394bca2f01110762cd88582c28740a8b9d7caa5", "spec_path": "specs/ar/datalog_engine.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/server-router.json b/.trinity/seals/server-router.json index 4f1c401227..a33e516e13 100644 --- a/.trinity/seals/server-router.json +++ b/.trinity/seals/server-router.json @@ -1,12 +1,12 @@ { - "gen_hash_c": "sha256:5b3e5961fb10f973c49ca779ec6dc679551716203c9168e5fafbd32b2422007e", - "gen_hash_rust": "sha256:350388b710c6b563cce9c2b56e78ee3c9a847ef971350e934d552e7eff4fead6", - "gen_hash_verilog": "sha256:1598abc22c4a6e767b0283208209827c4857fb7ad5de507eba1d7ea3525ba7ce", - "gen_hash_zig": "sha256:f09c1261037b84aa7ae546013fc589d13d3c928e4531f63a5d2a0e9dced12c97", + "gen_hash_c": "sha256:c216a81c92ea9011f5eb77dd43a048ab3583576b50db61de27ce810591b15427", + "gen_hash_rust": "sha256:5943205cacbd4129b26502cbe23510c77a938b0687b326afb7fc11a6c48f9c71", + "gen_hash_verilog": "sha256:c76d199b5caebf0f29458b7804d03876b4bf324fd749e9f31c310314e5a9ae64", + "gen_hash_zig": "sha256:e796c3cf59552f2943c705667d4fcde02d031d3ec68efc9f0da2e2b0bf25066a", "module": "server-router", "ring": 12, - "sealed_at": "2026-10-18T09:28:52Z", - "spec_hash": "sha256:edce4491bd6af64efbc18380b09540f3a876d3c65d96da9757accc98055e51d9", + "sealed_at": "2026-10-18T10:47:42Z", + "spec_hash": "sha256:b42a7981025b0ab2ef7213db14a562586ee18b8de5f7f63ebbc37f50d7057426", "spec_path": "specs/server/router.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/server_server-router.json b/.trinity/seals/server_server-router.json index 04bef43c00..e17246e858 100644 --- a/.trinity/seals/server_server-router.json +++ b/.trinity/seals/server_server-router.json @@ -1,17 +1,17 @@ { - "built_by": "t27c-bootstrap@0.5.2+093bf4713", + "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:5b3e5961fb10f973c49ca779ec6dc679551716203c9168e5fafbd32b2422007e", - "gen_hash_rust": "sha256:350388b710c6b563cce9c2b56e78ee3c9a847ef971350e934d552e7eff4fead6", - "gen_hash_verilog": "sha256:1598abc22c4a6e767b0283208209827c4857fb7ad5de507eba1d7ea3525ba7ce", - "gen_hash_zig": "sha256:f09c1261037b84aa7ae546013fc589d13d3c928e4531f63a5d2a0e9dced12c97", + "gen_hash_c": "sha256:c216a81c92ea9011f5eb77dd43a048ab3583576b50db61de27ce810591b15427", + "gen_hash_rust": "sha256:5943205cacbd4129b26502cbe23510c77a938b0687b326afb7fc11a6c48f9c71", + "gen_hash_verilog": "sha256:c76d199b5caebf0f29458b7804d03876b4bf324fd749e9f31c310314e5a9ae64", + "gen_hash_zig": "sha256:e796c3cf59552f2943c705667d4fcde02d031d3ec68efc9f0da2e2b0bf25066a", "module": "server-router", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:28:52Z", + "sealed_at": "2026-10-18T10:47:42Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:edce4491bd6af64efbc18380b09540f3a876d3c65d96da9757accc98055e51d9", + "spec_hash": "sha256:b42a7981025b0ab2ef7213db14a562586ee18b8de5f7f63ebbc37f50d7057426", "spec_path": "specs/server/router.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/utils_port::security.json b/.trinity/seals/utils_port::security.json index 833d82f544..7fe7c22ac4 100644 --- a/.trinity/seals/utils_port::security.json +++ b/.trinity/seals/utils_port::security.json @@ -1,17 +1,17 @@ { - "built_by": "t27c-bootstrap@0.5.2+093bf4713", + "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:60771a6f93ccfb8de16717d052528d08feeaa8b60ad15667d08b4b184522c6c0", - "gen_hash_rust": "sha256:cfda8b27cf4df67427e9122419116e202fffefe73f641dd3b9b58a66b7afeb98", - "gen_hash_verilog": "sha256:afb3daf5e2b39528eca1be78a70b40a50dcee7784a3ee2a70d920dd7874ed6b2", - "gen_hash_zig": "sha256:e2f83b891ed566508e2632c3310ccc0e921ec9866259d45b0ca4c76673b3ee43", + "gen_hash_c": "sha256:fffdf3f5ceaed732ec03113e282b2c896ba2ab451ab7351fe89eaf63d6f4404a", + "gen_hash_rust": "sha256:ac4374ff081bf86deb5b5e3e4eef6c47970e6ea70263a727a99aa160c217d5a5", + "gen_hash_verilog": "sha256:1dceca6c50f54d460e297132ce89ddbc21bccc97bf1c0cd8591b7f5d72c3d5cd", + "gen_hash_zig": "sha256:7fd4349f60cf1b68d05ca83c573d41a74d7f1ef7b918b49fcb5957347611a854", "module": "port::security", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-18T09:31:22Z", + "sealed_at": "2026-10-18T10:47:43Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:0b67848dfcb85a2c5c7f65c9c1f6c23d3b0958e45081c71f6a40618136c1e4db", + "spec_hash": "sha256:76ff11fbcb9c000c1ede6cde66418e3998940599f4b3b38b9c98f0a19063eb3e", "spec_path": "specs/port/browseros/trios/agent-server/apps/server/src/api/utils/security.t27", "tests": { "failed": 0, diff --git a/docs/TYPE_CONFLICTS.md b/docs/TYPE_CONFLICTS.md index 49e05ef71e..db0d44cf4e 100644 --- a/docs/TYPE_CONFLICTS.md +++ b/docs/TYPE_CONFLICTS.md @@ -61,7 +61,7 @@ definition moves. `tri types classified` cross-checks the file against a live Non-empty drift in either direction exits non-zero. A classification nobody re-reads becomes a claim about a tree that no longer exists. -## DRIFT -- 61 names +## DRIFT -- 60 names One concept, two definitions. These are the ones with a repair. @@ -78,7 +78,6 @@ One concept, two definitions. These are the ones with a repair. | `Graph` | 2 | 2 files | Have graph_bfs.t27 `use` tri::graph::graph and drop its local Graph; separately, teach the re... | | `HttpRequest` | 2 | 2 files | Extract one http-types module (HttpMethod, HttpHeader/HttpHeaders, HttpStatus) and have both ... | | `HttpResponse` | 3 | 3 files | Delete router.t27's stub and import server/http.t27's HttpResponse; then reconcile adapters.t... | -| `HttpStatus` | 2 | 2 files | Pick `[]const u8` and have server/http.t27 import tri::net::http::HttpStatus. This is the che... | | `HybridBigInt` | 2 | 2 files | Highest-value fix in this slice. Choose one representation (the Option-cache + dirty version ... | | `Hypervector` | 2 | 2 files | Qualify the type in the contract doc (`hybrid_arithmetic::HybridBigInt`) or regenerate that s... | | `Issue` | 2 | 2 files | Have specs/port/scripts/tri-search.t27 use the github::issues Issue and add url there, or ren... | diff --git a/docs/reports/type_conflicts.json b/docs/reports/type_conflicts.json index 59cd172373..a557d3b797 100644 --- a/docs/reports/type_conflicts.json +++ b/docs/reports/type_conflicts.json @@ -26,7 +26,6 @@ "Graph", "HttpRequest", "HttpResponse", - "HttpStatus", "HybridBigInt", "Hypervector", "Info", diff --git a/docs/reports/type_conflicts_classified.json b/docs/reports/type_conflicts_classified.json index 0dec0b6f75..f225b09d34 100644 --- a/docs/reports/type_conflicts_classified.json +++ b/docs/reports/type_conflicts_classified.json @@ -1,7 +1,7 @@ { "note": "Classification of every conflicted type name reported by `tri types dup`. DRIFT = one concept that grew two definitions; DISTINCT = two concepts that collided on a name. Evidence is the reading that decided it. Regenerate the observation with `tri types dup`; cross-check this file against it with `tri types classified`.", "verdicts": { - "DRIFT": 61, + "DRIFT": 60, "DISTINCT": 47 }, "names": [ @@ -276,17 +276,6 @@ "confidence": "Certain. The `/// HTTP response (forward declaration)` comment states the author's intent to refer to an existing type, and the declaration contradicts it. Three specs in one application give one wire object three shapes, with the status code typed HttpStatus / u16 / i32.", "suggested_action": "Delete router.t27's stub and import server/http.t27's HttpResponse; then reconcile adapters.t27 onto the same type. Whatever else changes, the status code should have one width." }, - { - "name": "HttpStatus", - "sites": [ - "specs/server/http.t27:68", - "specs/tri/net/http.t27:17" - ], - "verdict": "DRIFT", - "evidence": "THE NARROWEST CONFLICT IN THE CENSUS \u2014 one qualifier from IDENTICAL. http.t27:68 `pub const HttpStatus = struct { code : u16, reason : []u8, }`. tri/net/http.t27:17 `pub const HttpStatus = struct { code : u16, reason : []const u8, }`. Same two fields, same names, same order, same widths; the only difference in the entire declaration is `const` in the slice type of `reason`. I am NOT calling this a detector bug: `[]u8` and `[]const u8` are different types to a resolver (mutable vs immutable backing), so the tool is right to separate them \u2014 but a human reading the census should know this pair is a whitespace-width apart, not a design disagreement. Contexts differ: server/http.t27 is the application's HTTP server spec, tri/net/http.t27 is the stub-generated stdlib module (\"Standard HTTP status codes\", bodies are `// TODO: Implement from .tri spec`) whose `fn status_from_code(code: u16)` and `fn is_success(code: u16)` are exactly the helpers the server side would want.", - "confidence": "Certain about the shapes (quoted verbatim). Not certain which side was copied from which \u2014 both are the obvious {code, reason} pair, and either could have been written first.", - "suggested_action": "Pick `[]const u8` and have server/http.t27 import tri::net::http::HttpStatus. This is the cheapest conflict in the census to retire, and retiring it removes one 'unbounded' answer from the quantifier census for free." - }, { "name": "HybridBigInt", "sites": [ diff --git a/specs/ar/coa_planning.t27 b/specs/ar/coa_planning.t27 index 0a70339867..d3e1d6e050 100644 --- a/specs/ar/coa_planning.t27 +++ b/specs/ar/coa_planning.t27 @@ -208,7 +208,7 @@ spec CoaPlanning { } // Complete proof trace - struct ProofTrace { + struct CoaProofTrace { steps: [MAX_TRACE]ProofStep, count: u32, start_timestamp: u32, @@ -216,14 +216,14 @@ spec CoaPlanning { verified: bool } - fn new_proof_trace() -> ProofTrace { + fn new_proof_trace() -> CoaProofTrace { let mut slots: [MAX_TRACE]ProofStep = undefined; let mut k: u32 = 0; while k < MAX_TRACE { slots[k] = empty_proof_step(); k = k + 1; } - return ProofTrace { steps: slots, count: 0, start_timestamp: 0, end_timestamp: 0, verified: false } + return CoaProofTrace { steps: slots, count: 0, start_timestamp: 0, end_timestamp: 0, verified: false } } // COA step structure @@ -290,7 +290,7 @@ spec CoaPlanning { total_steps: u32, total_duration: f64, verification_status: i8, - proof_trace: ProofTrace + proof_trace: CoaProofTrace } // COA constraint @@ -554,7 +554,7 @@ spec CoaPlanning { } // Get total proof trace from COA - fn extract_proof_trace(coa: CourseOfAction) -> ProofTrace { + fn extract_proof_trace(coa: CourseOfAction) -> CoaProofTrace { let mut all_steps = new_proof_trace(); let mut n: u32 = 0; @@ -572,7 +572,7 @@ spec CoaPlanning { i = i + 1; } - return ProofTrace { + return CoaProofTrace { steps: all_steps.steps, count: n, start_timestamp: 0, diff --git a/specs/ar/datalog_engine.t27 b/specs/ar/datalog_engine.t27 index 73f7c830d4..43e133ae96 100644 --- a/specs/ar/datalog_engine.t27 +++ b/specs/ar/datalog_engine.t27 @@ -50,15 +50,15 @@ spec DatalogEngine { } // Proof trace: the operation and output of each recorded step - struct ProofTrace { + struct DatalogProofTrace { ops: [STEP_CAP]string, outputs: [STEP_CAP]i8, count: u32, verified: bool } - fn new_proof_trace() -> ProofTrace { - return ProofTrace { + fn new_proof_trace() -> DatalogProofTrace { + return DatalogProofTrace { ops: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], outputs: [0; STEP_CAP], count: 0, @@ -67,7 +67,7 @@ spec DatalogEngine { } // A full buffer leaves the trace unchanged - fn add_step(trace: ProofTrace, operation: string, output: i8) -> ProofTrace { + fn add_step(trace: DatalogProofTrace, operation: string, output: i8) -> DatalogProofTrace { if trace.count >= STEP_CAP { return trace } @@ -75,7 +75,7 @@ spec DatalogEngine { let mut new_outputs = trace.outputs; new_ops[trace.count] = operation; new_outputs[trace.count] = output; - return ProofTrace { + return DatalogProofTrace { ops: new_ops, outputs: new_outputs, count: trace.count + 1, @@ -83,8 +83,8 @@ spec DatalogEngine { } } - fn finalize_trace(trace: ProofTrace) -> ProofTrace { - return ProofTrace { + fn finalize_trace(trace: DatalogProofTrace) -> DatalogProofTrace { + return DatalogProofTrace { ops: trace.ops, outputs: trace.outputs, count: trace.count, @@ -93,7 +93,7 @@ spec DatalogEngine { } // A trace is valid when it is non-empty and within MAX_STEPS - fn verify_trace(trace: ProofTrace) -> bool { + fn verify_trace(trace: DatalogProofTrace) -> bool { return trace.count > 0 && trace.count <= MAX_STEPS } @@ -171,14 +171,14 @@ spec DatalogEngine { struct QueryResult { answers: [MAX_ANSWERS]Fact, nanswers: u32, - proof_trace: ProofTrace, + proof_trace: DatalogProofTrace, complete: bool } // Result of apply_rule (a tuple in the Rust-like original) struct ApplyResult { derived: Fact, - trace: ProofTrace + trace: DatalogProofTrace } // Create empty database @@ -233,7 +233,7 @@ spec DatalogEngine { } } - fn empty_result(trace: ProofTrace) -> QueryResult { + fn empty_result(trace: DatalogProofTrace) -> QueryResult { let mut slots: [MAX_ANSWERS]Fact = undefined; let mut i: u32 = 0; while i < MAX_ANSWERS { @@ -321,11 +321,11 @@ spec DatalogEngine { } // Apply rule to derive new fact - fn apply_rule(db: Database, rule: Rule, trace: ProofTrace) -> ApplyResult { + fn apply_rule(db: Database, rule: Rule, trace: DatalogProofTrace) -> ApplyResult { return apply_rule_at(db, rule, trace, 0) } - fn apply_rule_at(db: Database, rule: Rule, trace: ProofTrace, depth: u32) -> ApplyResult { + fn apply_rule_at(db: Database, rule: Rule, trace: DatalogProofTrace, depth: u32) -> ApplyResult { let mut current_trace = trace; // Check if all body facts are true diff --git a/specs/bus/schema.t27 b/specs/bus/schema.t27 index b595839c58..6af824b07d 100644 --- a/specs/bus/schema.t27 +++ b/specs/bus/schema.t27 @@ -174,7 +174,7 @@ pub const SubscriptionInfo = struct { }; /// Unsubscription result -pub const UnsubscribeResult = struct { +pub const SchemaUnsubscribeResult = struct { success : bool, subscriptions_removed : usize, error : []const u8, @@ -283,8 +283,8 @@ pub fn subscription_info_create(subscription_id: usize, subscriber_id: []const u } /// Create unsubscription result -pub fn unsubscribe_result_create(success: bool, removed: usize) UnsubscribeResult { - return UnsubscribeResult{ +pub fn unsubscribe_result_create(success: bool, removed: usize) SchemaUnsubscribeResult { + return SchemaUnsubscribeResult{ .success = success, .subscriptions_removed = removed, .error = "", diff --git a/specs/port/browseros/trios/agent-server/apps/server/src/api/utils/security.t27 b/specs/port/browseros/trios/agent-server/apps/server/src/api/utils/security.t27 index 8d245377ad..b831925b9a 100644 --- a/specs/port/browseros/trios/agent-server/apps/server/src/api/utils/security.t27 +++ b/specs/port/browseros/trios/agent-server/apps/server/src/api/utils/security.t27 @@ -77,14 +77,14 @@ fn extractHostnameFromReferer(referer: []const u8) -> ?[]const u8 { } // The request facts the decision needs, as the framework hands them over. -pub const Context = struct { +pub const LocalhostContext = struct { socketAddr: ?[]const u8, hostHeader: []const u8, refererHeader: ?[]const u8, }; // The original function took the framework context; it forwards to the decision. -pub fn isLocalhostRequest(c: Context) -> bool { +pub fn isLocalhostRequest(c: LocalhostContext) -> bool { return isLocalhostDecision(c.socketAddr, c.hostHeader, c.refererHeader); } diff --git a/specs/server/router.t27 b/specs/server/router.t27 index 4ee25afbee..04937325b3 100644 --- a/specs/server/router.t27 +++ b/specs/server/router.t27 @@ -75,7 +75,7 @@ pub const RouteMatch = struct { }; /// Result of matching one pattern against path segments -pub const MatchResult = struct { +pub const RouteMatchResult = struct { matched : bool, params : []const RouteParam, }; @@ -198,7 +198,7 @@ pub fn path_split(path: []const u8) PathSegments { } /// Match route pattern against path segments -pub fn match_route(pattern: []const u8, segments: PathSegments) MatchResult { +pub fn match_route(pattern: []const u8, segments: PathSegments) RouteMatchResult { const pattern_segments = path_split(pattern); if (pattern_segments.count != segments.count) { @@ -206,7 +206,7 @@ pub fn match_route(pattern: []const u8, segments: PathSegments) MatchResult { if (pattern_has_wildcard(pattern)) { return match_wildcard(pattern_segments, segments); } - return MatchResult{ .matched = false, .params = &[_]RouteParam{} }; + return RouteMatchResult{ .matched = false, .params = &[_]RouteParam{} }; } var params : []const RouteParam = &[_]RouteParam{}; @@ -226,7 +226,7 @@ pub fn match_route(pattern: []const u8, segments: PathSegments) MatchResult { } } - return MatchResult{ .matched = matched, .params = params }; + return RouteMatchResult{ .matched = matched, .params = params }; } /// Check if pattern has wildcard @@ -235,10 +235,10 @@ pub fn pattern_has_wildcard(pattern: []const u8) bool { } /// Match wildcard pattern against segments -pub fn match_wildcard(pattern: PathSegments, segments: PathSegments) MatchResult { +pub fn match_wildcard(pattern: PathSegments, segments: PathSegments) RouteMatchResult { const wildcard_idx = find_wildcard_index(pattern.segments); if (wildcard_idx == null) { - return MatchResult{ .matched = false, .params = &[_]RouteParam{} }; + return RouteMatchResult{ .matched = false, .params = &[_]RouteParam{} }; } // Prefix must match @@ -266,7 +266,7 @@ pub fn match_wildcard(pattern: PathSegments, segments: PathSegments) MatchResult params = append_param(params, param); } - return MatchResult{ .matched = matched, .params = params }; + return RouteMatchResult{ .matched = matched, .params = params }; } /// Find wildcard index in pattern From d04bd1576846dfc2ca52724cdfbc11d9255ec9f8 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Sun, 18 Oct 2026 17:51:05 +0700 Subject: [PATCH 2/2] ledger: unsubscribe_result_create is no longer a duplicate body (Closes #10389) Co-Authored-By: Claude Sonnet 5.5 --- tools/duplicate_bodies_baseline.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/duplicate_bodies_baseline.txt b/tools/duplicate_bodies_baseline.txt index c4cb66ef9e..e087d2a1c0 100644 --- a/tools/duplicate_bodies_baseline.txt +++ b/tools/duplicate_bodies_baseline.txt @@ -169,7 +169,6 @@ trit_max 2 trit_min 2 trit_mul_closed 2 uart_tx_bit_at 2 -unsubscribe_result_create 2 v_cs_chimera 2 validate_blink_state 2 validate_led_config 2