AI3D-379 Pydantic config migration — fleet changes

Generated 2026-09-02T10:51:46.473572+00:00. Window: 2026-09-01 00:00 to now.

Order: LLM-applied order

What changed

Every AI3D package config module now derives from iolabs.common.config_loader.ConfigModel (pydantic v2, unknown keys rejected, frozen, legacy coercion preserved) and is built with config_loader.load_config. About fifteen hand-rolled whitelist/coercion implementations were deleted. Adding a config key anywhere in the fleet is now: add the field to the model and the same key to the packaged *.default.json, nothing else.

83 AI3D-379 commits across 22 repos, all local and unpushed; iolabs-common 0.9.0 is not on Nexus. Per-repo chain: migration → repin iolabs-common>=0.9.0 → review fixes (Grok finder / Opus fixer, one Fable pass on the shared layer) → "Align config module with fleet pattern". Remaining commits in the window are AI3D-382 (already released) and unrelated small items.

Verification

Release order (blocking)

  1. Publish common 0.9.0 to Nexus.
  2. Re-lock and publish each leaf package (uv.lock files were deliberately left untouched).
  3. Orchestrator repin.

Not migrated by design: legacy monorepo 3dai.iolabs.pointcloud, orchestrator scripts, repos without config code; four Bitbucket repos were not clonable with the SSH key (datasetsorter, datasetsorter.autotag, roadmarkingspocafterml, iokiriollpreview, modelingtools).

Warnings

