Repository navigation
Carry retire-class passthroughs as v1; openminds_element carry-128; species text accepted in the round trip - #293
Merged
Merged
Conversation
[openMINDS element leftovers carried] (Jess Haley, 2026-10-29): an openminds_element stating an openminds_id or a fields.description is carried whole as v1, citing carry-128. [species text is the openMINDS equivalent] (Jess Haley, 2026-10-29): the openminds_subject round trip reports a Species' definition and synonym as an accepted difference (spec.same, reported as equivalent), not lost. [one folder, final classes only] (Jess Haley, 2026-10-29): branches that left a v1 document as v1 on purpose, but passed it through silently under its retire class (validated against that V2 file), now carry it whole as v1 with a carried_as_v1 note: daqmetadatareader, daqreader, daqsystem and filenavigator (nothing to declare), electrode_offset_voltage and probe_geometry (nothing to fold), syncgraph (no session), fitcurve and vmspikefit (jModelFit, no subject), hartley_calc (no subject), site2channelmap, stimulus_parameter, vmneuralresponseresiduals and vmspikesummary (always), vmspikefilteringparameters (spiketimes), subjectmeasurement (guards 1-4), openminds_element (no block). No register row covers these reasons, so each marker says none. Branches that feed a batch pass or NDI's second pass, and the reshapes, are unchanged. Tests pinning the old passthroughs are inverted (INVERTED 2026-10-29). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FxKLA8Tbf9cpvDe7fuVeKf
…enminds_element openminds_element is read on the renamed path, so pass 1 hands a carried element back as the renamed body (depends_on value -> document_id, renamed superclasses), recorded as a passthrough; the pipeline stores the untouched v1 source (v1_to_v2.m, "A CARRY IS THE V1 SOURCE"). The test compared the renamed body with roundtrip.check and reported those renames as lost and invented (CI on db17ce8). It now checks the passthrough is recorded and compares what is stored, through roundtrip.wholeBatch, as the table-row test above it does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FxKLA8Tbf9cpvDe7fuVeKf
did-schema #235 adds the register rows. Each marker now names its row and each note opens with the row's tag and kind instead of 'unplaced:'. private/jModelFit.m tags carry-136 for fitcurve, carry-137 for vmspikefit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FxKLA8Tbf9cpvDe7fuVeKf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on
V2, withclaude/ecstatic-pascal-md91fw(#292, a test fix this branch's CI needs) merged in as a fast-forward. No MATLAB here: CI will be the first run.1. [openMINDS element leftovers carried] (Jess Haley, 2026-10-29): built
+migrators_j/openminds_element.m: an element whoseopenmindsblock states a non-emptyopenminds_idorfields.descriptionis carried whole as v1. Its note is[carry-128] awaiting_home: ....+roundtrip/openminds_element.m: header updated.testWholeBatchRoundTrip:testAnOpenmindsElementReportsWhatItDoesNotKeepis INVERTED totestAnOpenmindsElementWithAnIdAndADescriptionIsCarried(each field alone also carries).testAnOpenmindsElementWithNeitherConverts.testMigratorsJ: newtestAnOpenmindsElementWithAnIdOrADescriptionIsCarried.2. [species text is the openMINDS equivalent] (Jess Haley, 2026-10-29): built
+roundtrip/openminds_subject.m: for a Species,openminds.fields.definitionand.synonymare added tospec.same, with the decision cited.checkthen reports them underequivalent, the same way the other accepted differences are expressed, and not aslost.testWholeBatchRoundTrip:testAnOpenmindsSubjectRoundTripsis INVERTED totestAnOpenmindsSubjectRoundTripsWithTheSpeciesTextAccepted.3. [one folder, final classes only] (Jess Haley, 2026-10-29): silent passthroughs under a retire class
Carried whole as v1 with a
carried_as_v1note. Each marker says% carry-register: none, because no existing row'swhencovers these reasons:daqmetadatareader.m,daqreader.m,daqsystem.m,filenavigator.melectrode_offset_voltage.m(offset not finite),probe_geometry.m(no axis values)syncgraph.m: no session id, or the sentinelprivate/jModelFit.m(fitcurve, vmspikefit)hartley_calc.m(checked just beforejCalculation; the shared guard injCalculationis unchanged for the other callers)site2channelmap.m,stimulus_parameter.m,vmneuralresponseresiduals.m,vmspikesummary.mstimulus_parameterno longer drops the emptyvalueplaceholder, since a carried document is not read against V2. Its char-value errors are unchanged.vmspikefilteringparameters.m: spiketimes guardsubjectmeasurement.m: guards 1 to 4. Guard 4 only writes a note ifjMeasurementFolddid not already write one (carry-059).openminds_element.m: no openMINDS blockNew helper:
private/jCarryId.m. TheContents.mroster was regenerated.Unchanged: a deliberate input to a batch pass or to NDI's second pass.
control_stimulus_ids,ontology_table_row,openminds_stimulus: NDI second pass.openminds:resolveOpenmindsCitationsand NDIstrainAssemblyread the pass-1 output.daqreader_epochdata_ingested,daqreader_image_epochdata_ingested:resolveEpochProbemapfolds their files and retires the document.epochfiles_ingested:resolveEpochProbemapandepochMint.syncrule(:239):resolveClockAlignmentstamps and re-runs it.stimulus_response_scalar(GUARD 4): armed byepochMint.stimulus_response_scalar_parameters_basic:resolveResponseParameters.Skipped, needs a team answer:
distance_metadata(:119-126) andoneepoch(:107-140). These reshape the document into the retire class rather than leave it as v1. [retired classes leave V2] (1) suggests carrying them, but that would drop the decided reshape. Should they be carried whole as v1, and under which register row?Skipped, built elsewhere:
binaryseries_parameters. The carry citing carry-122 is onclaude/build-image-bodies(4fbfeca).Tests INVERTED 2026-10-29:
testTheResidualPassthroughIsAQuarantinePathByConstruction→testTheResidualDaqsystemIsCarriedWholeAsV1testFilenavigatorWithNothingToDeclarePassesThrough→...IsCarriedtestGraphWithTheEmptySessionSentinelPassesThrough→...IsCarriedtestFixturesRoundTripAsPassthroughs(IngestedEpochs) →...OrCarriestestStimulusParameterEmptyValuePlaceholderIsDropped→...IsCarriedAsWrittencarriedNew tests: hollow daq readers and systems, electrode offset NaN, subjectmeasurement guards, stimulus_parameter, hartley with no subject, subjectless fitcurve.
Side effect: a carried document now pulls its dependents into a carry under carry-064, for example a
syncrule_mappingof a sentinel syncgraph. The hollow and sentinel cases are ones NDI's writers do not produce.check_carry_citations.pyreports OK.test_check_carry_citations.pyreports 19 tests, 0 failures.check_migrator_roster.pyreports OK.Generated by Claude Code