Verification ledger: admin chapters 04 to 09
Scope: every > Not confirmed by code: block in admin/04 to admin/09. Static reading only.
Result: 24 blocks. 16 CONFIRMED, 7 CORRECTED, 1 UNRESOLVED (partly resolved).
Checked again on 2026-10-11 against main (f351a1d1f): row 04 cites 900-dev-seed.sql:244-253, and those lines are unchanged. The fix F-07 (48086a858) removed two grants of the same file at later lines (about 569 and 580), which no row here cites. The rows that name receive-line/ReceiveLine.tsx still point at an existing file.
| file | original claim | outcome | evidence (file:line) | action taken |
|---|---|---|---|---|
| 04 | Meaning of Rec, Con, Man, Dst, Brk; type filter of Ship To picker | CONFIRMED | crates/libs/wms-lib-sql/sql/dev_only/install-db/900-dev-seed.sql:244-253 (code list OWNER_TYPES: Receiver, Consignee, Manufacturer, Distributor, Broker); wms-meta-ui/migrations/001_baseline.sql:3342 (owner_customer filter owner_type = Cus, used by shipment_order_customer_list); enum wms-lib-core/src/model/owners/owner.rs:25-35 | Table rows added for the five types; block replaced by the Cus filter fact |
| 04 | Is an owner settings row created for a new owner? | CONFIRMED (no) | services/app-server/src/web/rpcs/owner_rpc.rs:260-320 (config created only if let Some(cfg)); wms-meta-ui/migrations/061_owner_and_sku_use_save_graph.sql:36-56 (config node optional: true); update path owner_rpc.rs:~400-412 creates it if missing | Block replaced with a plain bullet: no automatic row, Save All creates it |
| 04 | Which owner default policies a new SKU copies | CORRECTED | Defaults are not copied; they are a run-time fallback: wms-lib-core/src/model/sku.rs:874,915,957 (COALESCE(s.x_policy_id, oc.default_x_policy_id)); wms-inbound/.../validation_service.rs:43-48; replenishment and lot defaults only in owner_config_rpc.rs:73-75, owner_rpc.rs:180-182 | Guide said "fill in new SKUs"; text fixed, block removed |
| 04 | A screen or command that adds a uom_class row | CONFIRMED (none) | wms-lib-core/src/model/policies/uom_class.rs has only validate_* and read fns (lines 70, 83, 207, 248); rows come from wms-app/migrations/001_baseline.sql:10069 | Block replaced with plain bullet |
| 04 | Old note describes parent_pack_item_id; code uses child_pack_item_id | CONFIRMED | wms-app/migrations/001_baseline.sql:3642,13261,17325 (child_pack_item_id); docs-obsidian/domain/pack-hierarchy.md:26,52 still says parent_pack_item_id | Block replaced with plain statement; note flagged out of date |
| 04 | What Industry Profile enforces | CONFIRMED (nothing) | wms-app/migrations/001_baseline.sql:6024 ("Soft hint"); only references are model structs wms-lib-core/src/model/sku_serial_config.rs:146,197,232,280,302; values 001_baseline.sql:8053-8054 | Block replaced: stored hint, no rule reads it |
| 04 | Allowed values of Default Usage Policy and Owned By | CONFIRMED | wms-enterprise/migrations/012_handling_unit_type.sql:5 (OwnOnly, WarehouseShared); wms-meta-ui/migrations/080_handling_unit_screens.sql:424 (ThisWarehouse = "This warehouse", Owner = "Client"); wms-inventory/.../handling_unit/register.rs:166-167 (owner refused with ThisWarehouse) | Values listed |
| 05 | Can a web user create a receipt line with no Pack? | CORRECTED | wms-app/migrations/001_baseline.sql:2048,2067 (receipt_detail.pack_id bigint NOT NULL, no default); wms-lib-core/src/model/receipt/receipt_detail.rs:1136 (create validates pack only if present); other writers take sku.pack_id (wms-inbound/.../receive_line_resolver.rs:127) | Block replaced: a manual line needs a Pack; DB refuses otherwise |
| 05 | Does the web Receive window apply RF quantity checks? | CORRECTED | Web calls receipt_receive_against_asn: wms-meta-ui/migrations/001_baseline.sql:5999-6000,6276; RF calls it too: clients/rf-go/internal/app/receiving_loop_flow_test.go; web handles excess/shortage questions: ui/wms-component/components/receive-line/ReceiveLine.tsx:30-37 | Tab-title bullet fixed ("RF only" was wrong) |
| 05 | Web button for damage dispositions | CORRECTED | No hit in wms-meta-ui migrations, ui/wms-component, or clients/ for receipt_set_damage_disposition, receipt_write_off_damage, receipt_move_damage_to_rtv; only services/app-server/src/web/rpcs/receipt_commands_rpc.rs | Guide said "(and RF)"; wrong. Now says API only |
| 05 | Exact English text of putaway editor refusals | CORRECTED | Texts are rows putaway_step.* in wms-meta-ui/migrations/001_baseline.sql:21441-21448,21492,21618,21627; server errors wms-inventory/src/putaway/policy.rs:21,37 | Fixed cannot save — {0}, closed by step N (S), the long mixed-lot text, em dash in "No conditions" text |
| 06 | No Close button for shipment order | CONFIRMED | No metadata or client use of shipment_order_close; wms-outbound/src/domain/shipment_order/aggregate.rs:246-271 (close rules); wms-outbound/src/service/order/close.rs:1-18 (only cancellation makes a line finished); shipment_order_commands_rpc.rs:52 (Admin, Manager) | Block replaced with fact |
| 06 | Wave policy has no seed | CONFIRMED | No INSERT INTO wave_policy in any migration or dev seed (wms-app/migrations/078,081,082) | Block replaced |
| 06 | Full runtime order of pick-short actions | CONFIRMED | wms-outbound/src/picking/remediation.rs:1-30 (fixed order), :165-215, :440-520; picking/commands/short.rs:1-29,392 | Order written as five steps |
| 06 | Web packing queue? | CONFIRMED (none) | Migration 110_packing_station_queue.sql only inserts message narration.flow.station_unknown; query packing_queue_list at app-server/src/web/rpcs/packing_rpc.rs:54; used by RF screen wms-lib-sql/sql/rf-screens/103_uc_pack_verify.sql:72,111 | Block replaced |
| 07 | No web screen for printers or label design | CORRECTED | Label designer exists: button Label designer in the Reports page for Studio admins, web-ui-server/src/components/pages/reports_iframe.rs:973-974,950-955,1039-1045; it edits label_definitions and label_templates (ui/reports-designer/src/bridge.ts:41-47; host API reports_iframe.rs:592-703). Printer configurations: no web form | Table rows and text fixed; printers stay API only |
| 07 | Link of zone Default Label Printer / Default Report Printer to printer_configurations | CORRECTED | Zone fields are plain text, mapped only in app-server/src/web/rpcs/putawayzone_rpc.rs:55-56; printer is chosen only from printer_assignments (wms-lib-core/src/model/printer_assignments.rs:170-211, Zone scope_id = putawayzone.id); zone_code/is_default of a printer configuration are not read (reports/printer_configuration.rs:27-28) | Block replaced; "What this affects later" bullet fixed |
| 07 | How an admin reaches printer_assignments_list_form | CONFIRMED (cannot) | web-ui-server/src/meta/surface_census.rs:154-163 (form listed as having no door); no menu item, tab item or navigation targets form 220 (wms-meta-ui/migrations/001_baseline.sql:5899, only nav rows 1220, 1224 target form 221) | Block replaced |
| 07 | How a barcode format is chosen for a scan | CONFIRMED | wms-inventory/src/barcode_scan.rs:223-270 (claimant: prefix = barcode_identifier, auto_detect_identifier on, longest identifier, then lowest id; empty identifier claims nothing) | Block replaced |
| 08 | Web screen to add or edit report definitions | CONFIRMED | report_def_menu inactive: wms-meta-ui/migrations/001_baseline.sql:21067, retirement test web-ui-server/src/services/studio/reports_retirement_tests.rs:50,103; import-catalog: quark-reports/src/main.rs:31; designer button reports_iframe.rs:973, claim reports_iframe.rs:852-865 | Block replaced with two ways to add definitions |
| 08 | Dashboard layout and how users reach it | CONFIRMED | Tab item dashboard, form 1: wms-meta-ui/migrations/001_baseline.sql:5784,23066; toolbar and panels web-ui-server/src/components/pages/dashboard/mod.rs:40-120,151-170 | Block replaced |
| 09 | Which ERP connectors ship ready-made | CONFIRMED | integration-platform/src/templates/connectors.rs (16 connectors, e.g. one_c_http line 247, sap_rfc line 264); templates/flows.rs (29 flows); seeded at start: src/main.rs:58, templates/seeder.rs:10-60 | List added |
| 09 | Web field for event_filter / warehouse_filter | CONFIRMED (none, not even API) | No hit in wms-meta-ui migrations; wms-lib-core/src/model/integration/integration_subscriber.rs has no filter field; worker reads them: app-server/src/services/integration_delivery.rs:421-460; default wms-enterprise/migrations/001_baseline.sql:709-710 | Block replaced |
| 09 | IPaaS login model and roles | UNRESOLVED (login resolved, roles not) | Login: integration-platform/src/middleware.rs:35-60, server.rs:191-198, web-ui-server/.../integration_platform.rs:26; menu item ipaas: wms-meta-ui/migrations/001_baseline.sql:21042. Role grants are runtime data; no seed names them | Login written as fact. Residual block kept: which roles see IPaaS, with verify steps |
Product findings
crates/services/web-ui-server/src/meta/surface_census.rs:158: the screenprinter_assignments_list_formhas no door. Admins cannot manage printer assignments in the UI. Same for four other forms listed there.crates/services/app-server/src/web/rpcs/putawayzone_rpc.rs:55-56andcrates/libs/wms-lib-core/src/model/printer_assignments.rs:170-211: the zone fieldsDefault Label Printer,Default Report Printer,Auto Print Addr LabelandAuto Print Carton Labelare shown on the zone form but no printing code reads them. They look like they work.crates/libs/wms-lib-core/src/model/reports/printer_configuration.rs:27-28:zone_codeandis_defaultof a printer are stored and never used by the printer lookup.crates/services/app-server/src/web/rpcs/receipt_commands_rpc.rs:receipt_set_damage_disposition,receipt_write_off_damage,receipt_move_damage_to_rtvhave no web button and no RF screen. A damage record can stay pending, and a receipt with pending damage cannot close (code 77).crates/libs/wms-lib-sql/sql/wms-app/migrations/001_baseline.sql:2067with the receipt line form:receipt_detail.pack_idisNOT NULL, but the form does not markPackas required. The operator gets a database error. Fixed (F-20):ReceiptDetailBmc::createtakes the SKU's pack when none is given.crates/services/web-ui-server/src/components/pages/integration_platform.rs:26,crates/services/integration-platform/src/server.rs:197,crates/services/integration-platform/src/middleware.rs:35-60: the IPaaS frame uses a fixed addresshttp://localhost:8085, the CORS list is fixed tolocalhostorigins, and the UI sends noX-Api-Keywhile CORS does not allow it. WithIP_API_KEYset, the embedded IPaaS cannot log in. It only works in dev mode.crates/libs/wms-lib-sql/sql/wms-app/migrations/001_baseline.sql(owner_config.default_replenishment_policy_id,default_lot_policy_id;app-server/.../owner_config_rpc.rs:73-75): both defaults are stored and shown but no Rust code reads them.crates/services/web-ui-server/src/components/pages/reports_iframe.rs:852-865: the report and label designer right is the Studio-admin right. There is no separate right for editing reports (the code comment says it is temporary). Alsoreports=["*"]lets every user run every report (reports_iframe.rs:798-807).crates/libs/wms-outbound/src/service/order/close.rs:1-18: the code comment says a shipment order can close only when all lines are cancelled, because nothing ships yet. Check whether the comment is current.docs-obsidian/domain/pack-hierarchy.md:26,52: the design note still describesparent_pack_item_id. The database useschild_pack_item_id.crates/services/web-ui-server/src/components/pages/dashboard/dock.rsandlabour.rs: the dock schedule and labour panels have no data source. They show demo figures or say so.