Matching Commits

  1. iolabs-common (shared config layer) c080353: AI3D-379 Pydantic config layer (ConfigModel, load_config), deprecate hand-rolled coercion; 0.8.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:13:30+02:00

    8 files · 63 snippets · score 85

    • The shared layer. New config_model.py: ConfigModel (pydantic v2, extra=forbid, frozen, validate_default), load_config (packaged JSON → optional replacement file → deep-merged overrides → validated model), validate_config, format_validation_error (legacy-shaped messages: unknown keys with allowed-key hints, dotted field paths).
    • A field_validator('*', mode='before') routes every field through the legacy coercion matrix (coerce_config_value) so bool/int/float/str/Literal/Optional/list/tuple behave exactly as the hand-rolled helpers did.
    • validate_allowed_keys, coerce_to_field_type, dataclass_from_mapping, validate_against_defaults kept as DeprecationWarning shims for published wheels.
  2. iolabs-common (shared config layer) be21bff: AI3D-379 Release as 0.9.0 (0.8.0 already shipped AI3D-382); pass model_validator messages through

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:00+02:00

    5 files · 11 snippets · score 85

    • Version bumped to 0.9.0: 0.8.0 was already tagged and published for AI3D-382 the same morning.
    • Messages raised inside package model_validators now pass through verbatim instead of being re-wrapped.
  3. iolabs-common (shared config layer) dc43ccb: AI3D-379 Review fixes: unwrap nested Annotated in coercion, reject non-mapping raw/overrides, alias names in value errors

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:56:50+02:00

    3 files · 14 snippets · score 75

    • Fable adversarial pass: nested Annotated[...] inside Optional/sequences is unwrapped before coercion (real hit: visualizationoverlays RGBA tuples were bypassing the matrix).
    • Non-mapping raw config / overrides rejected with the package error class instead of a pydantic traceback.
    • Value errors name the alias, not the Python field.
  4. iolabs-common (shared config layer) c98fc43: AI3D-379 Review fixes: restore float() fallback in int/float coercion, list all AliasChoices keys, drop dead logger, document by_alias dumps

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:09:53+02:00

    5 files · 21 snippets · score 85

    • Grok review + Opus fix: int/float coercion falls back to float(value) for Decimal / numpy scalars / 0-d arrays (bytes still rejected), matching the pre-pydantic helper.
    • Allowed-key hints list every AliasChoices entry. Dead module logger removed.
  5. iolabs-common (shared config layer) 943e710: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:37:11+02:00

    4 files · 20 snippets · score 75

    • Fleet style rules written into the module docstring: <Name>Config / <Name><Section>Config naming, one <Name>ConfigError, keyword-only overrides/config_path, no field aliases, tuple sequence fields, fixed test names in tests/test_config.py.
    • New public load_json_overrides(path, error_cls=): the one sanctioned reader for user JSON override files.
  6. Lanefinder (job config + wrappers) 89c38e6: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:35:55+02:00

    7 files · 23 snippets · score 85

    • JobConfig becomes a ConfigModel; unknown job-config keys rejected with allowed-key hints. Step 8 wrapper switched to the new asphaltedge loader signature.
  7. Lanefinder (job config + wrappers) c096c20: AI3D-379 Review fixes: default_factory for set, JobConfigError on malformed JSON, config tests

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:09:03+02:00

    2 files · 6 snippets · score 75

    • default_factory for the set-valued field (shared mutable default), malformed JSON raises JobConfigError, config tests added.
  8. Lanefinder (job config + wrappers) 93a0953: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:11+02:00

    3 files · 15 snippets · score 75

    • Fleet-pattern alignment of job_config.py: docstring shape, error class naming, canonical test names.
  9. Lanefinder (job config + wrappers) 3a6c762: AI3D-379 Read job config via shared load_json_overrides

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T11:50:10+02:00

    2 files · 3 snippets · score 75

    • Last hand-rolled JSON reader replaced by the shared load_json_overrides; error text changes from “not valid JSON” to “Invalid JSON in config file …”.
  10. Lanefinder (job config + wrappers) f4f0559: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  11. Step 1 trajectorydetect 8c001f9: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:45:47+02:00

    9 files · 21 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  12. Step 1 trajectorydetect ad40da4: AI3D-379 Review fixes: normalize accepts TrajectoryConfig, JSON/model defaults parity test, README deps

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:08:03+02:00

    3 files · 9 snippets · score 75

    • trajectorydetect: normalize_trajectory_config accepts a validated model; JSON/model parity test.
  13. Step 1 trajectorydetect c882a1b: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:36:31+02:00

    3 files · 15 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  14. Step 2 trajectoryfilter ec51835: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:33:47+02:00

    3 files · 5 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  15. Step 2 trajectoryfilter d3ef109: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:36:46+02:00

    5 files · 13 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  16. Step 2 trajectoryfilter 0cc2b00: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  17. Step 3 segmentationtrajectory f081ed9: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:34:28+02:00

    8 files · 25 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  18. Step 3 segmentationtrajectory 88af931: AI3D-379 Review fixes: accept write_only_segments null, enforce las_points_per_chunk>0, doc/test gaps

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:07:34+02:00

    6 files · 15 snippets · score 85

    • segmentationtrajectory: write_only_segments: null accepted, las_points_per_chunk > 0 enforced.
  19. Step 3 segmentationtrajectory 64cc82f: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:37:55+02:00

    4 files · 31 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  20. Step 3 segmentationtrajectory e98e0a1: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  21. Step 3 3dsegmentation e47779f: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <developer.ai@iolabs.ch> 2026-09-02T08:39:21+02:00

    11 files · 57 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  22. Step 3 3dsegmentation 372ca70: AI3D-379 Review fixes: correct --config replace-not-overlay docs, refresh stale ConfigError docstring

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:14:20+02:00

    4 files · 7 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  23. Step 3 3dsegmentation 22ba30b: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:41+02:00

    4 files · 59 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  24. Step 3 3dsegmentation 98c959d: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  25. Step 5 filteringintensity ac8b5d1: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:34:11+02:00

    5 files · 21 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  26. Step 5 filteringintensity fec59aa: AI3D-379 Review fixes: accept null config sections, packaged JSON default_sigma key, README dep floors

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:56:49+02:00

    4 files · 9 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  27. Step 5 filteringintensity 448b7a8: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:38:09+02:00

    3 files · 9 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  28. Step 5 filteringintensity eed84ea: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  29. Step 5 linebitmapinference c209bfa: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:32:11+02:00

    4 files · 9 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  30. Step 5 linebitmapinference 2b22449: AI3D-379 Review fixes: null vectorization section falls back to defaults

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:58:33+02:00

    2 files · 4 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  31. Step 5 linebitmapinference f800a27: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:36:56+02:00

    6 files · 32 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  32. Step 5 linebitmapinference 9f0dd24: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  33. Step 6 filteringclusters 883db80: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:34:34+02:00

    4 files · 11 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  34. Step 6 filteringclusters 40561e9: AI3D-379 Review fixes: null config sections fall back to section defaults

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:58:12+02:00

    3 files · 5 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  35. Step 6 filteringclusters db67bdd: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:38:40+02:00

    11 files · 33 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  36. Step 6 filteringclusters 51c8346: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  37. Step 6 maskclustering 9354e90: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:37:12+02:00

    9 files · 51 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  38. Step 6 maskclustering b1cd342: AI3D-379 Review fixes: int coercion for mask.connectivity, reject non-mapping config

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:04:35+02:00

    2 files · 6 snippets · score 75

    • maskclustering: mask.connectivity coerced as int; non-mapping config rejected.
  39. Step 6 maskclustering 3bc1b7b: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:40:09+02:00

    6 files · 31 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  40. Step 6 maskclustering 590f6ef: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  41. Step 7 modellinglines 03b2aa6: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:37:01+02:00

    5 files · 11 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  42. Step 7 modellinglines 1d31948: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:14+02:00

    5 files · 17 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  43. Step 7 modellinglines 3c9c4f0: AI3D-379 Sort config imports

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:35+02:00

    1 files · 1 snippets · score 75

    • Import ordering only.
  44. Step 7 modellinglines bd0968f: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  45. Step 7b visualizationoverlays a4018c3: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:36:01+02:00

    4 files · 7 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  46. Step 7b visualizationoverlays 5148712: AI3D-379 Review fixes: reject bool/junk collage_parts with one clean error, run colors map values through the fleet RGBA matrix

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:59:40+02:00

    2 files · 4 snippets · score 75

    • visualizationoverlays: bool/junk collage_parts rejected with one clean error; colour-map values run through the RGBA coercion matrix.
  47. Step 7b visualizationoverlays 28ca211: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:38:02+02:00

    6 files · 39 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  48. Step 7b visualizationoverlays 28070a6: AI3D-379 Use shared load_json_overrides for the override file

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T11:50:12+02:00

    1 files · 2 snippets · score 75

    • Local _load_json_overrides stand-in dropped in favour of the shared helper now exported by common.
  49. Step 7b visualizationoverlays f1b3204: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  50. Step 8 asphaltedge e4b55dd: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <developer.ai@iolabs.ch> 2026-09-02T08:33:50+02:00

    4 files · 7 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  51. Step 8 asphaltedge d4ffca6: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:44:31+02:00

    7 files · 37 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  52. Step 8 asphaltedge edf34fd: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  53. Step 9 filteringsurface e99dbec: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:37:52+02:00

    5 files · 21 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  54. Step 9 filteringsurface 8f58342: AI3D-379 Review fixes: null config sections fall back to defaults

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:59:21+02:00

    3 files · 5 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  55. Step 9 filteringsurface 126c81b: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:37:29+02:00

    4 files · 13 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  56. Step 9 filteringsurface e8953ba: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  57. guardrails 14aca88: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:38:21+02:00

    15 files · 113 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  58. guardrails 0758988: AI3D-379 Review fixes: validated with_overrides() replaces model_copy(update=) config derivations

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:01:03+02:00

    3 files · 13 snippets · score 75

    • guardrails: derived configs go through a validating with_overrides() instead of model_copy(update=), which bypasses validation.
  59. guardrails f56235e: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:41:44+02:00

    9 files · 29 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  60. guardrails 49e7d8a: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  61. guardrails-seg3d 6f7ed4a: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:34:36+02:00

    4 files · 11 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  62. guardrails-seg3d 9f189cc: AI3D-379 Review fixes: sync __version__ to 0.2.1, correct --set docstring

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:58:10+02:00

    2 files · 3 snippets · score 85

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  63. guardrails-seg3d 171ba86: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:31+02:00

    3 files · 5 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  64. guardrails-seg3d a97df73: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  65. tablecloth 637406a: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:32:36+02:00

    6 files · 23 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  66. tablecloth 029b9ef: AI3D-379 Review fixes: README coercion example matches Literal mechanism field

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:56:30+02:00

    1 files · 1 snippets · score 30

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  67. tablecloth 8c72b27: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:38:53+02:00

    3 files · 17 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  68. tablecloth 9d2cce6: AI3D-379 Repin iolabs-common>=0.9.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:43:07+02:00

    1 files · 1 snippets · score 85

    • iolabs-common>=0.9.0 pin only. uv.lock not regenerated on purpose: 0.9.0 is not on Nexus yet.
  69. verticalsigns d8ae433: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:51:14+02:00

    32 files · 123 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  70. verticalsigns b2c4267: AI3D-379 Review fixes: JSON-faithful config dump, packaged JSON completed to the model, validating with_overrides, docs

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:08:33+02:00

    8 files · 31 snippets · score 75

    • verticalsigns: model_dump(mode='json') for run-stats output, packaged JSON completed to the full model (125 keys added, 0 values changed), with_overrides re-validates.
  71. verticalsigns fdf0c72: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:49:02+02:00

    32 files · 71 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  72. mlsegmentation e60e7ec: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:49:19+02:00

    13 files · 63 snippets · score 90

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  73. mlsegmentation 8ddca59: AI3D-379 Review fixes: freeze mapping fields, drop provenance aliases, reject null visualization

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:12:22+02:00

    5 files · 12 snippets · score 75

    • mlsegmentation: mapping fields frozen, provenance aliases dropped, null visualization rejected.
  74. mlsegmentation 5e76e63: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:40:19+02:00

    27 files · 271 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  75. mlharness bf85ad2: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:45:50+02:00

    6 files · 24 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  76. mlharness c87f779: AI3D-379 Review fixes: SectionModel null-means-default, int precision, bool guard on precision/devices

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:19:39+02:00

    4 files · 20 snippets · score 75

    • mlharness: SectionModel null-means-default, int precision preserved, bool guard on precision/devices.
  77. mlharness 2ce8912: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:03+02:00

    6 files · 25 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  78. guardraildetection (ML) b407f47: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:46:42+02:00

    5 files · 25 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  79. guardraildetection (ML) 38464e8: AI3D-379 Review fixes: re-validate CLI overrides, null YAML sections mean defaults

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:20:38+02:00

    4 files · 17 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  80. guardraildetection (ML) 7a85e44: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:36:44+02:00

    5 files · 21 snippets · score 75

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  81. linebitmapimagerasterizer (ML) b3707fd: AI3D-379 Pydantic config models via iolabs-common ConfigModel

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:47:59+02:00

    6 files · 27 snippets · score 85

    • Package config module rewritten on ConfigModel: nested section models mirror the packaged *.default.json key for key; whitelist sets and hand-rolled coercion deleted; loader built on config_loader.load_config. Public entry-point names and return types unchanged so lanefinder wrappers keep working.
    • Adds pydantic>=2.7 dependency.
  82. linebitmapimagerasterizer (ML) 6a3391c: AI3D-379 Review fixes: re-validate CLI overrides, null YAML sections mean defaults, int precision, bool guard

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:21:59+02:00

    4 files · 21 snippets · score 75

    • Fixes from the Grok review / Opus fix pass (see subject). Typical items: null config sections fall back to section defaults (pre-migration behaviour), re-validation instead of model_copy(update=), doc/test parity with the packaged JSON.
  83. linebitmapimagerasterizer (ML) 9b68a51: AI3D-379 Align config module with fleet pattern

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T09:39:04+02:00

    6 files · 23 snippets · score 85

    • Mechanical alignment with the fleet pattern from the common docstring: naming (<Name><Section>Config), module constants, keyword-only entry points, canonical test names, README config section. No behaviour change intended.
  84. iolabs-common (shared config layer) 270b56b: AI3D-382 Carry number_of_returns through ColorIntensityData

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:43:42+02:00

    2 files · 11 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  85. iolabs-common (shared config layer) 3c981c5: AI3D-382 Add number_of_returns to the run3 point-NPZ contract

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:43:42+02:00

    2 files · 9 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  86. iolabs-common (shared config layer) 1bb1991: AI3D-382 Coerce number_of_returns to uint8 on load and reject bool arrays

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T11:09:17+02:00

    2 files · 6 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  87. iolabs-common (shared config layer) 639d755: AI3D-382 Drive the point-record contract from a schema registry

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:54:43+02:00

    2 files · 12 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  88. iolabs-common (shared config layer) a733b88: AI3D-382 Derive ColorIntensityData mask and append from its fields

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:55:33+02:00

    2 files · 6 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  89. iolabs-common (shared config layer) cbbb210: AI3D-382 Harden generic record helpers and field mapping

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T15:08:19+02:00

    4 files · 12 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  90. iolabs-common (shared config layer) b9e3427: AI3D-382 Document the extra-key policy of the point-record helpers

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T23:39:27+02:00

    1 files · 4 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  91. iolabs-common (shared config layer) 14f041e: AI3D-382 Make ColorIntensityData.number_of_returns keyword-only and uint8-enforced

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T23:39:27+02:00

    4 files · 15 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  92. iolabs-common (shared config layer) f7e9f7c: AI3D-382 Use module imports (Google style) in touched files

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T07:50:14+02:00

    4 files · 117 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  93. iolabs-common (shared config layer) 8fe20d7: AI3D-382 Release v0.8.0

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:02:29+02:00

    2 files · 3 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  94. Step 3 segmentationtrajectory 74a972e: AI3D-382 Write number_of_returns into run3 segment NPZ outputs

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:48:35+02:00

    1 files · 13 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  95. Step 3 segmentationtrajectory d09a6ce: AI3D-382 Cover number_of_returns write path and zero fallback in tests

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:48:35+02:00

    2 files · 11 snippets · score 55

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  96. Step 3 segmentationtrajectory 27008e7: AI3D-382 Document the number_of_returns NPZ field

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:50:28+02:00

    3 files · 5 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  97. Step 3 segmentationtrajectory 30dc2f2: AI3D-382 Document the schema-driven NPZ field tuple

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:54:28+02:00

    1 files · 1 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  98. Step 3 segmentationtrajectory 4e54928: AI3D-382 Thread run3 NPZ per-point fields as one schema-driven dict

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:54:28+02:00

    2 files · 13 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  99. Step 3 segmentationtrajectory 45eb56e: AI3D-382 Generalize the LAS field fallback helper and freeze DEFAULT_FIELD_DTYPES

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T15:11:02+02:00

    1 files · 4 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  100. Step 3 segmentationtrajectory 014ab30: AI3D-382 Build ColorIntensityData kwargs by feature detection so old iolabs-common works

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T15:11:22+02:00

    2 files · 10 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  101. Step 3 segmentationtrajectory 5d20310: AI3D-382 Guard the run3 NPZ schema against drift from iolabs.common.segment_points_io

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T15:11:49+02:00

    2 files · 5 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  102. Step 3 segmentationtrajectory 60bcec1: AI3D-382 Pin zero-fill semantics in the schema parity test and document the fallback cast

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T23:35:31+02:00

    2 files · 5 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  103. Step 3 segmentationtrajectory 36771c7: AI3D-382 Use module imports (Google style) in touched files

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T07:29:48+02:00

    3 files · 58 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  104. Step 3 segmentationtrajectory b6243aa: AI3D-382 Require iolabs-common>=0.8.0 for the run3 NPZ schema

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:06+02:00

    2 files · 23 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  105. Step 3 segmentationtrajectory a05f78d: AI3D-382 Release v0.7.3

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:07+02:00

    2 files · 3 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  106. Step 3 3dsegmentation de39aa0: AI3D-382 Carry unknown run3 record keys through SegmentCloud

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:51:34+02:00

    2 files · 7 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  107. Step 3 3dsegmentation 4d72a38: AI3D-382 Use module imports (Google style) in touched files

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T07:50:11+02:00

    3 files · 199 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  108. Step 3 3dsegmentation 1b03d8f: AI3D-382 Require iolabs-common>=0.8.0 for the run3 NPZ schema

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:24+02:00

    2 files · 5 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  109. Step 3 3dsegmentation fd288df: AI3D-382 Release v0.3.1

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:26+02:00

    2 files · 3 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  110. Step 5 filteringintensity 31a4ceb: AI3D-382 carry number_of_returns through step5 bright-points NPZ I/O

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T10:49:18+02:00

    1 files · 8 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  111. Step 5 filteringintensity ab5a38b: AI3D-382 Revert bright-filter number_of_returns until new common release

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T11:07:39+02:00

    1 files · 8 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  112. Step 6 maskclustering 3bd1d4e: AI3D-382 Derive separation channel dtypes from the record schema

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:53:04+02:00

    1 files · 2 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  113. Step 6 maskclustering f9f1b08: AI3D-382 Load run3 records through common segment_points_io and carry channels by key

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:53:04+02:00

    1 files · 6 snippets · score 75

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  114. Step 6 maskclustering 2a79902: AI3D-382 Forward extra ColorIntensityData channels into cluster NPZs

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T23:36:12+02:00

    2 files · 9 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  115. Step 6 maskclustering cffd511: AI3D-382 Use module imports (Google style) in touched files

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T07:50:17+02:00

    4 files · 66 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  116. Step 6 maskclustering c800f69: AI3D-382 Require iolabs-common>=0.8.0 for the run3 NPZ schema

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:16+02:00

    2 files · 5 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  117. Step 6 maskclustering 0c88334: AI3D-382 Release v0.3.1

    Miroslav Simko <ms@iolabs.ch> 2026-09-02T08:04:17+02:00

    2 files · 3 snippets · score 85

    • AI3D-382 (number_of_returns through the run3 NPZ contract). Unrelated to the config migration; already released and pushed. Included because it falls in the time window.
  118. Lanefinder (job config + wrappers) e8bca6d: Merged in ai3d-376-xml-viz-1-1-classes (pull request #6)

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T06:29:31Z

    0 files · 0 snippets · score 10

    • Outside AI3D-379; in the window only.
  119. Lanefinder (job config + wrappers) 5934627: Ignore Wrangler cache directory

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T08:28:50+02:00

    1 files · 1 snippets · score 45

    • Outside AI3D-379; in the window only.
  120. verticalsigns a963630: Merged in t3code/improve-tree-recall (pull request #8)

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T07:19:54Z

    0 files · 0 snippets · score 10

    • Outside AI3D-379; in the window only.
  121. verticalsigns 0a59693: AI3D-373: add tree recall improvement plan

    Miroslav Simko <ms@iolabs.ch> 2026-09-01T08:10:21+02:00

    1 files · 1 snippets · score 30

    • Outside AI3D-379; in the window only.
  122. linebitmapimagerasterizer (ML) 4f97a43: Add extract_chevrons script

    Ondrej Ciganik <oc@ioproperty.cz> 2026-09-01T19:05:09+02:00

    1 files · 1 snippets · score 75

    • Outside AI3D-379; in the window only.

Context Commits

No matching commits.