commit 342d8a915272ed8b66d07d79fa8b89c870855905
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Oct 10 20:03:02 2026 -0400

    Improve distcheck bext path handling

commit 9e030edd6005e965048c03f3c43c6f7fb12208e9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Oct 10 11:39:21 2026 -0400

    Update bext logic to make URL modular

commit b5bf1683a2833aaa4987e9ba821041d23d0cbaf2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 8 16:34:31 2026 -0400

    move extern definition

commit eb7e9cb38cefd8986fa0fba83e221e4971b5569f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 8 16:31:46 2026 -0400

    no-tk and goto adjustments for FreeBSD building

commit 84be85a74d16bb7df09e1ae887b06c87c05cc675
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Oct 7 11:05:52 2026 -0400

    Make github.com bext sha1 query non-interactive
    
    This is an optional check, so we never want it to go interactive if
    anything is weird with upstream.
    
    `credential.helper=` prevents credential-manager/browser prompts,
    `credential.interactive=false` disables Git credential interaction, and
    the `GIT_TERMINAL_PROMPT=0` environment variable blocks terminal
    prompting and helps with older Git versions

commit 3fd9ec8f4b9bb2280724fe4288bc328b52607474
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 18:21:05 2026 +0000

    Isolate GCV regression outputs
    
    Give each GCV regression target a distinct output path so parallel
    tests cannot remove one another's results. Validate and clean every
    input immediately, and update companion-file cleanup paths.

commit 7d2392d75429f1e092bb2af1bcb7e84182c79603
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 18:20:41 2026 +0000

    Fix conditional datetime conversion constant
    
    Derive nanoseconds per microsecond from the existing unit constants.
    
    This avoids an unused file-scope constant in clock_gettime builds.

commit 757bb76203c28d3b17a2310adb712fb722e32838
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 01:47:38 2026 -0400

    Update log with commits being incorporated into rel-7-46-0

commit c70bab52c465b64cbef8e46f0bc2cd11a74cc99b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 01:45:41 2026 -0400

    Update version numbers

commit 7929a747ad0209df4f7462e1de2b942793749bb2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 01:42:31 2026 -0400

    Fix Archer saving window sizes before they're ready

commit eac0f4d26599f88a504d0ebd01e7c90bcc487f28
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 00:57:13 2026 -0400

    Adjustments for Archer/Itcl

commit d6ae424de0672a661fcdb7b660a372bff68f0fba
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Oct 6 00:47:05 2026 -0400

    Correct Archer plugin setup

commit 27ba3c4880b82ec3e680ff49d5349f3268384d9d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Oct 5 21:29:34 2026 +0000

    Be more aggressive about making sure the install rpath setup is our standard one.

commit 7ade8db13024f1f3a2375adb9ecc4b469b762422
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Oct 5 15:30:29 2026 -0400

    Got the test backwards

commit e91023f354a62395e3ac60963baa7c88de414893
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Oct 5 13:50:34 2026 -0400

    Disable rtcmp tests for a BRLCAD_ENABLE_RUNTIME_DEBUG=OFF build
    
    rtcmp logging in librt is in the hot loop for rt_shootray, so
    even the enabled/disabled conditional check imposes about 1.5%
    performance overhead in an optimized build configuration.  Since
    that isn't acceptable when we're disabling debugging support for
    maximum performance, disable the tests in that particular case.

commit 303b90f7f1099d011bdc2320a36507695091df66
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Oct 5 16:45:33 2026 +0000

    librt: handle empty and instanced trees during bounds traversal
    
    rt_gettree can succeed for an empty combination with no primitives,
    leaving its imported tree null.  The old traversal reached
    RT_CK_TREE.  With runtime checks enabled, that bombs and facetize's
    setjmp catches it.  Builds with runtime checks disabled compile out
    the magic check and dereference null instead.  This explains the
    different outcomes across build configurations.
    
    Return an error for null or NOP trees at every recursion level, so
    nested empty combinations also fail without a bomb.  Carry each
    member's accumulated transform when selecting a prepared solid;
    matching only the name chose the wrong instance when one primitive
    appeared at multiple locations.  Release imported combinations
    after recursion, use a stack tree for direct primitives, and return
    lookup errors instead of exiting the process.
    
    Cover empty and nested combinations, direct primitives, repeated
    transformed instances, and transforms through nested combinations.

commit 875091f78a110b8e375e356c35e898527aac14db
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Oct 5 11:49:40 2026 -0400

    Check for null tree before doing rt_traverse_tree

commit 0716e4c842868ced829a72f01f05b3b3e13a71d9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 10:22:25 2026 -0400

    Revert "add a test to get regions"
    
    This reverts commit d3e037a760de1787feba1684660e263f8ec86e47.

commit ee6e1bebdc33c9f117d84636ec218bf1cf6c2dda
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 03:31:45 2026 -0400

    write up a preamble for 7.46

commit 9d4f5bb124e24fa700d3406c70847ad8bc1a8dfb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 03:21:22 2026 -0400

    consolidate the list a little bit combining related changes and being a little more user-vis critical

commit 21f442a4ad08f4ff25a33947881b476d0fb294a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 02:11:21 2026 -0400

    upper on cmd names outside summaries is jarring and inconsistent

commit 24d6f6f4cb95070b9256fd14b2fb40956c8b81a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 01:44:15 2026 -0400

    add data dir to the doc search paths also

commit d3e037a760de1787feba1684660e263f8ec86e47
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Oct 5 01:27:54 2026 -0400

    add a test to get regions

commit 5a38423677f230add40e33f81d2a0a1ddd9f097c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Oct 4 23:34:49 2026 -0400

    release prep for 7.46.0

commit 38113b1de7e65bcbb9df6a07bfb12bb2bccfd2f7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Oct 4 23:34:12 2026 -0400

    nearly ready

commit fec9d07d43e9e4bdd12b6246a212fec053dd0cfa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Oct 4 15:32:50 2026 -0400

    See if we can update CI to macos-15

commit 4b09d6227f5cd3723c50ecf45842d3ec3230d3eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Oct 2 19:22:07 2026 -0400

    Try to shorten some of the NEWS lines

commit eab1e82de284d2ab4282fc025a06980abf2cf834
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Oct 2 19:10:21 2026 -0400

    Update NEWS for post-7.44 user-visible changes
    
    Add missing user-visible release notes from the 7.44-to-7.46
    development range.  Remove Itcl 4-only migration fixes, narrow the
    MGED editing claim to the ARB5 bug present in 7.44, and correct the
    historical PNTS attribution.
    
    Added item to source commit mapping:
    
    - shared OpenGL display-list state: 85de3929e5
    - MGED fallback manual viewer: 0a8c6d8bc2, a00efd15c6
    - GIST subprocess diagnostics: 0d6cc34a13, 06c8ab6204
    - GQA density validation and exit status: 6d142b62e7, cd55562c46
    - ARBN inside support: 7b1898d9fd
    - HYP edit label: e4d297893e
    - MGED BoT face selection: 0173dd8c40
    - MGED view-mode panning and edit queries: 5e873e5081
    - MGED middle-click rotation behavior: 3beed70eb8
    - transactional rejected primitive edits: 13b0699349, 58ab0d5496
    - MGED startup prompt focus: 03b36c1b61
    - Windows binary temporary files: 7358e90b54
    - DSP, PNTS, and BoT ray intersections:
      8f81f27d92, 5c8092b4e6, de09372b73
    - submodel transforms: c45fb38aea, 5c6563e2e2
    - VOL data lookup and prep handling:
      641a1fea5e, 259e20ac56, e2cdfa3a6a
    - MGED NIRT output and subprocess cleanup: 0d6cc34a13
    - Windows subprocess argument preservation: bcaebb24e1
    - Windows drive-letter paths: d4b902c599, c523397c03
    - MGED gqa and rtcheck overlap plots: 75ef43ac37
    - procedural tree use-after-free: fa687de934
    - gaia Earth generator and textures:
      2f5be2c414, 9e10743773, fee67ac743
    - redirected Windows fbcolor input: 01c4a39932
    - bwstat median and input errors: 2307575ef1
    - NIRT trailing whitespace: b5e03710eb, 730b448973
    - GIST hierarchy overflow rendering: 58b3c9c9c0
    - MGED gqa option parsing: da430b14d8
    - rtxray grayscale output: 4608347774, f9055f240e
    - submodel empty-file ASCII conversion: c0059383e0
    - PNTS get/adjust/form and ASCII conversion: 71cbe6ed71
    - annotation get/adjust and ASCII conversion: 604be9f454
    
    Corrections to existing items:
    
    - remove Itcl 4-only application-fix claims: e78d0530f3
    - retain the baseline ARB5 fix but drop pipe and sketch claims:
      df19156341, 6c092182a6, be97d86e4e
    - move PNTS conversion support from 7.44 to 7.46: 71cbe6ed71
    
    Reorder the existing facetize and pnts export entries to retain the
    newest-first organization of the release section.

commit f7a8d5b40696bdf81c3058baca657fc082364693
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Oct 2 13:42:36 2026 -0400

    Fix Edit->Reset menu entry - uses reinit_edit_state()

commit 85de3929e5b0da01fcdd6d11f735e526c129839d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Oct 2 13:09:25 2026 -0400

    Make sure zbuffer and lighting are set up when using share_dlist

commit 0a8c6d8bc2dcfb6f705f99322c22b2ed8ebaa4e8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 15:42:27 2026 -0400

    Update Manual viewer in MGED to use tkhtml3

commit a00efd15c60c1e7591655fc43b38cc3d9677d22c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 15:12:14 2026 -0400

    Fixes for man page viewer

commit 06c8ab62045bc13906cade3f9302130c2fcba35e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Oct 1 14:33:05 2026 -0400

    more uniform exiting
    
    consolidate the call sites where we end up in bu_exit due to a failure.
    Have a simple wrapper so we flush any results buffers that may be useful
    for error context, and then call the bu_exit.

commit cd55562c469d6973a891cf25d306b2370e72acaa
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Oct 1 14:30:23 2026 -0400

    bubble gqa return code

commit 6d142b62e7e6e23d66bf6d15babf23afcf3fb457
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Oct 1 12:36:29 2026 -0400

    validate material IDs are present in density table
    
    previously, positive but not defined in the table values would silently
    corrupt the calculation with a -1.0 for the density value and no
    warning.

commit da2f503367f3918de09096d97b43427a1c829268
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Sep 23 12:44:00 2026 -0400

    handle cache compression failures safely
    
    ensure we can compress with bounds checks. If we got something failing
    or unsupported, log and return instead of BU_ASSERT (bombing). This
    allows the caller to appropriately free the external.

commit a9ac66788a8b843b09f564896704083a7f261942
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Sep 23 12:25:51 2026 -0400

    guard logging behind debug flag

commit 4cc9f9cf01f38e2da8f1fa24822df97939fefccd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 12:10:33 2026 -0400

    Be more nuanced about what ARB edit ops we can support.

commit 7b1898d9fdbb5ee5c418882f5f1db38eedb4ba93
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 12:06:29 2026 -0400

    Add ARBN inside logic.

commit e4d297893ea7c1206d0c9e3e8ba5e470ec2b3ce3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 12:00:03 2026 -0400

    label hyp neck-to-base ratio

commit 0173dd8c4036e90ed6e09d0811c7e2200299c9ec
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 11:55:30 2026 -0400

    Correct bot face selection logic

commit cf344d773e260b7e8eeab6580930783db4303abc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Oct 1 11:14:39 2026 -0400

    Print result in mged (just assigning to interp isn't enough)

commit 8c51c1d5275cb46faa4420ae3d05527096187e0f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 30 14:32:21 2026 -0400

    Mention facetize improvements in NEWS

commit 6e48ea9ddd0c9845a40f04e3f5dc79d2c84d4b58
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 30 06:44:36 2026 -0400

    Center README toplevel text

commit 488f538040a7bc270c8c714345ed52638eb4e880
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 28 08:46:34 2026 -0400

    Update bext SHA1 to latest

commit 17cc9f3a5a9b4d807e10d00d9fd503360d175979
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 17:31:09 2026 -0400

    List file for distcheck

commit bf2c5088266d6f7d02d95c21260dbd5f0e8fde78
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 15:55:30 2026 -0400

    List cases.inc for distclean

commit f2e68b1a2ae4e81e3eead341e9fa3b939fb00425
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 15:42:29 2026 -0400

    Initialize

commit 5e873e508132d926c63871f4296398f56c86779b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 18:14:24 2026 +0000

    Fix MGED live view panning and solid edit lookup
    
    View-mode mouse panning now honors view coordinates even when MGED is
    set to object coordinates. Correct the solid-edit lookup so live
    geometry queries work during dragging.
    
    Exercise numeric live and saved geometry for primitive, combination,
    ARB, pipe, BoT, BREP, ARBN, and raster edits. Cover menu selection,
    mode switching, repeated mouse edits, and BoT triangle picking under
    Xmin.

commit 3beed70eb8a3fb4f3b43987e596e60994cca9e3e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 16:58:15 2026 +0000

    Fix MGED mouse edit modes and interactive feedback
    
    Middle-click rotation and some Edit menu choices could move the view
    or leave solid editing in a stale mode. Keep edit flags and modes
    aligned so mouse actions change geometry, including snapped drags.
    
    Defer button release while a pick is running to avoid a background
    command-busy error. Extend MGED and Xmin regressions to verify
    primitive mouse edits, live redraw, menu modes, and picking.

commit 73258d4264459aaccda1c99295fdf55bbdd1652a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 16:14:12 2026 +0000

    Fix MGED interactive edit redraw and mouse routing
    
    Object-edit transforms now update cached display matrices and mark
    views dirty, so geometry moves visibly without a manual refresh.
    Synchronize transient solid-edit flags with librt edit mode so mouse
    and rate controls manipulate the solid instead of the view.
    
    Add an Xmin mouse regression covering object and solid pan/spin,
    direct transforms, redraws, and unchanged view state.

commit 8ae7482918101fc1005eb8bb0fc4b64061d4ee14
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 25 12:25:44 2026 -0400

    Gate librt rtcmp capture with runtime toggle

commit 917ce5554cbef146522b5910ef9824c9181ba440
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 18:24:40 2026 +0000

    Preserve primitive edits across failed saves and restores
    
    A failed checkpoint could discard the last saved state, and a
    failed revert could discard the current primitive. Restoring
    selected pipe or NMG geometry could also leave stale handles.
    
    Stage exports and imports before replacing live state, clear
    selections and refresh the keypoint after restore, and preserve
    SPH and REC types. Consume rejected edit input so a later command
    cannot reuse it, and prevent view-update counts from accumulating.
    
    Cover failed saves and restores, repeated revert, selected geometry,
    and default and non-default database units.

commit 58ab0d54966203d24ed076ddee75e3705d30a27e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 17:39:17 2026 +0000

    Prevent rejected primitive edits from changing geometry
    
    Rejected height moves in TGC, CLINE, and EXTRUDE could replace
    valid geometry; NMG edge moves could partly change faces while
    reporting success. BOT edge splits could leave unused vertices, and
    malformed parameter text could partly overwrite seven primitives.
    
    Stage edits before applying them. Reject invalid REC and uniform
    scale inputs without changing geometry, and report scale failures.
    Cover these paths in default and non-default units, including CRLF
    parameter text and NMG selection remapping.

commit 13b06993494739a5e2a1471a7b4a42fa1ea1fc73
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 16:28:59 2026 +0000

    Prevent rejected ARB edits from corrupting geometry
    
    Mouse face drags and several ARB edit helpers could change points or
    planes before detecting invalid geometry. Subsequent edits then began
    from inconsistent state and could produce unexpected shape changes.
    
    Validate candidate geometry before committing it, restore state on
    rejected edits, and cover repeated mouse drags with non-default units.

commit acd3a9800d03e9eb0038ad5e6d66fad409e87fe1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 18:51:35 2026 +0000

    Use bu_vls for capture records

commit 03b36c1b6177abb45db0abcb87790bc65da1fadd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 18:45:31 2026 +0000

    Restore MGED command prompt focus on GUI startup

commit b714d881854fa3f7ed1ce9a9c432c7935e31fbb3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 17:45:40 2026 +0000

    See if we can optionally also write out pre-boolweave segment data for comparison.

commit eff3fea47937780b78094e4cc19e3cedd98c74f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 15:45:24 2026 +0000

    Add LIBRT level rtcmp debug printing option

commit 7358e90b5483bf0b30db3e0d1d8f9198b310cab9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 14:30:55 2026 +0000

    Keep temporary files binary on Windows
    
    Set binary mode on the temporary file descriptor before wrapping it
    in a stream. This prevents newline translation from enlarging DSP
    sample files, which otherwise makes DSP edits and raster operation
    tests fail on Windows.
    
    Add a byte-for-byte temporary-file regression test covering newline
    and DOS EOF bytes.

commit 3c2b0de9d27c42fdbfd7404c4c9ee2bad1c558aa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 11:08:20 2026 +0000

    Fix unit-sensitive primitive edits and invalid edit reporting
    
    Keep numeric edit values in database-local units while applying
    geometry changes in base units. Correct parameter readers and edit
    paths that could misplace solids or silently accept invalid changes,
    including ARB, ARBN, BOT, pipe, sketch, metaball, and NMG.
    
    Add mm/in operation matrices with exact-result checks across
    primitive edits, parameter parsing, and repair paths.

commit a384f838fb1067aa996becaf017dc257653387a1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 02:03:12 2026 +0000

    Reject invalid BREP control-vertex edits and verify units
    
    Propagate selection and CV edit errors through librt so callers do not
    report rejected edits as successful. Validate indices and coordinates
    before changing geometry, and mark selection indices as unitless.
    
    Exercise persisted CV moves and sets in an inch-unit GED database,
    and verify rejected commands leave stored geometry unchanged.

commit 1053594e9ab9c5a81d3e5ae3723291dec2e96af8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 01:36:28 2026 +0000

    Fix cursor state and BREP control-vertex mouse edits
    
    Preserve cursor-relative translation knobs for ARB, BOT, CLINE,
    extrusion, NMG, and TGC mouse edits, including in non-mm
    databases. Prevent BREP control-vertex drags from moving the
    whole solid. Report invalid ARB edit indices and geometry
    failures to callers.
    
    Add mouse and error-path regressions for the affected primitives.

commit 72cde263cc6a84285f142b4ee14e62f06b1fbc31
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 01:00:50 2026 +0000

    Fix ARB face rotation errors and endpoint drag state
    
    ARB face rotation changed geometry but reported failure, causing GED
    to reject the edit. Return success and let the shared edit path replot.
    
    CLINE and extrusion mouse endpoint drags also reset translation
    knob state. Keep endpoint moves separate from translation handling
    and cover these workflows in primitive and GED edit tests.

commit b670a19aba4a8f3b15ffea82a6b39fb380877811
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 24 00:37:03 2026 +0000

    Preserve local-unit inputs during primitive editing
    
    Repeated edits in non-mm databases could compound unit conversions,
    moving points and faces or resizing primitives unexpectedly. Mouse
    coordinates could also be converted a second time.
    
    Convert numeric values into temporary base-unit targets in librt
    without rewriting the supplied parameters. Cover translation,
    dimension changes, vertex and face moves, picks, and NMG extrusion
    with non-mm and repeated-input tests.

commit 2d9fa5c03359c0ede9275f367a0938fd4dd7235b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 23:59:19 2026 +0000

    Fix non-mm primitive edits and invalid scale handling
    
    Numeric scale lengths now convert once in librt, so edits in
    non-mm databases produce the requested geometry and repeated
    inputs do not compound conversions. Cover torus, ellipsoid,
    superellipsoid, particle, RPC, RHC, ETO, and TGC scaling,
    plus TGC endpoint moves.
    
    Reject impossible torus, ETO, and coupled TGC edits without
    changing the solid. Add inch-unit, repeat-input, and rejection
    coverage in librt and libged.

commit 8be0f0ae856b1740111c4527fc0418b1fa77418d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 23:04:29 2026 +0000

    Fix EPA/EHY length edits and lock in ARB edit behavior
    
    EPA and EHY length edits now convert local units without changing the
    input, so repeating an edit cannot apply the conversion again. Invalid
    semiaxis requests now fail visibly and leave the primitive unchanged;
    empty parameter edits remain no-ops.
    
    Add inch-unit MGED extrusion checks for both direct and interactive
    editing, exercise ARB geometry helpers, and run multiline MGED tests
    as sourced scripts so failures cannot be skipped.

commit 00ffa4bd801bae0a70fd6242d46e71b9b45c1995
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 22:27:58 2026 +0000

    Fix VOL edits with non-default database units
    
    Convert voxel cell sizes to base units without modifying input
    parameters, so repeated edits use the requested size. Keep file
    sizes and density thresholds unitless, validate invalid dimensions,
    and prevent threshold underflow and file-size overflow.
    
    Cover direct librt edits and persisted GED edits in inch databases.

commit e5e0905d03131a6569d3a6deb5b22fcca7b84ddf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 21:55:41 2026 +0000

    Fix pipe editing units, zero dimensions, and failures
    
    Pipe point coordinates and dimensions entered in non-mm databases were
    not consistently converted to base units. Some commands reconverted
    their input on repeat, while invalid point operations could report
    success without changing the pipe.
    
    Convert numeric input once in librt, preserve base-unit mouse points,
    and propagate operation failures. Reuse shared pipe point helpers and
    allow all-zero pipe dimensions to receive an absolute value. Add
    direct and GED tests for inch units, repeated edits, failures, and
    database persistence.

commit 10d13793b0c965e26ae64e5a30e97f97d3c7cdf1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 21:26:37 2026 +0000

    Fix revolve sketch edits, error reporting, and ownership
    
    Changing a revolve's sketch now loads the new geometry and rejects
    missing or non-sketch references without persisting a broken object.
    Invalid numeric edits report errors instead of appearing to succeed.
    
    Transforms retain the start vector, angle, and sketch. Imported and
    prepared objects own independent sketches and names, avoiding stale
    geometry, leaks, and dangling references.
    
    Cover inch-database edits, sketch replacement, transform ownership,
    and prep/free lifecycles in edit tests.

commit 70d51804383db45dfbc418453a5dc5d9d74ffab0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 20:55:57 2026 +0000

    Fix sketch and extrusion edits and report invalid operations
    
    Honor indexed sketch descriptor inputs and convert vertex and radius
    lengths in non-mm databases. Replace extrusion sketch references only
    after the new sketch is validated, so failed selections leave the
    existing extrusion intact.
    
    Return descriptor edit failures to GED instead of reporting success.
    Remove two unimplemented TGC moves from advertised operations and
    strengthen persisted sketch, extrusion, HRT, and pipe tests.

commit 50fe62669421ad8984487b585dd1af32ae0775be
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 20:11:14 2026 +0000

    Fix NMG edge deletion and strengthen edit operation checks
    
    Deleting an NMG edge could also split another edge when stale edit
    parameters were present. Stop after deletion and release temporary
    extrusion loops on mode changes and reset.
    
    Exercise NMG selection, traversal, edge edits, and extrusion using
    non-mm input. Check that DSP file selection and sample counts are
    independent of length units, sharing the filename test callback.

commit ca403c92edf612268ead7c9e304aa2291e56525f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 18:39:05 2026 +0000

    Correct native primitive edits and broaden result coverage
    
    Keep combination edit sessions valid after database writes, move BOT
    plate thickness edits into librt, and repair ARS topology changes.
    Correct unit-sensitive edits, malformed-input handling, and NMG
    imports on unaligned data so geometry edits remain reliable.
    
    Add primitive-operation inventory, outcome and inch-unit tests, and
    bounded edit-sequence coverage. Use portable temporary data files
    so DSP and EBM tests no longer require /tmp.

commit bab959474f615a6c1b58f9a4b498259dd973a9f4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 17:04:58 2026 +0000

    Add Clang version of coverage tracking compilation flags

commit 27b522c1555de6043b60a6ee8fa84fdfabe6c56c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 16:50:52 2026 +0000

    Updates for OpenCV v5

commit 875231c335a40cd3223c292ac2b932d7b0147106
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 15:55:26 2026 +0000

    Consolidate librt primitive edit tests into one executable
    
    Run all 34 edit cases through a selectable rt_edit_test binary.
    Register each case independently with CTest so failures remain
    isolated and previously unregistered tests run routinely.

commit 89810b06ca9d606cac8c15fddcb2f5f1d429e4f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 15:35:05 2026 +0000

    Correct non-mm primitive edits and expand regression coverage
    
    Keep MGED and gsh edits consistent in non-mm databases by fixing
    length and dimensionless parameter handling in librt and libbrep.
    Correct DSP absolute cell sizing and inverse transforms, preserve
    rational BREP control-vertex weights, and retain NMG session units.
    
    Add non-mm tests for affected primitives and update stale ARB8
    descriptor and HRT translation assertions.

commit 90e512b5d6ee8c17428f0da1f67916148434af42
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 14:21:48 2026 +0000

    Fix non-mm units across primitive edit commands
    
    MGED tra moved primitives too far by passing a base-unit target
    to handlers expecting local units. The libged edit commands used
    by GSH mixed local numeric positions with base-unit keypoints.
    This affected tra, absolute and relative translate, and rotation
    and scale centers in non-mm databases.
    
    Convert translation targets at the librt edit boundary and parse
    numeric positions in base units. Keep scale reference factors
    dimensionless and add inch-database regression coverage.

commit 19fe382208d3ff242280635af9074327f9491bcb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 10:00:05 2026 -0400

    Revert "Add opt-in forward parity shots for solid BoTs"
    
    This was just an experiment - remove.
    
    This reverts commit 90e5ede2b384d1001d1ff6ed2349e5da761b67ff.

commit 994c56b05fcd8cc020ffa63313736af3b1f5838e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 23 09:34:21 2026 -0400

    typo, ws

commit db76164ea8cddb2e6e53d977152f86ba295874ad
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:36:04 2026 -0400

    update docs with restored behavior and comparison with bwdiff

commit 58c5ed36819b722bb22b2049a2fffd5f0d09dd4a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:35:28 2026 -0400

    pixscale and bwscale improved

commit 05bd5c74708a44038baf4a2f3be9ed988ac4a5e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:34:02 2026 -0400

    restored pixdiff

commit 2276f4ef8c029d54e55bea83d28f550407fe4af1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:32:50 2026 -0400

    replaces seek-based scanline loading with a forward rolling buffer so large piped inputs behave like regular files.

commit 188e72eb32ce5d10aa6d73aa6d76d66fb3d3174a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:32:37 2026 -0400

    maps the first and last output pixels exactly onto source edges and clamps interpolation neighbors so enlargements retain every corner

commit 03306043ea65cbfab94e48f6901304e05d123b97
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:31:45 2026 -0400

    scaling test

commit 28038fe0ea4437b9ce9618712eea0fcf2b119b16
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:31:18 2026 -0400

    isolated pixdiff pix test

commit 5b5cb8c538eff634043c3ed755ddb85ea9a5d9f6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:29:27 2026 -0400

    now bw mode need -b option

commit 1c20d18156432197f082d4f1d36b2c3654083b6b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 23 07:28:38 2026 -0400

    restore previous pixdiff behavior where we apply an ntsc-grayscaling damper on same pixels so differences are accentuated with color

commit 97920fbc90eee4e66aeaf71e060bd8a899822062
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 21 22:07:58 2026 -0400

    license info

commit 37fb7d928a0a78adca67612277f07a71ff84fc88
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 21 22:06:05 2026 -0400

    Not flipping these to const yet.

commit 2056b359bd2b1ae7f16b8d4435dd8618a5018101
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 21 22:05:39 2026 -0400

    Use EQUAL/ZERO

commit b4cf00292a17b0d9eea80a555f18fe5d1e7c6ba9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 21 20:08:03 2026 -0400

    ged_cmd_valid is deprecated, so don't need a test for it.

commit 6748dd37ab821e0967e3d9e0e6edc95e1f1e1ed3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 17:23:12 2026 -0400

    libged: restore ged_cmd_valid compatibility wrapper
    
    The 2024 command API migration replaced its implementation with
    ged_cmd_exists and ged_cmd_same, but retained the deprecated exported
    ged_cmd_valid declaration.  This left source callers compiling against a
    symbol that libged did not provide.
    
    Restore the wrapper with its established status mapping and add regression
    coverage for valid, alias, mismatch, invalid, and NULL command inputs.

commit ef35c1dca18dcad57fe2d28a5ed75533821ab713
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 16:56:04 2026 -0400

    fix bu_scan_fastf_t delimiter parsing
    
    Replace dynamically constructed scanf formats with direct numeric and
    delimiter parsing.  The old implementation accepted only one literal
    delimiter sequence, mishandled percent delimiters, and used an
    uninitialized length when scans failed.
    
    Define empty delimiter strings as invalid, reset optional consumed-count
    outputs for invalid configurations, and document the delimiter and
    destination-pointer contract.  Add regression coverage for repeated,
    mixed, and percent delimiters, deterministic prefix counts, null
    destinations, and invalid configurations.

commit 8cdedd87526da7bd2dc917c57da8cb49db82161d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 18:10:21 2026 -0400

    libbn: correct polynomial edge cases
    
    Correct descending-order polynomial API documentation and make basic
    arithmetic helpers safe when their output aliases an input.  Preserve
    the output when multiplication exceeds the fixed degree limit.
    
    Handle constant and higher-degree divisors without unsigned degree
    underflow.  Normalize small nonzero leading coefficients before the
    direct quadratic, cubic, and quartic solvers.
    
    Repair the unreferenced bivariate polynomial implementation: expose its
    API, add release support, preserve both dimensions while growing, and
    correct its addition and convolution.  Add focused regressions for all
    corrected cases.

commit e4ba0b166cdaf9d2484df9acbd7b6176798d4767
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 17:58:22 2026 -0400

    libbn: correct matrix and quaternion edge cases
    
    Use bn_tol's angular predicate in bn_mat_fromto instead of the
    duplicated line-segment ratio test, which compared dimensionless
    slopes against a distance tolerance.  Normalize inputs and return an
    identity matrix when either cannot be normalized.
    
    Make bn_mat_lookat support non-unit and Z-axis directions.  Correct
    bn_wrt_point_direc's translation-back sign and replace its shared
    scratch storage with local temporaries.
    
    Define quaternion behavior for antipodal bisection and identity
    logarithms.  Document related angle and input contracts, and add
    regressions for the corrected cases.

commit 586ac06c7e3120d26f1087439612c95c0074311c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 21 15:28:29 2026 -0400

    libbg: correct geometry query contracts
    
    Normalize point/normal planes without mutating caller input, and
    correct coordinate frames for non-unit plane equations.
    
    Support rank-deficient PCA input, correct 3D polygon centroids and
    CCW ordering, honor polygon holes in view bounds, and gather every
    mesh diagnostic while preserving the no-diagnostics fast path.
    
    Fix Creo's inverted solidity result, make segment clipping reentrant,
    and clarify geometry API contracts.  Add focused plane, PCA, polygon,
    and trimesh regressions.

commit 0d745fca358e6b4655552186da4221206f4b7483
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 16:39:52 2026 -0400

    Use bu_vls for VFONT paths
    
    The VFONT loader used a 128-byte buffer when constructing the bundled
    font path. Odd-pathname distcheck directories exceeded that limit in CI
    environments, causing fblabel to reject the default font and all
    dependent rtwizard tests to fail. Use a bu_vls path so the installed
    font can be opened regardless of build prefix length, and release it on
    all loader exits.

commit 5270e67abeddae8adb97a99709baa25e3467bd71
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 15:47:02 2026 -0400

    List files for distcheck

commit 14051845a314fe78ee36d29db9c902542444f223
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:49:41 2026 +0000

    facetize: add source-guided adaptive SPSR
    
    Fixed-size point dumps make Poisson reconstruction unreliable as a
    last-resort facetization method.  They can miss thin partitions while
    oversampling surfaces that are already well resolved, and an arbitrary
    point count does not show whether source characterization is complete.
    
    Seed reconstruction with stabilized Crofton samples.  Retain paired
    entry and exit normals, partition thickness, and ray identities so thin
    geometry contributes explicit local information instead of unrelated
    points.
    
    Add a bounded adaptive libbg driver around the existing upstream
    Poisson solver.  Each solve reports residual, density, normal, and
    surface-variation hints to a caller callback.  Facetize responds with
    exact source rays and validates partitions, endpoints, chord length,
    area, volume, and closed-manifold topology before accepting a result.
    
    Bound refinement by time, point, pass, and convergence limits.  Relax
    only chord and thin-partition thresholds when the source BoT is already
    known to be non-manifold.  Deprecate the fixed-array API, remove the
    intermediate point-sampling path, adapt pnts callers, and add focused
    coverage.  The vendored SPSR implementation remains unchanged.
    
    Use configured method priority for perturbation variants so an MDC-only
    run never invokes NMG.  Report finalization progress and retry counts
    while the fallback hierarchy is evaluated.

commit d6fa9372120a3a1e1c3c5f20d1dacb47e73f4b5f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:49:17 2026 +0000

    libanalyze: replace marching cubes with adaptive MDC
    
    The legacy marching-cubes polygonizer sampled a uniform grid and could
    miss thin or high-aspect features, merge undersampled tunnels, and emit
    surfaces whose shared-edge winding was inconsistent.  Increasing the
    global resolution made those failures prohibitively expensive rather
    than addressing their local causes.
    
    Add a ray-driven manifold dual contouring API built on an adaptive
    octree.  Cache exact signs and Hermite edge crossings from librt
    partitions, place feature-preserving vertices with bounded QEF solves,
    and refine locally for thin walls, multiple crossings, interior
    surfaces, and ambiguous topology.  Build faces from shared crossings
    with deterministic winding and require closed manifold output.
    
    Back analyze_polygonize with the new implementation, expose MDC as a
    facetize method, and remove the obsolete polygonizer code, licensing,
    continuation sampler, and CM default.  Keep NMG available when polygon
    preservation is more important and it can successfully process the
    input.
    
    Document the Ju, Schaefer, and Warren algorithmic basis and the
    bottom-up Euler-characteristic escalation path.  Add coverage for thin
    walls, tunnels, overlapping CSG, toroidal cases, winding, resource
    limits, and the compatibility polygonalize entry point.

commit 37aee260c16afd288553961727476d6b35ef3d71
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:48:36 2026 +0000

    facetize: retire the legacy pipeline and harden region results
    
    The compatibility implementation duplicated command behavior and
    retained unreliable paths that had been superseded by the planned
    worker pipeline.  Keeping both implementations made option handling and
    failure behavior needlessly difficult to reason about.
    
    Remove the old facetize sources and MGED registration so all command
    modes use the maintained orchestrator.  Preserve implicitly selected
    region roots in the output database and keep region retries scoped to
    validated perturbation inputs.
    
    Tighten source and result validation, reject empty preparation results,
    and suppress expected import or preparation diagnostics only inside a
    scoped log hook.  Keep routine details out of the terminal summary and
    write complete detail logs when concise reporting is not possible.
    
    Extend regression and validation coverage for implicit roots, tolerated
    failures, and malformed or unsupported inputs.

commit 56d64428ae31166894496b076a442584e31f9ce8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:48:04 2026 +0000

    facetize: separate orchestration and isolate NMG evaluation
    
    The command implementation mixed option handling, mode selection,
    database setup, scheduling, and result publication.  NMG Boolean work
    also ran in the parent process, allowing known NMG failures to terminate
    the overall conversion.
    
    Introduce an explicit planning and orchestration layer so each command
    mode follows one visible execution path.  Replace positional worker
    arguments with typed request and result messages that are validated
    before they can alter the working database.
    
    Move NMG Boolean evaluation into the supervised subprocess framework.
    Transfer trees and BoTs through the existing transaction protocol,
    report failures without killing the parent, and reject primitives that
    do not provide the required tessellation callback.
    
    Update facetize regression and worker-protocol coverage for the new
    boundaries and failure semantics.

commit 0f6db7016dbc779c9371cb095ace41603ceeae62
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:47:08 2026 +0000

    facetize: add supervised parallel primitive workers
    
    Primitive tessellation previously paid process and database setup
    costs per object and left the parent with limited visibility into work
    that timed out or died.  Large models consequently spent substantial
    time outside the tessellation algorithms themselves.
    
    Add long-lived supervised workers and a bounded scheduler for
    independent objects.  Divide CPUs between worker processes and each
    worker internal parallelism, reuse opened databases, and retain cache
    state across requests.
    
    Make result publication transactional.  A WRITE_STARTED acknowledgment
    closes the READY and PROCEED race, while the parent detects timeouts and
    abnormal exits, restarts workers, and records only completed object
    results.  Reuse temporary result databases without leaking state between
    requests.
    
    Add process and database-transfer helpers together with worker,
    recovery, and validation tests.  Document the parallel job control and
    its resource behavior.

commit cbffc1171bc1d2d432b8265ee2aff1b7b52d8b70
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:45:14 2026 +0000

    libbu: support resource-aware worker processes
    
    Large subprocess pools need to divide machine resources without allowing
    each worker internal parallelism to consume every CPU.  Add a
    process-local limit to bu_avail_cpus() and bu_parallel(), with atomic
    updates and coverage for applying and removing the limit.
    
    Make BU_MEM_AVAIL count FreeBSD reclaimable inactive and cache queues
    in addition to immediately free pages.  This prevents idle systems from
    appearing memory-starved to resource-aware algorithms and adds native
    sysctl checks for the reported values.
    
    Rename the private process.h to process_private.h.  This prevents the
    source header from shadowing the MSVC CRT header used by std::thread,
    which otherwise leaves _beginthreadex undeclared.

commit 21e034ee34506f3ceba361428d406d28994066ce
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 16:13:27 2026 +0000

    Rename so we don't end up conflicting with an MSVC header

commit 8f81f27d926f30019302247ecc5f4f3105bcb663
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 15:43:04 2026 +0000

    librt: correct winding for explicit DSP B-C cell cuts
    
    The explicit ULlr permutation inverted both terrain triangle normals.
    The cell intersection state machine uses normal direction to classify
    entry and exit, so top-to-side rays could disappear.
    
    An independent triangle mesh and the DSP received the same 500,000
    Crofton chords. The mesh returned 3,689 hit rays, while DSP returned
    3,463; the DSP surface estimate was 10.35% below the exact area.
    Using the adaptive B-C permutation for explicit cuts preserves the
    selected diagonal and restores outward top normals. DSP then returned
    3,688 hit rays and the area error fell to 4.53%.
    
    Add a fixed top-to-side ray that checks entry and exit distances plus
    the top normal.

commit d729a7d3f2f9ee83f47aaffb37c849ee03aa6932
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 20:45:38 2026 +0000

    librt: make Crofton sampling deterministic and reusable
    
    Retain ordinary Monte Carlo chord sampling while making its stream
    explicit and portable. Draw independent sphere endpoints from a
    fixed-seed mt19937_64 generator so every setup is reproducible
    without changing the estimator's statistical convergence model.
    
    Convert the generator's high 53 bits explicitly to avoid library-
    specific real-number conversions. Consume four values per ray so
    ray offsets reproduce disjoint continuations of the same stream.
    
    Reuse a bounded C++ worker pool and stop only after windowed area
    estimates remain stable. This avoids repeated thread construction
    while retaining the existing stopping criteria.
    
    Add optional collection of ray identifiers, paired entry and exit
    hit points, normals, and partition thickness. This gives
    reconstruction callers structured source evidence while preserving
    lightweight area and volume estimation. Link librt to the thread
    target and extend the Crofton tests to verify that offset calls
    exactly reproduce the uninterrupted stream.

commit 17601916f485b8601378e8116871893fed475c2c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 7 17:42:36 2026 -0400

    Use static diagonal transformation in IGES test

commit 90e5ede2b384d1001d1ff6ed2349e5da761b67ff
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 00:25:39 2026 +0000

    Add opt-in forward parity shots for solid BoTs
    
    When LIBRT_BOT_PARITY_SHOT is enabled at prep, solid
    BoTs and ARS conversions traverse from the current shot
    origin. Discard hits behind that origin and use an odd
    forward hit count to construct an interior entry at the
    origin. Mark the entry with a dedicated surface number
    and a normal opposite the ray. The option assumes a
    closed mesh without self intersections; box backout
    remains the default because stray exits on bad meshes
    can become long segments and origin entries can change
    rendering behavior.
    
    Exercise scalar and packet shots for ARS and BoT, plus
    composite scene shots, in both modes. With cameras
    inside Generic_Twin meshes, median shot time fell 10.6%
    for an isolated solid, 1.4% for the full scene from the
    same view, and 6.0% for another full-scene inside view.
    The isolated render matched, while the full-scene views
    changed 173 of 1048576 and 507 of 65536 pixels,
    respectively.

commit 72454757ec939192aaca1ed0bed07bbf78f0a085
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 18 00:08:20 2026 +0000

    Add accelerated triangle mesh self-intersection check
    
    Expose an early-exit libbg query for mesh self intersections
    and use a BVH to keep candidate pair checks practical on large
    meshes. Distinguish contact at shared indexed features from
    crossing or overlap, and handle near-contact cases observed
    in thin wing meshes.
    
    Make strict hole-fill validation reject self intersections
    when requested while preserving the permissive repair default.
    Cover shared features, overlapping meshes, malformed input,
    and thin wing fixtures. A clean 32768-face grid takes about
    58 ms with the BVH, versus about 4 s with the prior pairwise
    check.

commit 6e9e1975b8cba5a3f487c38b136e9223c48d2e30
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 19:52:45 2026 -0400

    Distcheck fixes

commit afedaa95bd2c3fbd8ebfd74caad4743011a457e3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 21:35:11 2026 +0000

    Enable RPP tests for seven bounded primitives
    
    Particle entered the function table with ft_use_rpp=0 in 1990
    (b85ddfc9ff4); RPC, RHC, EPA, and EHY did so in 1992
    (16dc889cfb5).  CLINE arrived with zero in 2000 (4a69d5ab3cb).
    ANNOT was a zero-flagged stub in 2012 (f31b27d992) and retained the
    value when its callbacks arrived in 2017 (cb83958bf58).  The later
    table moves and callback rewrites preserved these values.  The
    inspected commits record no per-primitive correctness or performance
    reason for choosing zero.
    
    The finite shot geometry is enclosed by the prepared boxes: particle
    uses its two end radii, CLINE includes its radius and beam expansion,
    and RPC, RHC, EPA, and EHY use conservative profile envelopes.
    Model-space ANNOT prep produces a BoT and uses its bounds; screen-space
    ANNOT has no shot geometry.  Enable the solid RPP check for these seven.
    
    Leave HALF at zero because it is infinite and SKETCH because it never
    shoots.  HF computes its box from the maximum height but omits a
    negative minimum, so its box can be too small.  ARB8 and ARBN already
    clip rays against their faces or planes, and SPH has a cheap quadratic
    shot; an added box test needs its own tolerance and performance case.
    BoT uses a BVH and origin backout, so changing its RPP behavior needs
    separate validation.  The remaining zero entries do not shoot rays.
    
    Five deterministic 1024-square primitives.g renders averaged 1.222
    seconds of shot time before and 1.166 after, with 178,709 fewer solid
    shot calls and identical pixels.  Two other camera views also matched,
    as did NIRT results for rays starting inside each of the six finite
    solid types.  The annotation raytrace regression passes.

commit 5c8092b4e6da40ac5c022d8b2a1a0313d8f06c7f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 21:21:43 2026 +0000

    Use accurate PNTS bounds for ray box tests
    
    PNTS shot uses each point's scale when the point type carries one,
    but its bounding box used only the collection scale.  A larger point
    could therefore lie outside the reported box and be missed by the RPP
    test.  Share the effective scale calculation with prep and include
    each rendered sphere in the box.  Reject empty or invalid point sets
    instead of returning an unusable box.
    
    Enable ft_use_rpp for PNTS once its box encloses the shot geometry.
    Test a ray that hits a point larger than the collection scale and
    check that empty point sets do not report usable bounds.

commit de09372b73b005df7091abbb61c3cb4d905cc5d1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 21:12:18 2026 +0000

    Fix BoT shots with origins inside mesh bounds
    
    Commit 7376385fd2 backed the HLBVH traversal origin by twice the
    soltab bounding radius to preserve entrance triangles.  Commit
    1d75918492 replaced that conservative distance with max(0, -r_min),
    assuming r_min reaches the solid boundary.  During rt_shootray,
    however, r_min can describe the current spatial partition cell.  A
    ray starting inside a BoT can enter that cell after entering the mesh.
    BVH culling then drops the entrance triangles, and segment assembly
    discards the exit hit without an entrance.  In an overlapping scene,
    ARS and native BoT differ because the ARS RPP test refreshes r_min.
    
    For origins inside the BoT BVH root box, move the traversal origin
    just beyond the box's entry face.  This retains the entrance facets
    without the excess traversal from a bounding radius backout.  Rays
    originating outside the box need no backout.  Share the calculation
    between scalar and vector shots, while keeping triangle intersections
    relative to the original ray origin.
    
    Five deterministic, single processor Generic_Twin.g renders per view
    had identical pixels with both backout methods.  The box method cut
    shot time by 3.5% from inside the flight deck console, 24.5% from
    inside a main strut, and 5.9% from inside a tire.  An exterior view
    differed by about 0.2% from the radius method.  Avoiding unnecessary BVH
    traversal more than offsets the extra box backout arithmetic for
    these interior views.
    
    Test direct ARS and BoT shots whose origins are inside the mesh,
    including vector shots, and an overlapping composite scene that
    reproduces the failure through rt_shootray without setting r_min
    manually.

commit bcfb8669c183a4646f425630188b7127f9b99408
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 20:56:33 2026 +0000

    Revert "Add Windows GUI session probe"
    
    This reverts commit 066ec0bc8ef01e872c51d073a83f4e81c9df3ce4.

commit 066ec0bc8ef01e872c51d073a83f4e81c9df3ce4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 16:47:43 2026 +0000

    Add Windows GUI session probe
    
    Testing whether we can actually do GUI applcation testing on a
    Github CI runner.

commit fa3822b8f8b3ce7bcf776807bacec99799373b2a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 16:35:48 2026 +0000

    Modularize GUI regression helpers and isolate Xmin backend

commit 4e20274455b6953fc521f34c7401a7c19055e480
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 15:32:29 2026 +0000

    Wait for MGED raytrace click before polling

commit c077b5f7f80e926cb740c2a36365f43cd54e9de1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 09:48:37 2026 -0400

    List updated dependencies

commit a98c3b6e2172880805676747edf0a0e64e816cab
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 07:40:28 2026 -0400

    Add libged dependency to arrange_test_masks

commit f4b51eb1ed165afaca28310ec78c876b6d1d05f1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 11:39:28 2026 +0000

    Make a stab at adding missing NEWS entries

commit 9e3b83a2e58e616c12b5285a7315192668b5b347
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 11:34:59 2026 +0000

    Corrections to man pages

commit 070fd256f1eec64f160cb3cbbc9a5e8777674c56
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 11:34:13 2026 +0000

    Update AUTHORS file

commit 544148d058274df3167baf6a11d6bf58deee942a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 17 06:57:41 2026 -0400

    Correct detection of a system bullet3 install

commit 1b3024400176d9dd50e4e3daee7b05f81fd3da12
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 21:48:10 2026 +0000

    Xmin GUI regression coverage
    
    This adds the tests we have been using to exercise the Tcl/Tk GUI apps
    in BRL-CAD with the Xmin server.
    
    Register Xmin GUI tests through a shared private-server runner. Exercise
    Archer, embedded Archer, RtWizard, MGED, and qged with semantic Tcl
    checks, X input, image oracles, background-error capture, and coverage
    inventories.
    
    Run the Itcl/Itk widget baseline through btclsh and bwish and check GUI
    initialization in independent Tcl interpreters. MGED scenarios cover
    editing, rendering, framebuffer contention, Build Pattern, and search
    -exec drawing, reentry, and interruption.

commit e78d0530f3c0ed9cc23e965ce18bca01a4f5e703
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 21:44:49 2026 +0000

    Migrate Tcl code to Itcl and Itk 4
    
    Require Tcl 8.6.18, Itcl 4.3.0, and Itk 4.2.3; update package
    selection, class behavior, and bext dependency handling.
    
    Fix MGED Build Pattern construction under Itcl 4. Repair Archer panel
    callbacks and menu teardown, select the Iwidgets panedwindow explicitly,
    and remove the redundant Toplevel replacement. Document compatibility
    findings and migration results.

commit b98fe5e1fb7a8941a100e74c429ac1de20aad1c7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 23:54:19 2026 +0000

    librt: support writes to fileless databases
    
    Convert a phony directory entry to memory storage when db5_realloc
    writes to a fileless database. Initialize its pointer before setting
    RT_DIR_INMEM so the existing wdb path keeps its ownership rules.
    
    Cover internal and external writes, repeated size changes, readback,
    directory reuse, and disk persistence in a registered test.
    
    Fixes #161.
    Uses the regression scenario from PR #233.

commit ef61c69eb6d05941bb891ed4ad45b268bde1eaeb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 23:26:38 2026 +0000

    nastran-g: use bu_vls for property names and test large IDs

commit 17f62523250b3c8880417a4e546c18bc4ca3854e
Author: rupes <179157659+rupeshca007@users.noreply.github.com>
Date:   Sat Mar 21 15:14:38 2026 +0530

    conv/nastran-g.c: fix stack buffer overflow for large PIDs
    
    Replace fixed-size char name[NAMESIZE+1] (17 bytes) buffers and
    unsafe sprintf calls with 32-byte buffers and snprintf in the
    pshell and pbar_group loops.
    
    When a PID exceeds 6 digits (e.g. near INT_MAX), the old sprintf
    would silently overflow the stack buffer. snprintf with sizeof(name)
    bounds the write and prevents the overflow.
    
    Fixes #211
    
    (cherry picked from commit 89580b154d5176ac9c66530658ee16beffc8cfd6)

commit 75463d5a2f1b8a7b3ef1b69cec8b685506c88b9b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 23:16:55 2026 +0000

    Update bext SHA1

commit f7a496a880eed2c4e74bba6a94cace02b25d5101
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 21:43:53 2026 +0000

    Make libtclcad initialization interpreter-local
    
    Scope initialization, GED, display-manager, framebuffer, and
    command-history state to each Tcl interpreter. Preserve idempotent core
    initialization and allow a later GUI upgrade. Correct framebuffer
    registry growth, enumeration, and deletion, with a native
    multiple-interpreter regression.

commit df4e8c5e045bac626eeef9d3570f3b8fb27e4aae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 21:42:23 2026 +0000

    Run MGED clone progress callbacks on the GUI thread
    
    Clone executes on a GED worker. Marshal its optional progress callback
    to the GUI thread and pass count arguments as Tcl list elements so Build
    Pattern can update Tk safely.

commit 416dbc260411362fcf10fdef499adcbaaa67395a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 18:54:53 2026 +0000

    Serialize asynchronous MGED command execution
    
    Since d6c1f9d5c5 added asynchronous GED command execution, the GUI
    thread has pumped Tcl events while a worker owns shared GED, database,
    view, and display-list state. Only stdin was guarded, so a timer or GUI
    callback could start a second command concurrently.
    
    The search -exec path made this failure more severe by keeping its
    secondary interpreter in shared MGED state. A reentrant command could
    access or delete that interpreter from the wrong thread. Control-C also
    cleaned up the prompt without notifying the worker, after which another
    command could abort in TclStackFree with an incorrect freePtr.
    
    Route both Tcl spellings of every MGED command through one dispatcher
    and permit only one active command per mged_state. Keep interrupt and
    quit available while busy, and use execution-scoped atomic state for a
    cooperative search interruption.
    
    Create and delete the secondary search interpreter on the command
    worker, using a snapshot captured on the main Tcl thread. Do not invoke
    Tcl from a worker-side bomb hook.
    
    Preserve the caller Tcl result across the nested event pump. This is
    needed when an internal redraw follows a result-producing operation such
    as db_glob. Treat a temporarily unavailable display manager as an
    unsupported renderer probe rather than raising a background Tcl error.
    
    Mark rejected nested commands with a specific Tcl error code.  Display
    activation can then ignore that expected busy condition while still
    surfacing unrelated failures.

commit 019f59ac15626d5582d22a57cbde2a2b9f255d05
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 18:54:24 2026 +0000

    Accelerate legacy display-list path drawing
    
    The display-list design introduced by d7ef83f14c in July 2009 made each
    requested draw path a display root. Subsequent changes added a linear
    duplicate scan (3006fbdbd0), per-argument erase scans (2a1ac5bf00), and
    hierarchy splitting with repeated path parsing (ace8abe3b5).
    
    Together these made drawing N leaf paths O(N^2). Replacing paths below
    an existing aggregate root incurred a second quadratic pass because each
    new leaf replotted every scene object accumulated under the root.
    
    Maintain lazy private indexes for ordinary display roots and canonical
    scene paths. Endpoint sentinels detect callers using the legacy public
    list interface; instance-qualified and malformed paths retain parser and
    linked-list fallback behavior. Invalidate indexes on rename and clear.
    
    Replot and publish only newly appended scene objects. Fall back to one
    whole-root callback for clients lacking the per-scene callback.
    
    Also make scene removal advance safely past objects without private data
    and free the display-list ID belonging to each scene object.
    
    On m35.g, separate draws of 1,293 TGC paths fall from roughly 92 seconds
    to under one second, including repeated and aggregate-root replacement.
    
    Tests: ged drawing suite, MGED draw regressions, and repository checks.

commit 344ea00e49a5969352edb72f3de0b5a0dac21d1d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 15:19:14 2026 +0000

    Retry interrupted external dependency post-processing
    
    The external file inventories were written before RPATH and path
    cleanup.  If plief failed fatally after files had been staged, their
    fresh timestamps made the next configure treat the raw copies as current
    and skip the failed work.
    
    Persist the set awaiting post-processing, merge that set into the next
    changed-file pass, and commit both inventories only after processing
    succeeds.  A retry now recopies clean bext inputs before applying the
    path transformations, while a successful pass removes the pending state.
    
    Validated recovery by replaying all 187 staged ELF inputs: patched plief
    updated 103 RPATHs, including the Tcl 8.6.18 launcher, and a subsequent
    no-change configure performed no restaging.  The relocated launcher
    loads Itcl 4.3.7 from the build tree.

commit fb3d03ae883bf52ed2b7aec8b4158b670808bc14
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 02:17:17 2026 +0000

    Replace ARB7 inside faceting with exact halfspaces
    
    An ARB7 coincident V5/V8 is incident to four planes. Moving those planes
    independently generally changes the local topology, so the result cannot
    in general remain an ARB7 or be forced into the fixed ARB8 face layout.
    Represent it directly as the intersection of its six translated
    halfspaces using ARBN, preserving exact face offsets without NMG
    tessellation or BOT approximation.
    
    Validate all triple-plane intersections before writing the result.
    Require each plane to remain active and require at least four
    non-coplanar feasible vertices, rejecting thicknesses that eliminate a
    face or collapse the volume.
    
    This replaces a path introduced in 869b018d03f (1994), when the old
    direct ARB point solver was changed to produce NMG topology. Commit
    91d12a95d1 (2000) subsequently converted that NMG to a BOT, and
    756081571e (2008) carried the implementation into libged. The path now
    fails to match the default ARB7 top face. It also contains a latent
    lifetime error from 5cf4f84357c (2021): nmg_extrude_cleanup() uses the
    shell after nmg_km() frees its model. Removing the obsolete NMG route
    eliminates both defects.
    
    Expand the MGED ARB regression to check exact inward and outward plane
    offsets, zero thickness, default and explicit small fixtures, ARBN
    tessellation, and collapsed-solid rejection. Source the test as one Tcl
    command so assertion failures cannot be hidden by MGED line-oriented
    stdin handling. Document the ARBN result and add a NEWS entry.
    
    Tests: rt_arb8_tests, regress-mged_3ptarb, regress-mged_arb, equal and
    unequal ARBN raytraces, and regress-repository.

commit 3e4eac25abcba36514bc756e28b59cd63be54fbe
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 19:35:40 2026 +0000

    Fix direct ARB face and edge-direction editing
    
    The libged edarb commands added in May 2013 inherited several latent
    argument-handling defects.  The two-angle edgedir form read the
    subcommand and object arguments instead of its rotation and fallback
    values.  Facedef retained an extrusion-derived type restriction despite
    having cases for ARB5 and ARB7, wrote a fixed-point sentinel beyond the
    caller argv array for the ARB7 side-face case, accepted out-of-range
    vertex selectors, and reported the object name rather than an invalid
    form.
    
    The ARB7 fixed-vertex special originated in the 1986 facedef
    implementation, where assigning cmd_args[5] was safe because cmd_args
    was a separate command buffer.  The April 1996 Tcl conversion changed
    that assignment to argv[5], making the five-argument ARB7 invocation an
    out-of-bounds write.  That conversion also omitted the required null
    terminators from two Tcl_AppendResult calls; the fixed-point message
    could consequently crash instead of completing the edit.  The 2013
    libged facedef copy preserved the unsafe sentinel technique.
    
    Use local fixed-point arguments, validate named vertices and public
    editing table indexes before array access, accept every recognized ARB4
    through ARB8 type, parse edge indexes completely, and read the actual
    angle arguments.  Centralize cleanup in the legacy MGED path so errors
    and quit do not leak its transformed internal object.
    
    Add regression coverage for both edgedir forms, every compact ARB type
    in direct facedef, both legacy and direct ARB7 fixed-point cases,
    malformed selectors, non-ARB input, and invalid public edit indexes.

commit 3b38bd602846e8ccd2c5349b7c4f5599542e08e5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:27:27 2026 +0000

    Initialize rtwizard framebuffer diagnostic state
    
    FbPage may be loaded independently of the rtwizard launcher, but its
    occupied-port retry path reads wizard_state(verbose), which only the
    launcher initialized.  A real first-port collision could therefore fail
    the render instead of advancing to another framebuffer port.
    
    Give the independently loadable package a quiet default without
    overriding launcher configuration.

commit bb94477f6ccb5abf01d2bbdf542792270e2174bf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:26:58 2026 +0000

    Dispatch TclCAD annotation lines through public GED APIs
    
    The view-specific data_lines wrapper rewrote the command as a generic
    view invocation and depended on libged private declarations.  With the
    current command organization that path did not update Archer annotation
    display state reliably and unnecessarily coupled libtclcad to libged
    internals.
    
    Select the requested view temporarily and call the public data_lines or
    sdata_lines entry point directly after removing the view argument.

commit c187de04970f8ba61ab6149bd6c37eb00eb838d2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:26:48 2026 +0000

    Preserve TclCAD unit conversion precision
    
    The base2local and local2base wrappers formatted double-precision
    database scale factors with the default six digits after the decimal
    point.  Reusing those values during an editor update could therefore
    introduce unit-conversion drift even when the user made no change.
    
    Return enough significant digits for a binary double to round-trip.

commit a9af6ad0f5139ba2b8de888a00c790ad7a1926e8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:26:35 2026 +0000

    Avoid Togglearrow callbacks during configuration
    
    Applying -togglestate during construction or configure called the same
    private methods as a pointer click, which invoked the user command
    before the widget was ready and made programmatic state synchronization
    produce action callbacks.
    
    Let the configbody update the visual state without notification while
    retaining callback behavior for interactive open and close actions.

commit 0b8b5d56fe19e03ebbc480c2036e5d5ad911012b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:26:24 2026 +0000

    Forward Tcl dialog arguments without re-evaluation
    
    Stddlgs wrapped every value in literal braces inside eval, so multi-word
    titles and messages were passed as the strings "$title" and "$message"
    rather than their values.  Its optional arguments were also nested
    inconsistently between the convenience procedures and messagedlg.
    
    Use Tcl argument expansion to preserve value boundaries and accept both
    normal trailing options and the legacy single-list form.

commit d019b81c48f1c256b843aaefb3aaf41cffd4df39
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:26:13 2026 +0000

    Use the registered point-transform Tcl command
    
    The Tcl command is registered as mat_xform_about_pnt, matching the
    underlying libbn API, but TankWizard and the cadwidgets wrapper called
    mat_xform_about_pt.  Tank generation therefore stopped when it attempted
    to orient the gun barrel.
    
    Use the registered spelling in TankWizard and expose the same working
    name through cadwidgets::Ged, help data, documentation, and the libged
    migration list.

commit a1498589be0d94db06a112e4af6a68e49075f30d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:25:57 2026 +0000

    Fix sketch arc endpoint tangents
    
    Both the Archer and MGED sketch arc classes compared an undefined vertex
    variable when choosing endpoint-specific tangent behavior.  Under Itcl 4
    this raises an error instead of returning the requested tangent,
    affecting bounded arcs and full circles.
    
    Compare the method index parameter to the segment endpoints in both
    implementations.

commit eb2c91124c8f38497d5c9aaed4dcc983aa4e0a2f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:25:46 2026 +0000

    Fix Archer ARB4 point 3 editing
    
    Two switch statements used the point-2 edit token twice, leaving the
    point-3 token unmatched.  The duplicate labels date to the 2013
    point-edit implementation and prevented Archer from initializing or
    dispatching point 3 through its dedicated path.
    
    Use the point-3 token in both switches and remove an obsolete
    commented-out geometry write while touching the frame.

commit ffb4b9b7772c72f83186a265803bdf852b5b7ee2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 17:25:27 2026 +0000

    Correct canonical ARB storage and centroid handling
    
    BRL-CAD compact ARBs have a stable public eight-slot convention: ARB4
    repeats V1 at V4 and its apex at V5-V8; ARB5 repeats V5 at V6-V8; ARB6
    repeats V5 at V6 and V7 at V8; ARB7 repeats V5 at V8.  The first make
    support for ARB4-ARB7 in 3b6c88b755 (February 1985) instead stored an
    ARB4 with V4 equal to V3.  Numerical type-in in abf2c2a86e (June 1985)
    used V4 equal to V1, so the two creation paths diverged at that point.
    The new ARB editor in ea7423aa0b (July 1985) explicitly encoded the
    convention above for every compact type.
    
    The specialized mk_arb4 added by d40fb36531 in September 1987 copied the
    make layout.  The 1993 import/export conversion in ade6618484, the 2008
    move into libged in b586ade52b, and the 2026 move into librt in
    70518d83e4 all preserved it.  Validator comments added by 56b03ac259 in
    April 2026 consequently described the generator layout as canonical, but
    the public contract, type-in path, repair mappings, and editing tables
    said otherwise.  The June 2026 editor cleanup in bf4e603b00 and the
    subsequent ARB point-edit repairs were not the source of the discrepancy
    and use the public convention.
    
    Make rt_arb_make and mk_arb4 produce the documented layout, and identify
    standard ARB4 through ARB8 storage by its complete tolerance-aware
    vertex-equivalence map.  Compute centroids from representative
    geometrically distinct vertices instead of the first N storage slots;
    the latter omitted a logical vertex for canonical ARB4 and ARB6.  With
    centroid behavior corrected, remove the compensating slot reshuffles
    from inside and remove the stale contradictory ARB6 mapping comment.
    
    Database import intentionally preserves raw slot ordering so old
    geometry round-trips without an implicit rewrite.  Geometrically valid
    nonstandard layouts continue through the convex-hull tessellation
    fallback, while the explicit repair operation canonicalizes them.  This
    retains compatibility with ARB4s emitted by historical make and mk_arb4
    implementations while keeping table-driven operations restricted to
    layouts they understand.
    
    Exercise default creation and libwdb factories for ARB4 through ARB8,
    standard and nonstandard centroid calculations, validation, DB5 round
    trips, repair canonicalization, canonical and fallback tessellation,
    inside generation, and canonical storage after the MGED permutation,
    mirror, extrusion, point, edge, face, and face-rotation edit paths.  The
    corresponding audit found no analogous factory encoding defect in ARB5
    through ARB8.

commit 0955bd15af464fd1c541059758ab9af3f0277ab2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:29:21 2026 +0000

    Isolate concurrent MGED framebuffer sessions
    
    A standalone rtwizard fbserv can claim IPv4 port 5559 while
    Tcl_OpenTcpServer still reports success to MGED after binding only IPv6
    on that port. MGED then records 5559, but its rt child connects over
    IPv4 to rtwizard server and leaves MGED embedded framebuffer black.
    
    Inspect Tcl listener addresses and advance to another port unless MGED
    owns IPv4, retaining IPv6 whenever both families bind. Generate a token
    for each display manager and expose the active token to child tools, so
    a token-capable client reaching another BRL-CAD session is rejected.
    Continue accepting tokenless clients for the public listener legacy
    compatibility.

commit a5ff7ae144bcaf06fab08d2ec983a16b8d2a701f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:28:58 2026 +0000

    Fix MGED ShotVis editing
    
    ShotVis local atan2 implementation compared literal words instead of its
    y argument, and vec_angle misspelled magnitude, omitted acos, and did
    not clamp floating-point dot products. These failures broke common
    editor and reload paths.
    
    Correct the angle calculations and clamp the dot product before applying
    acos.

commit 22aae961dcdf3fd707ae58a2e8517b02ddcc0a44
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 15:16:42 2026 +0000

    Fix retained Tcl widget behavior
    
    Functional construction tests exposed several long-standing defects
    unrelated to Itcl syntax: CellPlot used its width for vertical scaling,
    GeometryIO could not parse or report unsupported output formats
    correctly, Listdialog addressed a nonexistent component, and Selectlists
    cleanup called component without an argument.
    
    Correct those paths so the retained cadwidgets, Sdialogs, and Swidgets
    implementations can be exercised as working components rather than
    merely loaded.

commit b418349ec01e034df689678245cdd34b7e976889
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 15:15:59 2026 +0000

    Namespace the rtwizard framework class
    
    rtwizard and Archer both defined a global Wizard class.  The result
    depended on package load order and prevented both applications from
    sharing one Tcl interpreter safely.
    
    Define the rtwizard class explicitly as RtWizard::Wizard, require its
    namespaced package from RaytraceWizard, and clear the process-wide
    wizard instance when the object is destroyed.  Retain the historical
    Wizard package provide as a package-name compatibility alias without
    recreating the conflicting global class.

commit aff012734e06e91c21ff035d221925e7810e7b75
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 13 15:15:26 2026 +0000

    Remove deprecated Tcl Mged widget stack
    
    The Mged, Database, Db, Dm, Drawable, Display, QuadDisplay, and View
    classes were deprecated in 7.20 in favor of cadwidgets::Ged.  A
    source-tree survey found that they now form a closed inheritance cluster
    with no callers outside that cluster, satisfying the documented removal
    policy.
    
    Remove the implementations, build entries, and manuals, and move their
    policy record from deprecated to obsolete.  Simplify the retained
    model-axes, view-axes, and raytrace controls to validate and use their
    actual cadwidgets::Ged dependency.

commit f4baadafffe02c31d803e06127de0e5b46c10da9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:27:43 2026 +0000

    Fix MGED BoT editor property handling
    
    The editor indexed its mode and orientation comboboxes by subtracting
    one from bot get results. Commit 7e1875abc6 changed those results to
    descriptive strings, leaving the editor unable to initialize its
    property pane.
    
    Map the public mode and orientation names explicitly, reject unsupported
    values, and refresh both controls after Start Over.

commit 3bb07c2c2f4ef6ece489e460c68ce5bf3d3bfec9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:27:13 2026 +0000

    Fix MGED render output and manual launch tools
    
    The Plot dialog still called the removed _mged_pl compatibility name,
    while the PostScript path requested a nonexistent postscript display
    manager instead of the registered ps type. Restore both output paths
    using their current command and display-manager names.
    
    Resolve configured manual browsers before launch, preserve
    command-prefix arguments, and fall back to the internal viewer when the
    command is unavailable.

commit 2aaed1af29188e4cd02e9db8d4c7f0f65464c6e7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:27:00 2026 +0000

    Restore VDS-backed adaptive BoT wireframes
    
    VDS vertex trees have not been finalized correctly since the 2020-2021
    cleanup series. a6c2c7236a made node ID and depth assignment debug-only,
    and f05668b3cd made moveTrisToNodes return NULL for internal nodes.
    Later null checks prevented crashes but left adaptive BoT plotting
    unable to build a usable tree.
    
    Rebuild the complete tree while moving triangle storage, restore
    unconditional node path and depth assignment, and add a direct topology,
    proxy, traversal, and rendering regression. Also restore the view
    point-scale contribution lost in 59dbc14461 so the LOD density setting
    changes adaptive geometry.
    
    Fix the MGED dialog to retain current scale values and consistently
    enable or disable all dependent controls.

commit 353b6694429603e0e1c5b7c2bd188833df5f0a74
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 22:47:51 2026 +0000

    Fix redundant gchecker grid analysis
    
    The 2020 C++ port in 8106d89cbd placed the view-independent 1 mm grid
    analysis inside the four-azimuth by four-elevation loops. Unlike the
    1024-square view sweep, the libanalyze grid pass shoots all three
    orthogonal grids itself. This repeated the same scale-dependent work
    sixteen times per object, whereas the original check.sh workflow invoked
    gqa once per object.
    
    Run the grid analysis once per requested object while retaining all
    sixteen view-dependent checks. Also preserve multiple Overlap Tool
    selections as distinct arguments, hand the generated result path
    directly to Geometry Checker, and verify persistent marks against the
    destination file.

commit bc94d9184ae895b9c9317ddf04b0c8df54125edb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:57:55 2026 +0000

    Fix Archer tree handling for object names with spaces
    
    Archer's hierarchy member lookup used lt with a literal space delimiter.
    That implementation, introduced by 04c4de70c6 on 2016-04-21, cannot
    distinguish one object name containing spaces from several object names.
    As a result the hierarchy constructed bogus children for a valid
    combination.
    
    Walk the combination's structured Boolean tree instead, validating each
    operator while collecting leaves.  Also preserve leaf names as Tcl list
    elements when combinations pass through Archer's editable tree format,
    including matrix-bearing leaves.  This retains arbitrary legal database
    names without flattening their word boundaries.

commit c9925010d5fb47656796971a9f5b65eabefc3fd6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:47:07 2026 +0000

    Fix RtWizard multi-object edge occlusion
    
    The list-safe command construction introduced in 595da0e9b24 stopped
    passing literal quotes around rtedge's occlusion-object value.  Tcl
    preserved the argument boundary, but bu_structparse still needed quotes
    around its variable-length string value.  It consequently loaded only
    the first object, logged parse errors for the remainder, and returned
    success.
    
    Restore the literal quotes, send the final rtedge diagnostics to the
    caller-requested log, and add a moss.g type-F regression which verifies
    that cone, light, and platform are all loaded as occluders.  This
    addresses the long-standing obscured and fuzzy edge-overlay reports in
    BUGS.

commit e5a23481c93e70de85cb6e4659e11a2fe519d777
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:11:41 2026 +0000

    Finish RtWizard window and preference behavior
    
    Expose a readiness state for deterministic GUI startup, identify the
    open database in the window title, implement the About command, and
    select one explicit configuration destination before opening it.
    
    The previous preference update logic duplicated path selection, could
    leave its channel undefined, and described the target through a separate
    sentinel variable.

commit 4a6137adb7963b90d1c237887a8758c2d170048b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 22:41:26 2026 +0000

    dxf-g: validate polyface indices before conversion

commit e149792d7c596b3d98660bcee4ccc7c20c7d85da
Author: Meghna45-code <vidhims111@gmail.com>
Date:   Tue Jul 14 16:18:11 2026 +0530

    dxf-g: Fix heap-buffer-overflow in polyline face generation (issue #228)

commit ac9bfb74c8926de7b177da6f39562140c4190ac0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:11:13 2026 +0000

    Recognize only legacy set syntax in MGED startup files
    
    The startup-file preflight warned whenever any line contained both set
    and an equals sign, including valid Tcl values and comments.  Parse the
    leading command and first variable token instead, use full-sized input
    lines, and identify the actual startup file in the warning.

commit 5cc4992c99df57e98f123d57a7958c0b9a0eaba1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:10:50 2026 +0000

    Keep MGED saved-view menus synchronized
    
    Search the actual menu bounds rather than an unrelated maximum-view
    setting, update every collaborating player from a single target loop,
    and reconcile current and previous selections against the IDs that
    remain after deletion.
    
    Stored view IDs are not renumbered, so resetting to numeric ID zero
    could leave the radio-menu state pointing at an entry that no longer
    exists.

commit 184cdc11a3c0fdee4230c56e158104769740f29f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:10:29 2026 +0000

    Fix MGED font preference application
    
    Always read the configured font-scheme value, including the shared
    all-font entry, and persist each applied setting in mged_default.  This
    avoids trying to configure the nonexistent button_font name and makes
    accepted font preferences survive later GUI creation.

commit 2be5c94ed0c84c154df1418bb6e94412e4ba3120
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:09:56 2026 +0000

    Preserve Archer combination Boolean tree grouping
    
    Archer displayed a flattened text form of a combination tree and always
    rebuilt the stored tree from that form, even when the user changed only
    color or another unrelated attribute.  packTree necessarily selected new
    grouping for non-associative subtraction and intersection expressions.
    
    Retain the exact database tree while its displayed text remains
    unchanged, and update the saved baseline after an edit.  Explicit user
    edits to the tree continue to be packed normally.

commit 0edab91067c68fd1e22f064732a91b80fbca2889
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:09:21 2026 +0000

    Keep Archer argv storage owned by the caller
    
    Pass the adjusted argument range to Tcl without mutating the original
    argv pointer.  Advancing the local pointer caused the cleanup path to
    free a non-base address, which made archer -h abort after printing help.

commit d53fe369bbc3275b881be01cfc2d67d382041ff5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:08:41 2026 +0000

    Make the MGED Geometry Browser close cleanly
    
    Install the previously disconnected File/Close menu, wire both it and
    the window-manager close action to object destruction, and cancel the
    actual polling callback rather than the literal string _updateHook.
    
    Keep the Tk menu outside Itk component ownership.  Registering it as a
    component causes Itk 4 to remove it during toplevel destruction before
    the base destructor enumerates components, resulting in a background
    error.  Geometry Browser construction errors are now propagated to
    callers as well.

commit 8d450bb52475ec2cd5a2a9b5a0a4cd9a373b2f76
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 12 15:08:19 2026 +0000

    Fix MGED view unshare resource ownership
    
    A 2012 Coverity cleanup (05b3ca2935e) moved SHARE_RESOURCE ahead of the
    saved view-state assignment.  The assignment consequently captured the
    newly allocated private state, making the pointer comparison permanently
    false.
    
    Save the shared state before splitting its reference count and rebuild
    the intrusive view ring in the private copy.  This prevents invalid ring
    links and crashes when a collaborating MGED player leaves and closes.

commit 0db84a55a9dd712c9deed4ca0dcbde2e1df0456d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 21:40:44 2026 +0000

    Document recent Archer user-visible changes
    
    Record the embedded menu repair, preference file override, command-line
    help, and documentation menu fix already present on main.

commit fb7e9dc1098624f01624e7d63a7b5ca84604414e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:22:05 2026 +0000

    Preserve qged command-line state during Qt startup
    
    Keep the original executable argument vector for QApplication while
    parsing BRL-CAD options through a separate view. Pass the resulting
    geometry filename explicitly to QgEdApp so a normal qged model launch
    does not present the model path as argv[0] to Qt.
    
    Build qged as a position-independent executable where the linker
    supports it. This keeps the executable compatible with the shared Qt
    platform and rendering stack used by the Xmin launch fixture.

commit c0bc21ec0b001b0f002581c97d521c8e12524626
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 11 22:10:46 2026 +0000

    Allow isolated Archer preference files

commit 4e9db18cbb00fc9d83a3ad8a3e553f01146c8a56
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 11 21:50:59 2026 +0000

    Fix embedded Archer menu construction

commit 32cbdbbac5883b2250358729891cfbb3cd3f5b8a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 11:31:39 2026 -0400

    Add support for bext content stamp

commit 62c8c52f8fd550f6a2ff22eb6f9a33df6698d09f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 10:00:25 2026 -0400

    Use shorter pathname for bext build

commit dbe951d2a4b8e0c0b1528b585a69457035126401
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 15 22:07:32 2026 -0400

    Stabilize bundled package discovery
    
    Resolve Zlib before packages that can import it, and defer OpenVDB
    lookup until bext files have been staged.  Clear cached component and
    variant paths when dependency providers change, and reset Bullet's
    failed system lookup before selecting bundled libraries.
    
    Link g-vdb through OpenVDB's imported target so its dependency usage
    requirements are applied consistently.

commit aa76ac4476aea38b8f5315c712706c75b5980239
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 14:21:29 2026 +0000

    Add optional Xmin build support
    
    Xmin (https://github.com/starseeker/Xmin) is a small, self-contained X11 server
    and basic client library harness intended for headless testing of X graphical
    stacks.  It can display (with patching of the libraries in question to build
    against its client support) the Tk and Qt graphical toolkits.
    
    This is a testing only configuration, but it has proven useful on a couple
    separate occasions now so it seems easier to set up our build system to support
    using it than require hacking it in every time.
    
    Accordingly, we add an explicit XMIN X11 provider without changing the default
    system-X11 behavior.  Require Tk, OpenGL, Qt, display-manager, and TclCAD
    consumers to use one consistent X11 ABI, and forward the selected Xmin SDK and
    toolkit patch configuration into managed bext builds.
    
    We also teach the X, GLX, Tk software-rendering, TclCAD, MGED, and Qt
    dependency setup to consume the imported Xmin targets.

commit 509ef228c49155696359732ce2b8e1b797b3d94c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 16 10:07:45 2026 -0400

    bump bext SHA1

commit f74335c301c5695f42def48cc40a1d9b93679c20
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 15 22:22:27 2026 -0400

    regression fixes

commit 5b79ac536da6072c319bfc073bad3d124318dd38
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 15 14:19:22 2026 -0400

    Werror=float-equal fixes

commit 7f4fcb5ca2a9c1cbf839c4f4f967a1d8b36983e4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 15 14:06:58 2026 -0400

    Mention ZERO/EQUAL and regress-licenses in AGENTS.md - observed failure modes on multiple occasions, should be fairly straightforward to avoid/fix.

commit a7907d0c34bbda6d57943c13fc476c63e4fd234e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Sep 15 12:13:03 2026 -0400

    fix pixdiff

commit 8c97de10fe2fc86e668a0eda5bc0dde6f6e71241
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 9 03:39:48 2026 -0400

    initial beginnings of a new 'arrange' command for geometry layout.
    
    currently has just one arrangement mode for packing/nesting objects into a specified space.

commit ed628ef725cf532231a7a980118f1da5417e210d
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Tue Sep 15 04:56:31 2026 +0000

    fix mnual build dispatch.  nix apt cache.  don't ignore lcov rebuilds.

commit 366a83f8ed7692f31158fa6007d6c473e6496306
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Tue Sep 15 04:15:59 2026 +0000

    not cmake, so set export as shell var instead

commit c087ad6c23dce2b15cfd99e1818db0ade6a31a2f
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Tue Sep 15 04:10:24 2026 +0000

    typo on the build dir creation, but not needed.  also removed the cache steps as they were also failing (root-owned files).

commit 4e2c6edd34bffe72181d86cba763cb786385a2fd
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Tue Sep 15 03:53:49 2026 +0000

    pass install dirs to cmake so it applies destdir only once.
    
    was getting set twice to DESTDIR/DESTDIR/... so the rpath and cleanup tools and rpm weren't working right (not an elf file message).  fail explicitly when the expected staged file is missing

commit 3fda4849b6a4f4e0dd325dcc2c75119094547c95
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Tue Sep 15 03:34:41 2026 +0000

    removed the tmate sessions so failed distchecks terminate after outputting their logs instead of waiting.
    
    they were basically waiting until the workflow timeout on failure. this now allows each check to contineu after a prior dep fails, and still stops if the job is explicitly cancelled.
    
    also removed the apt archive caches that appeared to be broken.

commit 56157eb27df9f88f8f3f2e6fcca63715ac8ff296
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 09:35:07 2026 -0400

    Update bext SHA1

commit 39cab50e451ee4e979c25d177310d6414924370c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 14 06:49:11 2026 -0400

    Fix lcov build annot test crash
    
    In src/librt/primitives/annot/annot.c:2058, this is unsafe:
    
    VMOVE(polygon[polygon_count++], vp->pt[i]);
    
    VMOVE is a macro that evaluates its destination three times—once for X,
    Y, and Z. Consequently, polygon_count increments three times. Starting
    at 1, it writes approximately:
    
    polygon[1][X]
    polygon[2][Y]
    polygon[3][Z]  /* outside point_t polygon[3] */
    
    The final write corrupts the stack. Under the coverage build, it
    overwrites the return address of annot_segment_mesh(). The debugger
    showed that address becoming 0x4042000000000000, the IEEE-754
    representation of 36.0, confirming that a point coordinate was written
    over it. The segfault then occurs as the function returns at line
    2080.
    
    This explains why lcov could fail while other configurations pass:
    coverage instrumentation changes the stack layout enough for the
    overflow to hit the saved return address.

commit 93b5f0115227bc6630cb2142d594997ec3c8ac2f
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:17:35 2026 +0000

    make the anticipated output explicit

commit 5eabb821f07699a5e818433b50eb8524dc6d6075
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:16:49 2026 +0000

    keep track or more clean files

commit e900b5cc17816cb4355f658e179bc5e87fb60ca5
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:15:27 2026 +0000

    capture the geometry worker stall timeout value

commit 1b805c07517d036e66b0533e7182caa987cc4884
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:14:39 2026 +0000

    don't just print, fail if we don't have rgb array to output into

commit 11a8ac215d7ffee29b0a488b581bba1add0501ba
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:13:18 2026 +0000

    pull up the round-trip reporting (not a fix, just better diagnostic for the segfault cause

commit 6feb50e16f9a18544dbdd29a45b70b3cd897381d
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:11:43 2026 +0000

    move the magic numbers to the decl

commit 20a7dfbac429c450587314696083150d309f9ff3
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:10:48 2026 +0000

    quote the quotes

commit a17e4ce6a8085108bd353dfe429d74f315eeb1c9
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:10:13 2026 +0000

    init proper

commit cd3170998844eec6f2710db6f3354188b494d41b
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:09:25 2026 +0000

    make null vtk arrays a stopper

commit d531e9051410623ec061a63f539530b072c7faef
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:07:54 2026 +0000

    more generated files to keep out of distcheck

commit ca08b6d2d87e15e6b8b1717f9ed9dcf6182a1b38
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:05:57 2026 +0000

    keep the generated files out of distcheck

commit 8d668514724f25fd7273e3d431cbd1a8fb93a651
Author: Christopher Sean Morrison <brlcad@mac.com>
Date:   Mon Sep 14 04:04:44 2026 +0000

    include string.h for strerror

commit 2d23c2d55d11bc608cb8f053f755c78cf2a077e5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 20:56:10 2026 -0400

    Add WINSOCK_LIB

commit 9a075acdf697717f3a331ef721c49422ab7ac3d9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 20:52:21 2026 -0400

    Werror=float-equal

commit a50159c33e97fb57c08c7ddb8a565f8df629e399
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 19:34:57 2026 -0400

    Update bext SHA1

commit f426985a396e740cdfeaedb7eb437ac96db99d6b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 17:56:41 2026 +0000

    Various build fixes
    
    - Add missing thread dependency for gcv_iges_core
    
    - Prevent rt_mk_binunif() from scanning a nonexistent
      backing file for in-memory databases

commit 51abddb65631db3f00a222c523f97ffa39b31b86
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 17:15:17 2026 +0000

    Use TinyGLTF v3 for native glTF I/O
    
    Migrate the native glTF readers and BoT exporter from TinyGLTF's v2 C++
    interface to the v3 C API.  Share checked accessor handling between gltf-g
    and the GCV plugin.
    
    Constrain external asset reads to the source model's canonical directory,
    including protection against symlink escapes.  Limit input files, individual
    allocations, and parser memory, retain encoded images without decoding, and
    avoid preserving unused extension data unless requested.
    
    Rewrite BoT export using the v3 POD model and writer API.  Correct index
    accessor counts, validate face indices and buffer sizes, align combined
    buffer data, and initialize exporter state reliably.
    
    TinyGLTF v3 validates accessor component types against the glTF 2.0
    specification.  By default this removes support for BRL-CAD's non-standard
    DOUBLE POSITION accessors: models written with `bot dump -F` are no longer
    accepted by the native v3 readers.  We have patched our bext copy of
    tinygltf to support reading back in old files written with the -F option,
    but it is longer supported as an output mode since that formatting is
    non-compliant (other readers do not support it - that problem has already
    been seen in the wild - and tinygltf upstream no longer supports it either.

commit b1121cc111e32a385d9a1ca83c6123ac27c2233f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 10 16:02:46 2026 +0000

    Make a stab at reusing artifacts produced by bext CI builds for BRL-CAD.

commit 4faa689bff3772369759a61077308557c56352cd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 9 19:35:12 2026 -0400

    add a simple regression tests for the building generator

commit 5d7023b052d5aae69bb0aa3efc1454d95a5b3fc9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Sep 8 13:39:18 2026 -0400

    merged main

commit 0d1986d48be08fcea5680a64c3e8c7dca758c109
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 23:34:09 2026 -0400

    fix network double conversions in cv
    
    only treat network doubles as host data when the formats actually match, handle signed double cookies and cross-type output correctly, and respect output buffer limits

commit efc31acf9f26d5ec9f1f1920b4438334fb05a093
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 23:19:04 2026 -0400

    fix cv32 conversions on lp64 hosts
    use int-sized host values throughout cookie conversions to avoid bad strides and buffer overruns, and add coverage for signed, unsigned, network, host, and double conversions

commit 10242e2b5e3bd2e91b29a84205d3cf569d091b40
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 22:02:52 2026 -0400

    Diagonal is deprecated, use DiagonalTransformation

commit df12a2f0420ccea45ca6a3d8e3c28e20e558f23f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 22:00:49 2026 -0400

    fixed binunif inconsistency handling

commit c3c72dd30c8525203dbff5a092c50193b40e318e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 22:00:28 2026 -0400

    add tests for bo command and binunif object creation

commit 393453dd0781e0b5b97e91e3d13cb35ce02ac4a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 21:59:25 2026 -0400

    this should take care of binunif and dsp read/writing consistency.  bo command now takes a hint for network ordering (defaults to host) when making a binunif, and consistently/correctly converts it to network order going to disk and host order in memory.
    
    the mk_binunif and rt_mk_binunif interaces also take a type hint that lets the caller indicate host/network.  while we're at it, binunif was expanded for 64bit support, and undid/fixed host-to-network flipping that gcv's gdal converter was doing prematurely.

commit 700d21696e090b8a722ea7ee387a0b65269153d1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 21:04:06 2026 -0400

    implement support for 64-bit conversions

commit 35a3836b727bf6aca33cd3b625264cccbfa283b2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 19:46:31 2026 -0400

    cv command improvements
    
    now defaults to signed conversion.  actually converts 64bit data.  fixes an LP64 issue with 32-bit data.  and fixes network-to-host doubles on little-endian bug

commit f7dfff8cb2dada10bcbd4f2b2c492f478c803274
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 19:33:40 2026 -0400

    default behavior to signed by default so it'll preserve it when there is one

commit 97909370860f426b39a71f50730fb3077a3bdd84
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 19:20:41 2026 -0400

    now roof gap should be fixed for garage and bunkers also

commit 4ed01c7d5cd6313c55f3288b8f9b5fb254efefef
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 19:20:31 2026 -0400

    now roof gap should be fixed for garage and bunkers also

commit f030786f40cdc6e3d24444f9c548d4588d499cc9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 18:45:29 2026 -0400

    more work towards closing the roof lines

commit e7cb46844c103952d96a3f8aaee02ba87f324ec2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 18:30:45 2026 -0400

    fix more floating roofs that were offset from facades, pillars/beams, walls, etc

commit 23fe438aa85263b960f59840b1cead907ced336c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 17:22:25 2026 -0400

    rtip unused

commit c741dce11edd069cf40310a0ed8fe0b6ea2f6e5a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 17:08:29 2026 -0400

    formalize dpix files as big-endian IEEE 754 encoded doubles, instead of little-endian.  wasn't defined previously, but let that be a distinguishing feature of dpix vs the various d-* tools that assuming host order doubles.

commit c4f5391f809f5a151a6494b8322045ac73f0de9c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 17:08:02 2026 -0400

    initial manual page for the dpix file format

commit 85a195880488811b2c9574883800e26d0a079d8f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 16:45:49 2026 -0400

    these dozen are now fixed or obe

commit 12b876a97dd91a0f7c53c9864ae15e53b6f58932
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 16:45:28 2026 -0400

    couple more bug fixes, invalid bot xform and glb import

commit e221a5b36c0d1140471740cc02470711c1731338
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 14:03:20 2026 -0400

    nmg are way faster most of the time

commit 2b3f7320b9163f8b8aa846e05a69c9fa7adaea92
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 14:01:02 2026 -0400

    mkbuilding promoted to shapes

commit eb36d9e6bd87d09b43e2dd7e0535472ad47d5c4d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 14:00:42 2026 -0400

    make sure that getenv isn't null

commit 3f5d860e1f1465340edceccb007f197da613781c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 14:00:27 2026 -0400

    include gltf in the regression test set now that it's importing better

commit 5c6563e2e21e42873284bce0ab28a7dd47c96d73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:59:58 2026 -0400

    init the submodel matrix

commit 3012aec103309b45d75191584335c4afd6a11d70
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:59:34 2026 -0400

    make sure we don't print nulls from getenv

commit f1bc53711abdb1a9e7b44423c7c41a0023f72a2e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:58:18 2026 -0400

    validation and cleanup to safely handle malformed or varied input, particularly 32-bit indices

commit 9f585e045d1762f15931bbd4bc705c5c6b109f35
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:56:16 2026 -0400

    protect against null env reads

commit f6fbd14204f707f804932720cfa67853bdfe2a19
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:54:50 2026 -0400

    ahh, update the external callers to libnmg

commit c45fb38aea8c7cb76d816b379dac92fe4531d47c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:52:44 2026 -0400

    track matrices, so they can be applied to the submodel

commit 09c72d48204abdfb4b789c79ba66ad60128de6e7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:49:21 2026 -0400

    major perf gain for nmg about 10-20x faster in testing, now using bot when the nmg is a 3-manifold closed planar surface.  also uses new scratch space for hit tracking on the old code which is also about 25% faster.
    
    this will certainly beg for more exhaustive release integration testing, but benefit of the hlbvh definitely showing.

commit 76889cb30e7b395b097f3cc99fcc2d16293ffdc1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:46:19 2026 -0400

    promote rt_bot_shot_specific() for cross-primitive use...

commit d064ac866b97e4b8428948f40a131b6d3973af17
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:45:39 2026 -0400

    be more careful if env var set/get result in null

commit 688b5bcfff7b43794b96d18c6c21026d5127aece
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:44:47 2026 -0400

    include a test for trying to xform a bot with missing normals

commit b08f3f68df8804334f6fa0c99a2a60832410ec61
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:44:11 2026 -0400

    reject if we attempt to xform a bad bot (e.g., missing normals it says it has)

commit 6416096a4b3280081e7008e9d3b7b12ccf54afea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:33:25 2026 -0400

    optimization speed up giving about a 25-40% improvement by avoiding most dynamic allocs.  now leveraging a local scratch space instead of relying on the re_nmgfree global freelist pool.  this gets rid of nearly all dynamic memory allocation during nmg shot.

commit f5077bca8440962488aa16cf4a952ced4db8fc41
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:30:38 2026 -0400

    need some place to hang our scratch space data if we're not going to use the global pool

commit 89425ef47cf8a9ed8b8815d46d63510ad0cae593
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:29:25 2026 -0400

    document root2leaf and the dbip context

commit 2743435a713db75d511449bae37d0c6c516ec913
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:28:42 2026 -0400

    declare some pooling structure API to help speed up some of the nmg processing.  this will need to get revisited, but initial results showing 1.36x boost

commit b8f3574f06891fab2405d7f8a47b082fc09c92df
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:25:22 2026 -0400

    update docs now that rt -b can take a single pixel index value

commit 4beb5d25d448eb6d01428322af2b12761ec528db
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:24:51 2026 -0400

    update building example

commit c81b95b191e6e7ab97700b32dc9f9351f0d197d7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:23:55 2026 -0400

    mkbuilding now does a lot more

commit ce3f3f9ef37cf5c327560837c3d49786ce73890d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:22:24 2026 -0400

    dsp command and rt_mk_binunif() have an unresolved contradiction.  docs say file is network, mk_binunif assumes host.

commit 4d0e88f7f9581363372751a4c02b79188c42e1b4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 13:18:29 2026 -0400

    these are all fixed now

commit 2cd2e5b749bb0b72f4d61a7a0a13727d277840b0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 12:25:37 2026 -0400

    add the submodel xform testing, changes to make it pass incoming.

commit 631046b76357efc3e776b55b7fbc54b15c7b7633
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 12:23:07 2026 -0400

    make sure the env vars are non-null before printing

commit 70a5f42ce1fe02fa7304f659563db2aeb8edcf96
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Sep 3 13:45:44 2026 -0400

    initial throws of a new geometry arrangement command, particularly for knapsack-style problems but generalizable to other patterns

commit 69de8cdd966b56f26b8631df2c69773165940c61
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 7 11:04:49 2026 -0400

    List file for distcheck

commit 805ccc28d5fbe516c4c15cdebd6cba287fd9fac9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 7 11:02:15 2026 -0400

    Windows regress fixes

commit 096f5d54495d84265b28770b5ad7193711f415bd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 09:52:28 2026 -0400

    add NMG_GET_HITMISS_RD and NMG_FREE_HITLIST_RD alternatives to the ones sans _RD that don't go through the global

commit c8cd0f7645488bad22a35b421855505b4cb653da
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Sep 7 09:48:49 2026 -0400

    env PKG_ADDR_ENVVAR var might be null

commit d320c97eec8a7a4a677d0f6c7af3563dd41dea53
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:21:13 2026 -0400

    add tests to assert whether submodel transforms are working (they are not yet)

commit 546b8d34fcc2c7b559b30a00925934a0d5051515
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Sep 7 09:44:10 2026 -0400

    regress-repository changes.  See if we can have AIs do these checks as routine validation so the CI doesn't have to catch them.

commit ae9aed4d949e87099f97a9660fb743f8d5208060
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 21:16:04 2026 -0400

    Replace legacy IGES converters with a shared C++17 libgcv core
    
    Move IGES parsing, conversion, reporting, and writing into a private
    shared core used by the libgcv plugin and thin iges-g and g-iges
    executables. Remove the superseded converter implementations while
    retaining NMG import and export support.
    
    Reconstruct trimmed surfaces and solid topology with relative
    tolerances, bounded recovery, reassembly, and orientation checks.
    Preserve incomplete solid intent and emit connected open sheets
    separately with color and provenance metadata.
    
    Support native CSG, B-Rep, wire, and annotation conversion. Prefer
    primitive B-Rep export when native CSG is unavailable and retain
    explicit NMG export paths.
    
    Modernize command-line parsing, allow positional destination files with
    -o compatibility, stage outputs safely, and expose five-second progress
    updates and structured conversion reports.
    
    Add parser, recovery, orientation, plugin, I/O failure, and native
    round-trip coverage. Relocate the regression models, update the
    regression driver, and document the architecture and converter behavior.

commit 9153fe11d88cf2dd86d1fccf912dd4985b947423
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Preserve B-Rep attributes during in-place geometry edits
    
    Write the loaded database internal back after B-Rep edits instead of
    recreating the primitive with mk_brep. Reuse one write helper across
    flip, shrink, geometry, and topology commands.
    
    This retains source provenance, repair state, and incomplete solid
    markers while changing the geometry.

commit 53b505abf1ca2f7475099d88d47a7372f2ab7ae4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Preserve incomplete solid intent in B-Rep validity checks
    
    Define an attribute for B-Reps retained from unreconstructed solids.
    Reject marked objects during validity checks, raytrace preparation, and
    preparation serialization, and do not treat them as plate-mode sheets.
    
    Keep incomplete geometry available for repair without silently assigning
    it different solid semantics. Leave the existing handling of unmarked
    B-Reps unchanged: IsValid() failures alone do not prevent raytrace
    preparation.

commit 38438722c6e6681093e849892095b9c0b80b867b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Only finalize initialized B-Rep diagnostic argument lists
    
    Keep va_end in the same conditional scope as va_start in brep_log. A
    null diagnostic destination must not finalize an uninitialized variadic
    argument list.

commit 52287f9974d20cf1877f09623e9d7bf13f6f7d5b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Use shared B-Rep assembly for primitive caps and sweeps
    
    Replace private curve-matching, naked-edge merging, and face orientation
    helpers with the libbrep assembly APIs.
    
    Update cap construction, particle stitching, and pipe assembly to pass
    their distance tolerances explicitly, removing the duplicate topology
    repair implementations.

commit 3db1cac21b93b153a14060bab592c64cc0583994
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Add conservative B-Rep stitching and assembly helpers
    
    Provide shared APIs for curve coincidence, naked-edge stitching,
    endpoint tolerances, face orientation, and assembly validation. Report
    repairs and unresolved topology without forcing ambiguous edge matches.
    
    Use bounded curve comparison rather than fixed samples alone, support
    reparameterized rational curves, and preserve existing edge tolerances
    while accounting for endpoint distances.
    
    Add regressions for false sampled matches, equivalent circle
    parameterizations, detached box assembly, and tolerance preservation.

commit 32d8a7de2355044405ac299570fc98722df74a6a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Expose validated curve-to-surface pullbacks in libbrep
    
    Add a surface-based pullback API and implement the face overload using
    the shared projection context. Return structured failure reasons when
    samples cannot form a usable parameter curve.
    
    Join samples on a continuous periodic image, handle collapsed parameter
    spans, and align singular endpoints only within the requested tolerance.
    Validate the lifted polyline against the source curve before returning
    it.
    
    Extend pullback tests for periodic curves, collapsed spans, and singular
    endpoint alignment.

commit 4436b92d7c362897f583ee20455085f04c7462f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Bound NURBS closest-point refinement to the selected bracket
    
    Replace the Newton and binary fallback search with sampled chord
    selection followed by bounded golden-section refinement. The old
    fallback could report convergence at a bracket endpoint without finding
    the closest point within it.
    
    Validate the input and domain, skip unusable sampled segments, compare
    interval endpoints, and retain the maximum-distance check used by
    projection callers.

commit 19df3055bf209dd0fe8269f86b60a5bb9aa20c73
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Use shared database name sanitization in STEP converters
    
    Normalize decoded STEP names with db_sanitize_name while retaining the
    STEP-specific empty-name fallback. Remove the duplicate transliteration
    table and unused wrapper cleanup methods.
    
    Link the affected converter, plugin host, and test targets against librt
    for the shared naming API.

commit 6987f9b84360f99f312568692e74ffa14db37d1b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Add shared UTF-8 database object name sanitization
    
    Introduce db_sanitize_name for consistent ASCII database names across
    importers. Decode UTF-8, transliterate common Latin characters, encode
    other code points, and collapse punctuation into separators.
    
    Leave empty-name fallbacks and collision handling to callers. Add
    coverage for punctuation, accented names, non-Latin characters, and
    names that normalize to an empty string.

commit 6bee6fd622281b023ed37b27eb09af23e371c3bc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Handle NMG regions without outer shells safely
    
    Return an empty shell list when decomposition finds no outer shells
    instead of requesting a zero-sized allocation. Free the temporary
    outer-shell table structure as well as its contents.
    
    Document result ownership and topology changes, and add an empty-region
    regression that checks the output pointer is cleared.

commit 051601f64db4cbd2ac033f09bb758b493b26a842
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Keep positional values intact in gcv filter argument lists
    
    Only remove option prefixes from tokens that actually begin with a dash.
    Pass plain values and a lone dash through to the selected filter
    unchanged.
    
    This prevents a one-character value such as 0 from becoming an empty
    top-level option during format argument parsing.

commit a9a024dca747f88879bf693394dc10831e321ef3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 20:27:19 2026 -0400

    Respect argument bounds in option parse error reporting
    
    Use the parser's current option and remaining argument count when
    reporting a missing or invalid value. Do not read an argv slot outside
    the caller's argc slice, and restore an equals-form argument before
    returning an error.
    
    Add a regression with a populated backing argv slot beyond argc to
    verify that the missing-argument diagnostic stays bounded.

commit 5b8b368cab0149b795425486f7a083b03c2b5b45
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 19:06:37 2026 -0400

    Honor primitive colors in shaded drawing
    
    Share wireframe color-attribute parsing with shaded B-Rep, BoT, and polygon drawing. Preserve explicit draw overrides and inherited/default fallback behavior without modifying shared drawing state.
    
    Add a headless B-Rep and BoT regression covering primitive and parent colors, inheritance, explicit overrides, invalid attributes, clamping, and differently colored siblings in wireframe and both shaded modes.

commit c98ff72c4ad6852d598edd458142e57856bea288
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Sep 6 15:13:45 2026 -0400

    Use a vls for label

commit ee7c2798530460a618fd29836807d3ad8d9ac7d2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:19:10 2026 -0400

    make rt's -b option take either x/y coordinates or a single index value.  very useful for debugging and single-ray query.

commit 617a31343bc15f553a500985481cedc6c76c3d7a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:17:43 2026 -0400

    make rt's -b option take either x/y coordinates or a single index value.  very useful for debugging and single-ray query.

commit f89e04a16f7164c689957ab7d70ec9f6d84ccfbc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:11:21 2026 -0400

    make icv also format-aware that .dpix files are now encoded in network order.

commit 1ac31323b4b2a09d96db6c0b3272f2dc29b3572f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:09:02 2026 -0400

    init the matrix!

commit a6b50687c5648edfe8dddd407ba01b1e949bec44
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:08:26 2026 -0400

    .dpix files are now portable (previously written out host-order, now always network-order

commit 521a6d3cfbedad9a0b6f73251108d9ce8edf9266
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 08:05:08 2026 -0400

    make sure building walls meet up with the roof, gable is properly closed

commit d985e5e1113865228b6cf350685ff7989c991c20
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Sep 6 07:59:12 2026 -0400

    significant change to DPIX file format to assume/require on-disk encoding to be network-order bytes.
    
    this fixes a portability incompatibility bug where a little-endian system would write out host-order and another big-endian would read the DPIX flipped.
    
    only able to take this liberty because there is not any published documentation on what the dpix file format is or what tools like dpix-pix are expecting.  does open a can of worms though on all the other signal processing tools that currently read/write host doubles -- probably should introduce a byte-swap option on all of them just as a safety net.

commit 02abfa3e38729c22c300f7fe30202f86a47cfe4d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Sep 5 22:27:21 2026 -0400

    pixscale now reads stdin pix files just fine

commit f739ee4436bc7646028628de4e3e7b543176efc4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Sep 5 22:25:51 2026 -0400

    reuse buffered scanlines so long, non-seekable stdin streams work correctly

commit 4a5f86d4fffd16592c6881ce17c7b6535db05cae
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Sep 5 19:31:34 2026 -0400

    add a new procedural building generator.
    
    it has configurable floors, footprints, roofs, walls, doors, windows, columns, beams, slabs, foundations, installations, materials, colors, underground/minimum levels, and recursive building parts.
    
    imports OSM Simple 3D Buildings, OSM building attributes, GeoJSON, Overpass JSON, and OGC CityJSON.  saves lots of metadata as attributes (particularly stuff we're not doing anything with but might be useful later).
    
    should be all solid geometry, but there are some issues to resolve like floating roofs that probably need implicit closure/attachment.

commit f1794e6908e08dc3cd512a78895c6c05b7ea27b4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Sep 5 18:46:55 2026 -0400

    remove old mkbuilding proc that essentially just make a hollow box, replacing with something far more robust

commit b551ceb7702806a3f753b8da84efdcb1163b937a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Sep 5 18:42:33 2026 -0400

    docs for the new procedural building generator (mkbuilding) which needs a better name

commit 203bba3617a1c03723f9686b17675e1b0d61598e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Sep 5 08:50:28 2026 -0400

    Keep MGED display-list callbacks on the GUI thread
    
    Interactive GED commands run on a worker so long operations do not block
    Tk, but their display-list callbacks inherited the worker thread. OpenGL
    contexts are thread-affine, so glGenLists could crash when display lists
    were enabled.
    
    Record the GUI Tcl thread and synchronously marshal display-list and
    refresh callbacks through its event queue. Continue servicing events
    during staged shutdown so a worker cannot deadlock waiting for a queued
    callback. Use each display manager context for list allocation,
    compilation, and deletion instead of the globally current DMP.
    
    This preserves asynchronous geometry work while keeping all GL access on
    the owning thread.

commit a092d2b99da5c0da534c63e357d7ef0aba67ee33
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 11:18:22 2026 +0000

    libbg: deduplicate polyhedron face vertices

commit cc51c56b0ca077bef06807cc7a90801cd2dbbf0c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 11:03:40 2026 +0000

    libbg: sort 3D polygon vertices by angle

commit 259e20ac56bf812d2c7797816c3a04f53bbba73c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 12:42:04 2026 +0000

    librt: defer missing VOL data diagnostics to prep

commit bb67c55eef3259fc8608a8b65510e6b9366b68f5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 11:18:46 2026 +0000

    analyze: use primitive metrics for ARBN totals

commit dd171575a5717a0c2ac4c9d16d65b6d91e37ebd5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 11:18:38 2026 +0000

    librt: compute ARBN metrics without NMG

commit baefe7570bfe5482065e7d683dd5b0c737f09e88
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 3 20:43:26 2026 +0000

    librt: reject empty BoT repair results

commit e2cdfa3a6aa56124b0669e9c8c4bce88005e8f86
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 02:04:05 2026 +0000

    librt: reject unloaded VOL data during prep

commit 398337892af46f66bd0f461a76dab18a86f5413f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Sep 4 10:47:26 2026 +0000

    librt: correct HYP volume integration

commit 658a26c09ab494199785074851a12f2a81738ede
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 3 10:59:31 2026 -0400

    Put the new docs in the active list, mention https://brl-cad.github.io/doxygen/ in the api reference

commit ae9df61cbf5d3c0b13fef8fd7dd7cd19d20c1e3f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 3 08:49:50 2026 -0400

    distcheck-source_archive fixes

commit 5a88ce39946024d8e3c85f0fdcf5a51000a35034
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 3 08:30:32 2026 -0400

    Check both memsz and type

commit cf4c917d26ed44a5412c0cb0f94070d5ba4b62e4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Sep 3 06:56:10 2026 -0400

    Missed an fgets

commit b45f61d419eadc4f71e2649e27d45d3fe0e42b29
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 20:53:06 2026 -0400

    Try to get some sense of available memory
    
    This problem doesn't have a perfect solution even on one platform, much
    less cross platform, but make a stab at adding some logic to give us
    some sense of what our memory availability is.

commit 211ea836a8e3a1303214488b4cd6313b3abbebe7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 20:50:18 2026 -0400

    See if pointing AGENTS.md to HACKING helps with regress-repository

commit 99b712f67fa7ed96305ec818ed4c09180a2521a7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 20:43:43 2026 -0400

    Use bu_fgets

commit c4b51eedadb4d33151aa607a4c01cd0708a564b1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 16:58:18 2026 -0400

    Update to latest bext SHA1

commit 08c56c000b264168d0be399b04b42cf880ac841a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 16:13:31 2026 -0400

    Build fixes

commit 720463c10eec3adf0722d0668923448d30b7baac
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 17:51:13 2026 +0000

    facetize: supervise transactional persistent workers
    
    The old facetize behavior sent batches of objects as command arguments and
    binary searched for failure objects when encountered - the latter behavior is
    extremely slow when there are lots of failures.  Instead, launch a subprocess
    and pipe objects to it, managing and at need restarting that subprocess without
    the hack of batching command line args to communiate what needs processing.
    Use a communication protocol to make it clear what data is passing between
    parent and child.
    
    Use improved bu_process polling and termination APIs, allowing us to
    remove the private vendored subprocess.h implementation.

commit a8d182dc4950db405570dc4ac1515540ea9bb970
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 15:20:44 2026 -0400

    librt: raytrace annotations as transient BOT geometry

commit 5c09639c72a13f87475f5551ad3d1f56f9b4480c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Sep 2 17:26:37 2026 +0000

    libged: exclude annotations from region-id coloring

commit b649cd8244ceb62f04dff0562075fced9d424dc4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 2 14:07:09 2026 -0400

    fit descriptions

commit b80cecd498855796389dbb2ec1c45db50410df57
Merge: 0d6cc34a13 12e37dc7b5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 2 13:51:19 2026 -0400

    Merge branch 'wip-7-46'

commit 12e37dc7b5f775c2bd5031c676e55b98fcf10c2a
Merge: 76b7fe6843 0d6cc34a13
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 2 13:03:40 2026 -0400

    another merge from main

commit 0d6cc34a13f37f675edaab2ca0cb246f4f75b2f6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 30 13:03:53 2026 -0400

    Various adjustments to bu_process I/O handling and lifecycle

commit 76b7fe68432f2c762879deb9c56bd158f782c72b
Merge: 233fdbd5b8 bcaebb24e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 2 09:32:38 2026 -0400

    more merging of latest main

commit 233fdbd5b82ef4ca1df93761f81617f69f1a6108
Merge: a24ee333f4 fd9a263088
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Sep 2 09:09:33 2026 -0400

    Merge latest main into wip-7-46 and fix some of the integration (merge and deconflict overlapping work)

commit bcaebb24e1ca3e392af238564cdce3d9fd463711
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 20:13:14 2026 +0000

    libbu: preserve Windows subprocess arguments
    
    Replace the path-and-whitespace quoting heuristic with Microsoft C runtime escaping for every argument.  This preserves empty arguments, embedded quotes, whitespace, and backslash runs when CreateProcess reconstructs argv.
    
    Add binary-safe argument round-trip coverage with the subprocess fixture so Windows newline translation does not obscure quoting failures.

commit cbf06cf06c7dd5a0de1ddc3bfe60fe2493aacaed
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 20:09:28 2026 +0000

    libbu: make process output readiness nonblocking
    
    Use a zero-timeout select on POSIX and reject descriptors that cannot be checked safely.  Document bu_process_pending as a readiness hint, since EOF and errors are intentionally collapsed into its boolean result.
    
    Exercise the nonblocking contract and wait for both output channels in the stream test without busy-spinning.

commit d4d218e86d8957a69dc645656a3d5d08da730daf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 20:06:19 2026 +0000

    libbu: harden subprocess creation and timed waits
    
    Initialize pipe and process handles before setup, unwind partial creation failures, and close Windows thread handles once CreateProcess succeeds.  POSIX descriptor redirection now fails the child immediately rather than continuing with a broken channel.
    
    Make bu_process_wait_n honor its millisecond contract without spinning, distinguish wait errors from timeouts, and reap only the direct child.  Timeout cleanup still targets the full process tree, falls back to the direct POSIX child when necessary, and reports forced termination consistently.

commit 8fbc36585b3fbd4465a29fe222ddbfc04d8d6ec8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 19:59:59 2026 +0000

    libbu: preserve subprocess status during supervision
    
    Add process-aware poll and terminate operations without consuming the bu_process handle. Cache completion status for later waits, return normal POSIX exit codes, keep unread output available after polling, and continue terminating process descendants after the group leader exits.

commit f25c84cea7cbef3911bcf5eaff045301525eb891
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 19:40:11 2026 +0000

    Consoliate deprecated bu_process API at the bottom of the header.

commit 4864d412f9f8bc3c65dad9a5377d25bfb5d6427c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 1 18:37:23 2026 -0400

    Revert "Don't use region coloring for annotations"
    
    Conflated with other work, back out for now.
    
    This reverts commit ac4ebdd0f2f5b0aacea574a2a40276d0c5533eef.

commit ac4ebdd0f2f5b0aacea574a2a40276d0c5533eef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 1 20:28:34 2026 +0000

    Don't use region coloring for annotations

commit ce402cbbc0c1a125bb057472dd19780d280f8800
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 1 17:29:23 2026 +0000

    Group bot split outputs under a comb

commit 44a4502f4910b9e887ab3d65d4d8ce096090276e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Sep 1 13:01:50 2026 -0400

    Add bu_setprogname

commit fd9a263088ddb7eabebc26093c71a04b889ce712
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 19:26:24 2026 +0000

    libged: preserve BOT data in split and decimate commands
    
    Consolidate bot split and the deprecated bot_split command on a shared
    rt_bot_split implementation.  Preserve BOT metadata and database
    attributes, skip occupied output-name suffixes, and roll back partial
    output when a write fails.
    
    Update bot decimate to use face provenance and rt_bot_gc so plate data,
    normals, texture UVs, flags, and object attributes survive compaction.
    Improve cleanup of failed database writes.
    
    Document the edge-connected split semantics and bot_split deprecation,
    and add command-level regression coverage for both interfaces, naming
    collisions, attributes, plate data, normals, UVs, and decimation.

commit b62ec823e9a542fac6d911d96b6e5e663f56dd9d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 19:12:51 2026 +0000

    librt: preserve BOT data through mesh operations
    
    Add rt_bot_gc and rt_bot_subset to centralize compact BOT construction
    while remapping plate thickness, face modes, normals, and texture UVs.
    Use these helpers for splitting, patch extraction, plate cleanup, and
    decimation.
    
    Replace the legacy quadratic BOT splitter with bg_trimesh_separate and
    preserve all source face and vertex data in the resulting components.
    
    Retain face provenance through the simple, legacy, and GCT decimators.
    Harden GCT decimation with validated input, guarded collapse positions,
    working-copy updates, and an original-surface distance postcondition so
    invalid output is rejected without modifying the input BOT.
    
    Preserve normals and UVs during merge-only repairs, explicitly report
    attribute loss for topology-changing repairs, and reject unsupported
    non-solid repair inputs.  Add regression coverage for splitting,
    attribute remapping, malformed data, and decimation preservation.

commit d4bfdae632b9dd8b06ac1c269daea5509ff9c2d2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 19:04:12 2026 +0000

    libbg: preserve face provenance in trimesh operations
    
    Add bg_trimesh_separate, a union-find component separator that returns
    grouped original face indices.  Correctly handle non-manifold edges,
    provide deterministic ordering, and support compact component creation
    with bg_trimesh_3d_gc.
    
    Add bg_trimesh_run_decimater to return source face indices with the
    decimated triangles.  Harden decimation against invalid references,
    non-finite geometry, and unsafe coordinate scaling.
    
    Retain the existing APIs as deprecated compatibility wrappers, document
    the bot_split transition, and add regression coverage for topology edge
    cases, provenance, invalid input, and the garbage-collection workflow.

commit 82aaff27aad5d3ef44dbb9f043ef8d4e4e230c37
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 11:43:39 2026 -0400

    Add a few more NEWS items

commit 0429872ee1aeb3d9acd8886621048ec763217f7c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 11:16:53 2026 -0400

    Mention the cutting plane animation feature in rtwizard

commit ad42839386ef191a945606b1c551ff71145c5371
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 10:31:34 2026 -0400

    Mention Josh's work with the man page updates and corrections

commit a4a9ec3f782605a4f329e4919aca3209f728d160
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 10:29:59 2026 -0400

    Note the LBFGS++ improvements to average triangle quality in bot remesh

commit 02427b1ed1f883460399c8b916ac5ec43ebc7794
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 31 01:10:43 2026 -0400

    Improve LTO testing

commit 880be2acfea32221cd1e6e1dc8ad629de19d06a4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 22:21:02 2026 -0400

    Linux build fixes, add header/footer to test files

commit ada07253225d5891522cd461e67f61e499f739e5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 16:38:07 2026 -0400

    libbg: correct line and segment query contracts
    
    Correct public argument order and documentation for line and segment
    queries, including ray-versus-line behavior and parameter units.
    
    Handle degenerate directions and segments consistently, correct parallel
    closest-approach and 2D endpoint-tolerance logic, and restore the
    documented parallel-segment return code.
    
    Add focused regressions for these cases, AABB line behavior, triangle
    closest points, segment closest points, and trimesh GC.
    
    This started because of an incorrect behavior in the bot pick subcommand
    - it was selecting the wrong vertex, which wasn't surprising when we
    were feeding in the point and direction according to what the API said
    rather than what the implementation was *actually* doing...
    
    The API warrants a more thorough "what should this look like" design
    pass - the idea here was to try and avoid "header is wrong" pitfalls
    like the one bot pick hit.

commit 1691a8ba420663247edb0fdff26d83fa7a2daed0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 14:54:31 2026 -0400

    libbg: use GTE-backed triangle line intersection
    
    libbg has a couple non-BoT-hot-path triangle intersection test
    functions - use GTE's version rather than our older versions.

commit a63599282094d8c707e0451032eb8e8055b34502
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 13:34:50 2026 -0400

    Remove redundant USE_TCL_CHAN define

commit 2b1cf87dc080845212497da68ce8a48ee9320633
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 12:44:13 2026 -0400

    Only try the MGED csg editing tests if we have Tk enabled

commit fc58919ab48b30cfbf7a15180a5def9558fd2be6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 28 10:15:08 2026 -0400

    Add M_LIBRARY for g-scad

commit 72ec941830ccfa5f28c5220e411ef30d3833c054
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 23:17:02 2026 -0400

    libdm: fix X embedded framebuffer and font metric handling
    
    Make the X24 embedded framebuffer follow the X display manager's current
    backing pixmap rather than retaining a copy of its X resource
    identifier.
    
    The X display manager uses a pixmap as its back buffer.  Whenever its
    Tk window is configured at a new size, X_configureWin_guts frees that
    pixmap and creates a replacement.  The embedded X24 framebuffer,
    however, received the pixmap identifier by value when it was opened
    and retained that value in xi_win.  It was never notified when the
    display manager replaced the pixmap.
    
    Consequently, after a ConfigureNotify the two components could have
    different views of the backing drawable:
    
        display manager: newly allocated pixmap
        X24 framebuffer: identifier of the freed pixmap
    
    The next framebuffer refresh would issue XPutImage against the stale
    identifier.  X protocol errors are asynchronous, so the invalid
    request was generally reported later by XFlush, XSync, or event queue
    processing.  Xlib's default error handler terminates the process with
    exit status 1.  Since graphical MGED redirects its diagnostics through
    the GUI, this appeared to users as an immediate, silent exit rather
    than an ordinary crash or Tcl error.  A common reproducer was to draw
    all.g and open the Raytrace Control Panel, which activates and refreshes
    the embedded framebuffer after Tk geometry processing has replaced the
    display manager pixmap.
    
    This is a longstanding ownership bug rather than an operation that
    suddenly became invalid with the upgrade to Tcl/Tk 8.6.
    
    The embedded-existing-resource path dates to January 1998
    (0b2e440288 and bf179a0e27).  It passed the display manager pixmap into
    X24 by value, and that behavior was preserved when framebuffer
    ownership was moved behind the display-manager API in 2014
    (8a97c2184a).
    
    Tk 8.5 happened to conceal the lifetime error.  Its Unix XID allocator
    intercepted Xlib resource allocation and kept freed identifiers on a
    LIFO stack.  X_configureWin_guts calls Tk_FreePixmap immediately before
    Tk_GetPixmap, so the replacement pixmap would normally receive the
    same numeric XID as the pixmap just freed.  Although X24 retained a
    stale value, that value accidentally referred to the newly created
    pixmap by the time it was used.
    
    Tk 8.6 removed that private allocator and made Tk_FreeXId a no-op,
    relying on the X server's XC-MISC resource management instead.  The
    replacement pixmap was therefore no longer likely to receive the same
    identifier.  This exposed the stale drawable retained by X24.  The
    problem was observed immediately after the 8.6 migration and recorded
    in 388a8afd6a on April 17, 2020 as an X error during fb_refresh and
    X24_blit.
    
    Pass X24 a const pointer to the display manager's pixmap slot and
    resolve that pointer whenever X24 draws.  Embedded framebuffer blits,
    region clears, and expose refreshes now always target the currently
    owned display-manager back buffer.  Standalone X24 framebuffers
    continue to use their own xi_win drawable.  The display manager remains
    responsible for copying the completed back buffer to the Tk window.
    
    Also centralize X11 font-width lookup for the X and OpenGL display
    managers.  Xlib permits XFontStruct::per_char to be NULL when all
    glyphs have identical bounds.  The previous configuration code
    dereferenced per_char unconditionally while selecting a font size.
    Use per_char->width when per-character metrics exist and
    min_bounds.width otherwise, avoiding a legal NULL dereference and
    keeping the two X11 backends consistent.
    
    Verified by rebuilding MGED, drawing moss.g/all.g, repeatedly opening
    the Raytrace Control Panel, resizing the graphics window before and
    after framebuffer writes, and completing a full-window embedded
    raytrace.  MGED remained running and framebuffer content followed the
    resized display-manager pixmap correctly.

commit 929bbf65d73aa7fee3d8fd132af23b5e9c09933c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 23:05:54 2026 -0400

    Remove unnecessary hardcoding of dm types and fix tkmessageBox msgs in sketch editing

commit 1e6875bb1de6e0ac6445881b10d3bd3d56a43b60
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 23:04:39 2026 -0400

    Fixes for pipe and sketch editing

commit 7895648b0865b8fa43f616bb794e76febf53e20a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 20:38:41 2026 +0000

    rtarea: stabilize area accounting and reporting
    
    Manage area results independently of region records and clear all references
    when frame data is released, preventing stale pointers during cleanup and
    multi-frame rendering.
    
    Correct incremental and hypersample area scaling, include the base incremental
    pass, and seed rtarea jitter per pixel so results do not depend on worker
    scheduling. Ignore air when accumulating exposed-area totals.
    
    Add serial, parallel, incremental, jitter, hypersample, multi-frame, and
    analytic convergence tests using spheres, a cube, and occluded geometry.
    
    Remove rtarea TODO - there have been multiple parallelism fixes that are
    likely candidates for the intermittent failure issue on Windows in recent
    libbu work, and a quick Windows test on a smaller model didn't exhibit missing
    regions in the report.  If we run into more problems with a valid reproducer
    we can reopen.

commit 01bf4761c2ff9a17e50af150245ec0d74de139dd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 20:35:17 2026 +0000

    Ajust our handling of WaitForSingleObject issues in bu_parallel

commit ce1897e90f692b162d49d084144228dc7b092d79
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Aug 27 15:41:20 2026 -0400

    add -f option for pnts write
    
    support is currently ONLY for -f xyz

commit 1a6b534527441e14e3e988021a45138ab3e4a98b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Aug 27 15:11:18 2026 -0400

    more obvious logging on root solver messages

commit 984e3f658b3fb954bb0a6c4eb5650f7a2a39877b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 11:38:00 2026 -0400

    Don't need rt_uniresource here any more

commit 6d82c427238783d26a1ae3705c906db3863180a4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 10:06:02 2026 -0400

    Try harder to use the C++ std thread_local instead of __declspec(thread) with MSVC

commit e4c15824bc3289ec53bfd5ac11f6d849feae1162
Author: Erik Greenwald <erik@brlcad.org>
Date:   Wed Apr 8 11:44:15 2026 -0400

    Add ARB6 and ARB7 detection to csg-g polyhedron import
    
    ARB6 (triangular prism): 6 vertices, 5 faces (2 triangles + 3 quads).
    Identifies opposing triangle faces and pairs vertices via shared
    side quads.
    
    ARB7 (arb8 with one collapsed corner): 7 vertices, 6 faces
    (2 triangles + 4 quads).  Finds the bottom quad, identifies top
    vertices, and pairs via face adjacency.
    
    Previously these fell through to BOT.

commit 01c5ca661ee652da6fb2403ba2f11b1893766ed7
Author: Erik Greenwald <erik@brlcad.org>
Date:   Wed Apr 8 09:19:14 2026 -0400

    Add man pages for csg-g and g-scad converters

commit dca76d47546943b84f6fa37c89f17fbe22eb1ba7
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 15:33:37 2026 -0400

    Add particle, pipe, and revolve export to g-scad
    
    ID_PARTICLE: exported as hull() of two spheres at endpoints.
    ID_PIPE: exported as union of cylinders for straight segments
      with spheres at joints for smooth connections.
    ID_REVOLVE: exported as rotate_extrude(polygon()) by reading
      the referenced sketch's vertices and line segments.

commit 2806b152641caaefdfb2e89d35346089a2354352
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 13:29:57 2026 -0400

    Add import() inlining and halfspace support
    
    csg-g: import(file="foo.stl") now reads the referenced STL file
    relative to the .csg file's directory and inlines it as a BOT.
    Also adds render() as a pass-through wrapper.
    
    g-scad: ID_HALF (halfspace) is exported as a 2e10mm cube positioned
    on the correct side of the plane via multmatrix.  Not mathematically
    exact but sufficient for any practical CSG subtraction.

commit da02b1003eaa5f42a87d7fc514a516bae300b7d1
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 12:38:49 2026 -0400

    Fix tessellation crash by re-reading primitives from database
    
    ft_tessellate can corrupt the rt_db_internal structure, causing
    heap corruption when rt_db_free_internal runs later.  Fix by
    re-reading the primitive from the database for a fresh copy
    before tessellating.
    
    Note: EHY tessellation (rt_ehy_tess) has a pre-existing heap
    corruption bug in BRL-CAD itself — not addressed here.

commit c35696166a7dbd5eb5d28347a7463d3f46f8535a
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 11:28:42 2026 -0400

    Add sketch+extrude support for polygon extrusions (bidirectional)
    
    csg-g: linear_extrude(polygon()) creates a BRL-CAD sketch from the
    polygon vertices/paths, then extrudes it with mk_extrusion.  Also
    handles rotate_extrude(circle()) as torus and linear_extrude with
    circle/square children as cylinder/box.
    
    g-scad: ID_EXTRUDE primitives are exported as linear_extrude(polygon())
    by reading the referenced sketch's vertices and line segments.
    ID_SKETCH primitives encountered standalone are silently skipped.

commit 66a9e67399544774620868e6dc168862ece62810
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 10:18:56 2026 -0400

    Add rotate_extrude and linear_extrude support to csg-g
    
    rotate_extrude(circle()) maps to mk_tor (torus).  This recovers all
    1145 previously-skipped solids across the test suite.
    
    linear_extrude(square()) maps to mk_rpp (box).
    linear_extrude(circle()) maps to mk_tgc (cylinder/cone).
    
    Unsupported extrude children (polygon, etc.) warn and skip.

commit 0bb2b3b48024f2df16d65b9ddf2cc2e950284081
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 09:46:26 2026 -0400

    Add g-scad exporter for BRL-CAD to OpenSCAD conversion
    
    Walks the CSG tree preserving boolean structure (union, difference,
    intersection), transformation matrices, and primitive geometry.
    Direct mappings: SPH/ELL to sphere(), TGC/REC to cylinder(), ARB to
    polyhedron(), BOT to polyhedron(), TOR to rotate_extrude(circle()).
    Unsupported primitives are tessellated via ft_tessellate/nmg_bot.
    Combination colors are emitted as color() wrappers.

commit 675106e869de1945af34049573ea13b950abd3a3
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 09:30:12 2026 -0400

    Store color attributes from OpenSCAD color() nodes
    
    Parse color([r, g, b, a]) and store as BRL-CAD attributes:
      color = R/G/B (0-255 range)
      alpha = 0.NNN (only if < 1.0)

commit b63331b548e7284533ee26f2fd7fd7537d8bf583
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 09:15:51 2026 -0400

    Add convexity check to polyhedron ARB detection
    
    Non-convex polyhedra go straight to BOT since ARB primitives require
    convexity for correct ray tracing.  The check verifies that for each
    face, all other vertices lie on the same side of the face plane.
    Tetrahedra (arb4) skip the check since they are always convex.

commit 4df6de9b9a587cf2e7d55dd01b911a2b299a8875
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 08:56:39 2026 -0400

    Add polyhedron support to csg-g with ARB detection
    
    Parse OpenSCAD polyhedron() nodes, attempting to match ARB primitives
    before falling back to BOT (bag of triangles).  Detection order:
    arb8 (8 verts, 6 quad faces), arb5 (5 verts, quad base + apex),
    arb4 (4 verts, 4 tri faces).  Non-matching polyhedra are
    fan-triangulated into BOT solids.

commit bc49e0e335fea9d9b3db32953df458e3add4947f
Author: Erik Greenwald <erik@brlcad.org>
Date:   Tue Apr 7 08:41:25 2026 -0400

    Add csg-g converter for OpenSCAD .csg format
    
    Import OpenSCAD's evaluated CSG tree format (.csg) into BRL-CAD .g
    files.  The .csg format is produced by: openscad -o file.csg input.scad
    
    Supports cube, sphere, cylinder primitives, boolean operations
    (difference, union, intersection, group), multmatrix transforms,
    and color nodes.  Warns and skips unsupported nodes (linear_extrude,
    rotate_extrude, hull, minkowski).

commit 23dde1651dcb131397aa45618f1e30d80fa209c4
Author: Keith Bowman <indianlarry@verizon.net>
Date:   Tue Aug 25 09:06:55 2026 -0400

    Update material default document references to 0
    
    Update user-facing documentation to match the new default numeric material code for newly created regions.
    
    Adjust STL and GCV converter documentation to describe material code 0 as the default for created regions, and update the gqa/check guidance to reflect that MGED now assigns 0 to new regions by default.
    
    Add a NEWS entry noting the default new-region material code change from 1 to 0.

commit 4dd9e99dd0f1c70a51f3c0073191eecef2a64dd4
Author: Keith Bowman <indianlarry@verizon.net>
Date:   Tue Aug 25 09:06:55 2026 -0400

    Add tests for new default region material code
    
    Added a GED regression test covering regdef-backed region creation and the default numeric material code for new regions.
    
    Added GCV regression tests plus a verifier utility to confirm STL, PLY, VRML, and assetimport-created BRL-CAD regions get material code 0 by default.

commit 8323badb26b4d94fbd151dfeeed3021e957cc4b8
Author: Keith Bowman <indianlarry@verizon.net>
Date:   Tue Aug 25 09:06:55 2026 -0400

    Default new region material codes to 0
    
    Switch the core wdb new-region material default from 1 to 0 and update converter/importer code paths that still hardcoded non-zero material defaults for created regions. Also fix regress-red expectations for the new default material behavior.

commit c523397c032b68bf64f5b20417a66d230b925687
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 27 02:40:38 2026 +0000

    libbu mapped_file needs to deal with drive letters

commit 3ea99fe4c9007343775f3317e4e824068d33b0aa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 26 19:06:38 2026 +0000

    Add more controls for LTO optimization

commit 7e9a762645a750ef006fcd8222638c0ea67d421f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 26 17:59:43 2026 +0000

    Add more extensive automated testing of MGED csg editing and make some behavior adjustments

commit 6c092182a665bcccc7d70a2275da2c5f9dc3f5a1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 20:10:36 2026 +0000

    Make another stab at fixing ARB5 point editing

commit d983d340bfeb828a00167c860ef0168dc345b4bb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 15:38:44 2026 -0400

    Use setsid to prevent the bu_bomb message from escaping CTest's capture

commit 75ef43ac37fed1bd622783a5e9ad77b6093f02ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 15:32:10 2026 -0400

    Add some more tests for gqa and rtcheck plotting

commit fa687de9340ad0fae024b350068ca2cf500759fc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 14:42:07 2026 -0400

    Fix std::vector use-after-free error in tree.cpp

commit a0281a0c95b147d6ca09c1209fe57b619e61539a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 14:48:20 2026 +0000

    Cleanup for BrlcadBugs logic

commit b772bb19dd93971e2f2ce4452be69dc04bdc1f7a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 14:38:36 2026 +0000

    Handle setting up stepcode outputs at configure time
    
    The build time generation trick was neat, but it was basically redoing
    the build system mid-stream.  That shouldn't be necessary and feels like
    risky surgery mid-flight, so switch to doing the staging work for
    the source files we need during configure time.

commit fb84d63d0fb4470751ab7fa319a862e1c71938c4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 14:05:03 2026 +0000

    Update bext SHA1

commit ee127c71fe23c5247a2e017572a23b3dd461ac66
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Aug 25 13:58:13 2026 +0000

    Fix double-listing of BRLCAD_EXT_DIR in apple logic

commit eeb8d89cdf1ea7029c2dbf4b6c4a33ffee172aae
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 24 00:19:59 2026 -0400

    fix two semaphore issues.
    
    first, don't set the magic until we're actually done.  second, don't init with SEMAPHORE_INIT or we're in UB territory on some platforms (e.g., linux) when semphore[0] is re-initializaed.

commit caba09e05852942a600341549ee521f1076bfaab
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 23:08:14 2026 +0000

    Was too aggressive about setting build type for distcheck tests

commit 5a294d392824c4775234ceb6d5fd9403712cc02f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 22:55:25 2026 +0000

    Use GENERATED property rather than dir location
    
    When doing an in-src-dir build, the header generation for
    libged commands wasn't working correctly.  Everythig was
    "in the binary directory" so the generated header was useless.

commit 506e88cdd6b4ceb719e50ad280ef2d5e1776e60c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 21:49:05 2026 +0000

    Fix generation of distcheck yml file

commit 51837d933f3b1972aca72cc44c2a746cee2d9126
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 21:40:34 2026 +0000

    Use the bext manifest if available - avoids characterization work.

commit 8d49601452117d7d7f18c1d6d02b5bc33f400c2d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 17:29:09 2026 -0400

    Add distcheck configurations for non-unity building
    
    Most of the time we do unity builds for performance reasons, but sometimes that
    can mean we end up missing includes we need in individual files.  Add non-unity
    building to distcheck to be sure we check that case.

commit 6e0ad0582737a601706d931cba512eb86b6e7b8a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 16:23:03 2026 -0400

    update setup-msbuild to v3

commit fb052d5a142c920126cfdd11dc778d712b112309
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 20:20:28 2026 +0000

    Fix odd_pathnames path quoting

commit 1f080637fea13acf018bc317ee329883111a088f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 15:34:51 2026 -0400

    Update CMake yml instances of actions/cache

commit ae9a997bf5094096863edabc927140eb2dd7610c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 15:23:36 2026 -0400

    Update actions/cache to v6

commit 2a9e37bc13e66b057242e4f21e26196b34cb1e87
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 18:01:03 2026 +0000

    Try to avoid OSX failure where it rejects applying a limit below the already-mapped address space

commit 8baf77c9fb074e0781b0381ba2c648900c66ae4b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 13:43:12 2026 -0400

    Missed a distclean

commit eb8f8919b84e5d564dd2c578a04ff7403e17c57a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 16:59:44 2026 +0000

    Add step test outputs to disclean

commit be97d86e4ec67b48c37e5a87c358f6c328748717
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 16:27:01 2026 +0000

    Fix bug in how librt knob adapters handled edit_flag.
    
    edit_flag identifies the exact primitive operation, while
    edit_mode identifies the interaction class.
    
    rt_knob_edit_rot/tran/sca() incorrectly replaced a
    primitive-specific flag with the generic operation before
    dispatching.
    
    Fixed in src/librt/edit.cpp:811:
    
    - Preserve primitive-specific edit_flag when edit_mode matches.
    - Fall back to generic operations otherwise.
    - Covers translation, rotation, and scale paths.
    
    The MGED faceplate and constrained-axis handlers already
    preserve the flag correctly; they route through these adapters.
    
    Added regressions in src/librt/tests/edit/arb8.cpp:312 for:
    
    - ARB5 point 5 direct editing.
    - ARB5 point 5 knob dragging.
    - ARB face rotation through the knob path.

commit f0a946cf1db8a5c590424de3963fe9194dac6ab3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 15:57:44 2026 +0000

    Clean up env2c skip_regex

commit 5b5b1fdddaa0c047dd587c3e7e5b5f9251a57fc9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 14:58:02 2026 +0000

    MSVC didn't like __VA_ARGS__

commit eb2549f4a50571b17f8e7e4165c2c460a0176cb4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 14:53:30 2026 +0000

    Have repocheck validate its exclusion patterns

commit ef5363c1ba8d402a43ef511a7b8442d438d96205
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 14:40:22 2026 +0000

    Update regress-licenses checker
    
    Make it easier to specify exemptions for specific files.  Also have
    the program error out if exclusion patterns are specified that don't
    match anything so we know to clean out old patterns.

commit 04c91a04cfa99e745fc4a23346d2c4cd60bb6d54
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Fri Aug 21 21:36:03 2026 +0200

    Update dependency for crudini to Pre-Depends
    
    Changed dependency from Depends to Pre-Depends for crudini.

commit 2c15270a0a2ca0886e117b90cea4d5b2be8ca7b8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 24 10:21:26 2026 -0400

    Revert public domain data hack
    
    As expected, too fragile to be useful.
    
    This reverts commit c7a2e3a28a85f1efa0e5030fb0c74e518f83edd1.

commit fee67ac743d3db45055563ac160982a1acfac55e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 22 15:47:04 2026 -0400

    add day/dusk/night texturing

commit 6d3a57642fc76dcf2ba222dfd478a99bb24fc6e8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 22 08:00:51 2026 -0400

    Make near-equal annotate placement candidates resolve in stable generation order across floating-point environments.

commit 18ff49865d83829fd0298ca6110fdb6582e1b85a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 23:45:33 2026 -0400

    Try to get more insight into what's failing

commit d86ae40da5de85d04075730c3b6393327497f4d4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 22 03:23:01 2026 +0000

    Take a stab at the annotate libged command
    
    This replaces the stub annotate libged command with an attempt at
    a functional version that can actually make annotations.
    
    Motivation initially was to replace the AI generated autodim command
    experiment with a more proper annotate audodim subcommand, but to do
    that we actually needed an annotate command.  A more proper autodim
    implementation is part of this, but the scope of this is much larger.
    This effort too is largely AI driven (GPT 5.6) but with more back and
    forth than the original autodim effort.

commit e1dddf72ff2bb2d00076d8c3749e4d00e4f09b9b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 20:58:52 2026 +0000

    Better bu_mem reporting on failure

commit 6b5fe0082edef8c4d4f21f3d098ef52fc318545e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 16:45:37 2026 -0400

    mapped is too generic to safely #define

commit 2f33582593a2d85fc91921c965edbeedc12913eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 16:17:01 2026 -0400

    Use Cauchy-Crofton to back -t bb option, support combs with -o
    
    Taught the -o option to walk comb trees and support more than just BoTs.
    
    Replaced the earlier basic 128 ray grid bb "-t" tight option with a denser
    pseudo-randomly sampled point set from our Cauchy-Crofton logic.  Also uses
    that same ability to flesh out our -o obb support with -t -o combined support -
    a "tight" obb based on point sampling bounds.

commit 66068dc14c47a5a50f263a3aec0b3b860aa26a02
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 16:00:04 2026 -0400

    Wire up the GTE oriented bbox logic behind bg_3d_obb

commit bd98843c66113e9881020a19f8a38d35a3ff4662
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 15:57:17 2026 -0400

    GTE should be a system include

commit a24ee333f442b5aeb03a9fecc6a8690b80fd6f50
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Aug 21 13:48:00 2026 -0400

    update to remove unicode and include instructions on git behavior, given we don't want to pollute history with tooling info

commit 53d334962b6beec016edec0f6d1d3e630b3bbca8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 15:34:56 2026 +0000

    More bu_mem adjustments

commit 2defba84987d79ca244ec3e9f438a319be376b18
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 15:27:32 2026 +0000

    Fixes for bu_mem tests on FreeBSD

commit ef4e678d9eeffa0bd8f07a7d4c675362d2856e03
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 08:19:03 2026 -0400

    Report finite process address-space headroom
    
    Wireframe workers need to distinguish physical memory from the virtual
    address space remaining under a process cap.  Add a portable bu_mem
    query for Windows, Linux, macOS, and the BSD implementations, using
    project wrapper headers.
    
    Exercise ordinary and finite-limit reporting so rendering code can
    scale concurrency before thread stacks or allocator arenas exhaust the
    process.

commit 625964a58302377916c53afd97e682a640e9683e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 21 10:36:14 2026 -0400

    Make sure we have the targets we need before defining step tests

commit a1edda80cc08c94bd9be75114995173f23694bd4
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Thu Aug 20 16:26:42 2026 +0200

    Add crudini to brlcad package dependencies
    
    Added 'crudini' as a dependency for the brlcad package.

commit 88c5a95db6c8de6c374da3c105a79601463f5afb
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Thu Aug 20 16:23:01 2026 +0200

    Add brlcad.prerm to installation files

commit 722ffd57eafa0de7ce67c69eee71a07f2ee9b6d1
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Thu Aug 20 16:22:08 2026 +0200

    Add script

commit 2b9e7c9398593e337df408d29606e685992586f8
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Thu Aug 20 16:19:48 2026 +0200

    Clean up brlcad.postrm
    
    Removed code for handling mimeapps.list file.

commit 9e70b336dd6f30a515ae5799bcec608edab2a7e2
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Thu Aug 20 16:18:33 2026 +0200

    Refactor brlcad.postinst for MIME type associations
    
    Updated the post-install script to modify default applications for BRL-CAD MIME types and changed the file path for mimeapps.list.

commit 7b7c0cb4d08298dc9677e296b5595f154d2cb57c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 20:56:45 2026 -0400

    Improve OpenNURBS I/O robustness
    
    OpenNURBS has two concrete concurrency hazards:
    
    - ON::Begin() uses unsynchronized global initialization state.
    - Model reads reach Unix localtime(), which uses process-wide state.
    
    Added a mutex-based protection into a shared transactional archive reader
    in src/librt/primitives/brep/ brep.cpp:2352, while improving the
    branch’s version to:
    
    - Check ONX_Model::Read() and every recovered component.
    - Publish an internal BREP only after complete success.
    - Protect both database imports and base64 adjust reads.
    - Preserve the old BREP when adjustment fails.
    - Free decoded base64 buffers correctly.
    - Fix backward seeking and overflow handling in the in-memory archive.
    
    The existing tests did not directly cover BREP archive I/O. Added
    src/librt/tests/brep_io.cpp:1, covering round trips, concurrent imports,
    base64 adjustment, truncated archives, and arbitrary invalid data.

commit 3859405b15b81c67ee9e562f28d10fe44d5f6762
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 20:41:23 2026 -0400

    We need to respect BUILD_TESTING - it can be set to OFF

commit 6c94ae71d24d5684b0beefbd58e6ee2bffdcd75e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 16:59:46 2026 -0400

    Add support for -h/--help to Archer
    
    On Windows (where Archer is built as a GUI application) this won't print
    help in the console, but it will exit without launching the GUI.
    Otherwise, it should print help and exit.

commit bcf4103133add3c45424706576c17b6449bcd545
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 16:42:40 2026 -0400

    Add regression test for asc2g/g2asc datum support

commit f19f822e95149d7b3770cc46bf926d4ee0e7fd9f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 16:30:21 2026 -0400

    Add autodim cmd for annotating dimensions
    
    This isn't where we would want it to be - the annotations it produces
    aren't what I'd expect for this use case, and it probably belongs as a
    subcommand of the annotate command rather than being a top level
    command.  However, once wired into MGED it does produce in-scene
    annotations so stashing it as a starting point for follow-on work.

commit 3178510a3b18c67b0f1d32aac62439f05355a43a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 16:02:00 2026 -0400

    Avoid guaranteed miss shot, improve error message

commit b477f665abe7c30e10fa01cc23074d5f862567d5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 15:55:53 2026 -0400

    Imlement -a (az) and e (el) options in gqa

commit f6c0e60e290a61ed9b6da9f8432e5076a71d2c25
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 12:54:30 2026 -0400

    Add a tight" -t raytracing based bbox to bb cmd
    
    This is currently a coarse sampling only, but it does function so
    adding it as a useful starting point.
    
    Makes me wonder if there's a Cauchy-Crofton convergence criteria we
    could define here that would be better than a coarse grid sample,
    but that's follow-on work.

commit 1e939c7de39e82f5a42096558ce4b3af49079f9f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 12:29:27 2026 -0400

    Add center command support for object specifier
    
    Resolve the object's bounding box (RPP) via `_ged_get_obj_bounds2'. For
    non-solid directory entries, fall back to `rt_obj_bounds`, mirroring the
    `ocenter.c` pattern.  Once bbox center point is known, center the view
    there.

commit df19156341576b11d34501a5b321956033c47352
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 12:09:18 2026 -0400

    Work on fixing ARB5 moving point 5 editing
    
    User report was that moving point 5 on an arb5 also moves point 1.
    
    Root cause analysis from AI was that ARB point-move menu handlers
    (`arb5_edge`, `arb6_edge`, `arb7_edge`) pre-remapped the menu-arg value
    (8 = pt5, 9 = pt6, 11 = pt5 on ARB7) into the point storage location
    (4/6) BEFORE `rt_arb_edit()` ran its dispatch.  `rt_arb_edit()`'s
    ARB5/6/7 case tests `edit_type` against the `RT_ARB{5,6,7}_MOVE_POINT_*`
    constants (values 8/9/11). With the menu value clobbered to 4, the POINT
    branch never fired and control fell through to the EDGE path (`earb5[4]`
    = edge 15), dragging pt1 along with pt5.
    
    Interactive testing doesn't result in the arb5 point 5 moving at all in
    MGED, but it's not clear if that's a side effect of this change or other
    breakage tied to the shift to librt editing. Go ahead and apply the
    suggested change, since even if it's not fully sufficient itself it's
    likely the logic in question is involved.
    
    Add a follow-on TODO item to investigate and fix ARB5 point 5 moving not
    being responsive.  Also make a more general note that we need to test
    the shift to librt-based primitive editing extensively for the next
    release.

commit 01c4a39932f0f3a24464e04291a64113119dbef2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 07:21:16 2026 -0400

    Try using getchar() for redirected input and keep getch() for interactive input on Windows

commit 9039d0998afcd10ee902cb5695e377ea59c10ec8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Aug 20 03:33:12 2026 -0400

    Fix post-merge build and runtime integration

commit 52494047ca931290c4e1409a2a05e57f0cd91820
Merge: fa6028fca6 ab9658501f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Aug 20 02:24:35 2026 -0400

    Merge remote-tracking branch 'origin/main' into wip-7-46
    
    # Conflicts:
    #       BUGS
    #       CMakeLists.txt
    #       NEWS
    #       README
    #       TODO
    #       doc/asciidoc/articles/CMakeLists.txt
    #       doc/asciidoc/articles/adrt_gallery/generate_adrt_gallery.cmake
    #       doc/asciidoc/articles/adrt_pathtrace.adoc
    #       doc/asciidoc/articles/images/adrt_castle_path.png
    #       doc/asciidoc/articles/images/adrt_castle_rt.png
    #       doc/asciidoc/articles/images/adrt_castle_rt_ao.png
    #       doc/asciidoc/articles/images/adrt_chess_path.png
    #       doc/asciidoc/articles/images/adrt_chess_rt.png
    #       doc/asciidoc/articles/images/adrt_chess_rt_ao.png
    #       doc/asciidoc/articles/images/adrt_cornell_path.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_depth.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_normal.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_path.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_phong.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_rt.png
    #       doc/asciidoc/articles/images/adrt_toyjeep_rt_ao.png
    #       doc/asciidoc/articles/mged.adoc
    #       doc/asciidoc/articles/oed.adoc
    #       doc/asciidoc/devguides/CMakeLists.txt
    #       doc/asciidoc/system/mann/remove.adoc
    #       doc/asciidoc/system/mann/rm.adoc
    #       doc/changes/changes_api_baseline.adoc
    #       doc/changes/changes_generate_rules.cmake
    #       doc/changes/deprecated.adoc
    #       doc/changes/minimally-impacting.rules
    #       doc/changes/obsoleted.adoc
    #       doc/notes/struct_resource_removal.txt
    #       include/brlcad_version.h.in
    #       include/bu/color.h
    #       regress/rtwizard/CMakeLists.txt
    #       src/art/art.cpp
    #       src/conv/iges/iges_types.c
    #       src/conv/step/BRLCADWrapper.h
    #       src/conv/step/CMakeLists.txt
    #       src/conv/step/STEPWrapper.cpp
    #       src/conv/step/STEPWrapper.h
    #       src/conv/step/step-g/BoundaryCurve.cpp
    #       src/conv/step/step-g/CMakeLists.txt
    #       src/conv/step/step-g/ConnectedFaceSet.cpp
    #       src/conv/step/step-g/ConnectedFaceSet.h
    #       src/conv/step/step-g/CurveReplica.cpp
    #       src/conv/step/step-g/Face.h
    #       src/conv/step/step-g/FacetedBrep.cpp
    #       src/conv/step/step-g/FacetedBrep.h
    #       src/conv/step/step-g/FacetedBrepShapeRepresentation.cpp
    #       src/conv/step/step-g/FacetedBrepShapeRepresentation.h
    #       src/conv/step/step-g/Factory.cpp
    #       src/conv/step/step-g/GeometricSet.cpp
    #       src/conv/step/step-g/MappedItem.cpp
    #       src/conv/step/step-g/MappedItem.h
    #       src/conv/step/step-g/OffsetCurve3D.cpp
    #       src/conv/step/step-g/OffsetSurface.cpp
    #       src/conv/step/step-g/OpenNurbsInterfaces.cpp
    #       src/conv/step/step-g/PolyLoop.cpp
    #       src/conv/step/step-g/PolyLoop.h
    #       src/conv/step/step-g/Polyline.cpp
    #       src/conv/step/step-g/ProductDefinitionWithAssociatedDocuments.cpp
    #       src/conv/step/step-g/RectangularTrimmedSurface.cpp
    #       src/conv/step/step-g/RepresentationMap.cpp
    #       src/conv/step/step-g/RepresentationMap.h
    #       src/conv/step/step-g/SeamCurve.cpp
    #       src/conv/step/step-g/TrimmingSelect.cpp
    #       src/libbu/color.cpp
    #       src/libbu/tests/CMakeLists.txt
    #       src/libbu/tests/test_color.c
    #       src/libgcv/plugins/jt/CMakeLists.txt
    #       src/libgcv/plugins/jt/jt_parser.cpp
    #       src/libgcv/plugins/jt/jt_parser.h
    #       src/libgcv/plugins/jt/jt_read.cpp
    #       src/libgcv/plugins/jt/jt_topology.cpp
    #       src/libgcv/plugins/jt/test_jt_parser.cpp
    #       src/libgcv/plugins/jt/test_jt_topology.cpp
    #       src/libged/rm/rm.c
    #       src/libged/tests/ged_test_rm.c
    #       src/libicv/anim.cpp
    #       src/librt/primitives/submodel/submodel.c
    #       src/rt/worker.c
    #       src/tclscripts/man_browser.tcl
    #       src/tclscripts/mged/openw.tcl

commit ab9658501f725a33c1d65e7d98eb41fb8011b19a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Aug 20 01:22:46 2026 -0400

    tag the title with the terrain, dimension, and scaling factor info

commit ac661d4bd5387bd83712d924ee1548ec9ab28d8a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 00:47:47 2026 -0400

    Normally we prefer using bu_file_delete for file removal

commit 0a491e28c21d97611b90cf7f500fd3df0e114c0f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 00:45:03 2026 -0400

    Add bu_setprogname

commit c7a2e3a28a85f1efa0e5030fb0c74e518f83edd1
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 20 00:37:06 2026 -0400

    This is tricky, but see if we can avoid discussions of public domain data triggering our guard.

commit 1173625034baba2ed6f21357280f151ec6499efd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 23:58:51 2026 -0400

    Build fixes for Linux gcc

commit 1d4c1013f58069023b1030ce13610cda5f12efa2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 23:31:01 2026 -0400

    Fix filename

commit 926569f86abbbceb7db3848ac482e2328411ca00
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 22:34:13 2026 -0400

    add a parashot proc that demonstrates creating a path affected by gravity.
    
    this has significant potential for turning into librt or libged api, but for now it's a geometry path generator that is potentially useful for creating gravity trajectories as pipes.

commit b1878e1738f89e98ce004d733ca8bccfc1bbd2e5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 22:02:32 2026 -0400

    need a proper metaball command

commit f4a27a38df4c52ce426a56075d127d7d67c963d5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 22:00:12 2026 -0400

    add metaball scaling, from workflow.
    
    not loving the hook on metaball_move_pnt, but it's technically forward progress with some minor justification (scaling a set does move the points).  begs for a proper metaball command with subcommands.

commit 6b0a14955b80e4ae8af7f244142c045e7384a159
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 21:01:45 2026 -0400

    significant change to all librt apps to now report when it's been asked to prep something that does not exist.
    
    this historically presented itself as a vague 'no primitives left to prep' message from rt and friends, but now will throw an error.  we may want to make it a warning, but giving the more aggressive halt a trial.  this should also help downstream apps that would error out (tree walk failure) without saying what object had a problem.

commit 9b2130e5d93d3cebf188831b0180589e5f6897c8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 20:08:23 2026 -0400

    add a low-res eartch 512x512x6 depiction at 48x as a sample

commit ca138bcbdf90b37cffd6ddef6666bc40d0f7aa51
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 19:45:53 2026 -0400

    update references from earthgen to gaia

commit 9e1074377304a467b2cf2a8f1b717ba676811bd1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 19:44:35 2026 -0400

    rename earthgen to gaia

commit 0aa5b772b5748263dd887a8e0f8c68c64db53df2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 19:08:36 2026 -0400

    document how to get and process the terrain dataset from noaa

commit e993bc50917378566cb50b3da9db3b35d73a93ec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 17:50:07 2026 -0400

    adjust the water scale

commit 408c766ddf68f4440c31187c476154d3e9a64ec9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 19 17:49:20 2026 -0400

    add a preliminary AGENTS.md file that spells out general best practices expected of everyone working on BRL-CAD, ai or otherwise.

commit 8c70ac858c3906f910472f6bd1cedbf49bf8f4cb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 23:55:13 2026 -0400

    do not manually convert to network byte order as mk_binunif does it for us.

commit 2439d9966ae27709ff8fef5cec1b6c6c819a1147
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 16:59:01 2026 -0400

    Air codes, like region ids, should be zero or positive integers

commit f1c4f4f03ba96e58407391f6e35b2acb6a44181e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 16:30:41 2026 -0400

    Use info from parent Tcl interp
    
    The info complete command checks if a string is a syntactically complete
    Tcl command (i.e. if the string has balanced braces, brackets, and
    quotes.)  Use the info command from the parent interp in case info gets
    aliased as something else in the other. "info complete" operates
    strictly as a lexical parser rule check, so it doesn't matter which Tcl
    interp makes the validity determination.
    
    Report was an 'expected boolean value but got ""' error from an
    integrating application - a user redefinition of the info command in the
    lower level interp is a possible source of that message.

commit ccf3067b9f5333fb0363342336a286ae79d4f05f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 16:02:45 2026 -0400

    Warn if fast4-g needs to change a name, fix memory cleanup for vls string

commit 4b9d908b47e86c98682488f8e926e963fe589b0e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 15:53:27 2026 -0400

    Add an explicit dependency on the faa Business_Jet.g target

commit fd5d0062ad9f399611c28475511c34d06beebe85
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 15:43:52 2026 -0400

    fast4-g bounds hardening, regression test w/ included Business_Jet model
    
     The unguarded pre-decrement loop `while (isspace((int)s->line[--s_len]))
     s->line[s_len]='\0';` could underflow the unsigned `s_len` (index wrap)
     on an all-blank line and walk off the buffer. Replaced with an
     underflow-safe form - no change for well-formed input.
    
     Also added a regression test exercising the smaller of the included
     faa generic twin models.

commit 182917814708a1f42fe1faa6b3e6d35802b6997d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 15:23:25 2026 -0400

    Make it explicit that bot->face_mode should start off as NULL

commit 1456bf7d0314bddc746078f261e330325bd90582
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 15:19:30 2026 -0400

    avoid bu_bomb in g-vrml for plate mode, check face_mode is non-null before freeing.

commit 97021230b31e7a3aa000de467af11bf4377c73d7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 19 10:49:37 2026 -0400

    Add support for drawing ticks along MGED in-scene model axis

commit 8e247dc1d8fd2b91a8d93ca54c3400e53da2fa83
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 14:42:55 2026 -0400

    added -j option to patch-g for component thickness when zero

commit bdf3fc7b064c13008787e5830078dfe7b9affdfe
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 14:08:09 2026 -0400

    document the new -j option for specifying component thickness

commit 8a79c28b9094d3b07ce7ad6d0fc46cc8ea3dc549
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 14:00:55 2026 -0400

    added a -j 'jtype.file' option to externally specify component thicknesses in a sidecar file for patch-g

commit a1a7dea39e19b8f95bc579b24d7870d4a724d4c7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 13:41:40 2026 -0400

    improve the diagnostic output on bad rays when debug is set, include checks for inf

commit 2307575ef12ec8704d91e18635395ec8a4fc5f6e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 00:30:01 2026 -0400

    improve bwhist reporting of the median calculation (was wrong)

commit 743178e15ba501a7a02fddcac6f20dd5cb459bb0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 00:26:11 2026 -0400

    fixed an fbcolor bug where off-by-1 wasn't drawing the last bar

commit bf7b3ed80cff4f0b53baefd2b7299b1b629d4653
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 00:22:12 2026 -0400

    don't forget the test

commit 4078fbc9ed671847412702bae1cb6a2fe16ed8db
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 00:14:06 2026 -0400

    open() returns non-negative on success, so include zero

commit bdb968092e0ded881b4edabbb939a3a83d82ba1a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 18 00:10:07 2026 -0400

    fix several off-by-1 bugs that was causing the last color bar to not get drawn

commit d90c10a5cab46eb281fe12ea9c71a9f49b2c17f4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 19:47:36 2026 -0400

    with the pixcmp off-by-one fixed, exposed a return val mixup in the runners.  now tracking better and returns non-zero only when off-by-many.

commit a8499d216c439843f67924c07fe6e5e374ea90ef
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 17 16:54:40 2026 -0400

    Stash some notes about kigumi

commit 6561a0ea036b718dc1a11398e49321eca26845aa
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:37:12 2026 +0200

    Add timezone info to changelog timestamps
    
    Updated timestamps in changelog to include timezone information.

commit 7503e71196417aa6ea9d9a0eed295d49ab82a72c
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:34:00 2026 +0200

    Simplify Exec command in rtwizard.desktop

commit 1a6e823e4c7ddb767c2de8901e5eeab36a9c8143
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:32:34 2026 +0200

    Update Exec command in mged.desktop file
    
    Simplified the Exec command to directly call mged.

commit 6478a406fb261f01779fe4f786845fa8b402b893
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:31:05 2026 +0200

    Update desktop entry categories for BRL-CAD documentation

commit e1c8b2c7f940ccc810f8a825665a6e853dae60aa
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:27:51 2026 +0200

    Update Categories in brlcad-doc.desktop

commit 846a7beed2f289a1a840e685cf319edfeeaedda9
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:26:23 2026 +0200

    Update desktop entry categories for brlcad-db

commit dc755c1053a21d4c21c10f6a3cfedfd923d3f272
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:24:49 2026 +0200

    Simplify Exec command and update Categories

commit 4c1523d6e5d6927160317eb23b31af34dabcb9bb
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:22:13 2026 +0200

    Refactor BRL-CAD menu structure for clarity

commit 30554f04138e14dbe91b050ed37276a4d5ac3c6f
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:20:27 2026 +0200

    Add generic icons for BRL-CAD v4 and v5

commit 28e1a6fc725b1ceff8794614a7c1bde4f6bf17ad
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:18:46 2026 +0200

    Update Build-Depends to use debhelper-compat

commit 41228cc599a2a50e619875a5e8255a2707e02f20
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:18:13 2026 +0200

    Delete misc/debian/compat

commit dd029d2680e554f71b14459442bac0543c961928
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:17:44 2026 +0200

    Remove 'compat' from CMakeLists.txt
    
    Removed 'compat' from the list of files in CMakeLists.txt.

commit 7bad0a373e36ffbb874578307d700a1ad7c16a6c
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 14:10:28 2026 +0200

    add git as deb build dependency

commit 275bc1b1b44bcb6f521fcce6d3d4e70f5f717a31
Author: Jordi Sayol <g.sayol@gmail.com>
Date:   Mon Aug 17 13:10:43 2026 +0200

    workarround for make install DESTDIR var wrong behavior

commit 41634f29ca1370880684e9a9fa71a7b1967e5221
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 13:26:46 2026 -0400

    er, HZERO, no criteria on the tol

commit 92cac10f493764c5c64a17ff312b61e8daaf3c41
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 13:25:20 2026 -0400

    turn off the filesize debugging

commit b7df69637b3710ea5d9a870ae0cd987dbff4f31a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 13:23:41 2026 -0400

    gist previews actually work now.  renders images at 128 with all the analytic checks off.

commit 011434b839d119076899fd0997ef36fa36b09ebc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 13:05:42 2026 -0400

    eliminate direct floating point checks

commit 53abdfbbea93c412e3525de01b1d01ab6c62015b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:51:12 2026 -0400

    of course there was some code assuming HDIVIDE gives a point. inject a VMOVE to extract it.

commit fdc32ea3d5b6ae2e6e0101b7852c516d15758316
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:51:03 2026 -0400

    of course there was some code assuming HDIVIDE gives a point. inject a VMOVE to extract it.

commit e028f9cf104cfc408d497de19390cccee65b5a3d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:38:21 2026 -0400

    viewpath isn't on yet

commit b998c36c79d03f81311ddbb1b2da72249ab9a258
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:29:15 2026 -0400

    we already assuming input is h, assume out is too

commit 9bc814957653508cb9b3fdeb73830bf0abdc1969
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:28:53 2026 -0400

    update for vmath adjusted to maintain hvect on hcross

commit d0075b873b04758bfbd683c2a0b4d06b37db7502
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:05:17 2026 -0400

    now the eye_pt command works all by itself in rt scripts

commit b9a57cc45ef4f084c616d34b4631002c110538ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 17 00:02:26 2026 -0400

    keep track of orientation and eye getting set by user or script.
    
    either must be accommodated separately, otherwise the automatic view setup in do_ae() overwrites a set eye.

commit a986a05efddfa0c4b5887a501ddba8f3eac4d053
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 23:58:27 2026 -0400

    add tdd system test to ensure we can edit view via rt scripting to set eye point, dir, size, etc

commit 59e1e9a8165b62ffb9d09fe1add383becd9b8476
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 23:55:01 2026 -0400

    orientflag is unused

commit f05303f2435ed7f0bb7b2331b0a84376d1e100b6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 23:51:42 2026 -0400

    still wildly wrong

commit 8b1fdb6f59103204bb7853a6fcc216d9aaa8139c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 23:48:41 2026 -0400

    simplify HCROSS() and make the output also an hvect_t, not a vect_t.  they can get that with HDIVIDE.

commit 810ff02b035f529ea66ba10bc4c65cf80c78d300
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 23:08:07 2026 -0400

    add a basic vmath unit test

commit 8713b98ca40c86b952a52627b0ecc71075531ba9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:59:48 2026 -0400

    spelling mistake, scalar

commit 20d3f3f80a1090668b8ca116b891f82c5482e367
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:57:20 2026 -0400

    add HINIT_IDN for homogeneous vector init

commit 24714bd6d659a736c2209adee016ebc2011700bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:53:03 2026 -0400

    add ELEMENTS_PER_QUAT for completeness

commit e2e7766eeb5cd9835916b9d3740443fa89d6570a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:26:22 2026 -0400

    need to reconcile some vmath join inconsistency but the choices ripple and require documenting MIC

commit bb77aa2a7de8cded5ef04c676a494dade5cf6c58
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:13:40 2026 -0400

    cleanup some doxy

commit 9d9f3a0975faeabcebc97de3654fc7171e4dd4f3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 22:05:59 2026 -0400

    make sure HDIVIDE is zero-safe, and leverage NEAR_ZERO() more for consistency

commit 73fe674eb66a6525ede3540e492432aa7c253b27
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 21:50:43 2026 -0400

    add protection when b is a zero vector (projection is zero degen)

commit b3d01b218b56bddbf905ef5255e58035cd2007c1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 21:39:53 2026 -0400

    probably good time to undo this after a healthy dose of testing, but for now document the fact that VINVDIR() sets the dir vect components to zero when they are near zero.  behavior isn't new, introduced back in 1993.

commit 680f3e01c754b13d365970d8b5d6b7fcb7a10b18
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 21:28:32 2026 -0400

    remove trailing semicolon from print macros so caller's doesn't leave one dangling

commit d4d73c0b786b96f7359db4676f9efb2efcf081d7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 19:30:49 2026 -0400

    macro oversight, wrap epsilon in parens so macro calls support expressions

commit 0c265a8ef963e6cbb9f0d253a5fb52ec6d156182
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 19:26:16 2026 -0400

    wrap the distance macros so using them in math doesn't result in ops applying to only one component

commit 454f6d87f7546c451d111bbe746a49632162b704
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 19:05:13 2026 -0400

    switch from size_t to int so callers aren't forced to include stddef.h and we don't have to presume and include prematurely

commit bca419f8380652badf2ee9f49846aa5b0e39df69
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 18:53:44 2026 -0400

    fix copy-paste bug in V2INITALL

commit 3b97d8d4fed4ad8df79485d235ab38b2f28a9975
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 18:52:56 2026 -0400

    initial implementation of HCROSS for two homogeneous vectors

commit 12a6369dbc0a17107f6662fcd980472ac5d30d71
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 18:34:46 2026 -0400

    not exhaustive, but make sure params match usage (and indicate the vectors more consistently)

commit 9925a41dd493b99ee37f3c3c79f00a084bce2bf0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 18:25:31 2026 -0400

    fix the vector inputs to VCOMB*N()

commit c3b2acf5cc1bd3465451e4722f7fdb07244b2e6f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 17:38:08 2026 -0400

    tweak the exaggeration

commit a8b23815fe7705101c91d30b9785e84b9dfb7134
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 17:36:46 2026 -0400

    no longer trailing ws in the output lines

commit 730b448973b6fc86394c6f0de6c55de453caf2f7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 17:36:12 2026 -0400

    remove trailing spaces from the predefined nirt output formats

commit 8a2cd18cccb9effb8dc9ca9e6a39e4036541a022
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 17:34:49 2026 -0400

    handful of items completed or out-of-date

commit 8f4b809a328b2453f25d0dff8c4604fa348afe39
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 17:32:27 2026 -0400

    gqa manpage now documents centroid and moments of inertia

commit b65be3d55b0371241220f52187355715d87bccc8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 16:12:34 2026 -0400

    add vector range clamping in addition to single value

commit c7a5bc5b74751a1bece368dc66728207e25b62c3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:53:14 2026 -0400

    add num.h to compilation

commit a1129e3b38d0faa11e2a928f323c423b96e60f16
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:52:59 2026 -0400

    include a couple I/O examples

commit 1fea4c9ed0592db7c38872aedd84587458419757
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:52:13 2026 -0400

    include new num.h header

commit a4bb6ad6b13d8729f5fa1082fbf5ec43ea4cd92a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:48:24 2026 -0400

    close a couple math gaps, add VCOMB3() and VCOMB3N() to combine three vectors

commit 6649e5cf08fe5859d3213cf45169701851eef6e5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:12:19 2026 -0400

    add new test file that was missing and enable

commit 5960236d10754f1dcb9ebd615c4e174bed48bec4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:08:40 2026 -0400

    clean up the mged version of gqa's manpage with more essential info, letting the main gqa(1) cover the rest. still intentionally cover the density file format and importing it since this is often how most users encounter gqa for the first time.

commit d5c6214ca445643f9fe75d6575aa8164eb491ba0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 15:05:08 2026 -0400

    make the system testing consistent with other testing, clean up after ourselves, use more consistent names

commit d524125ef507d4759b1303086ab19fa79c301194
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:58:35 2026 -0400

    update instructions on how densities are set or loaded, fix issues introduced with automatic formatting

commit 4d529c9ac038774c5f0d3c83b858020eb3f3f1a5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:49:51 2026 -0400

    get gist preview actually working.
    
    instead of trying to dynamic figure out new font sizes, dynamic layout mismatching, and other problems, we now stick to a fixed large (high-res) pallete to draw on.  we still skill gqa/weight/etc on preview, but we now render at 256x256 and scale up in preview mode, or 1024x1024 in non-preview.  simiarly we do a minimum of amb on preview and much higher quality otherwise.

commit b5e03710eba74e1fa7ee5d41ffe4a03ccef28976
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:42:17 2026 -0400

    fix old nirt trailing whitespace to-do, tested with and without attrs

commit 2f5be2c41427c6a207856581ebe346a52d6c1047
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:39:40 2026 -0400

    wip new proc that aims to generate earth, enabled when we got gdal since we use that to warp dsp into geo.

commit ac1797cded9bd35542035490ad0d7e614b017b73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:35:43 2026 -0400

    renamed it to HEXA for consistency, update test

commit 51b17db52dc602f2fc797a17b958b0915ee49baa
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:14:02 2026 -0400

    bump bext to 0f1eac972cd81b0e47c1a05acb00eb35da9fe336

commit 4e232c8e9c0f602a1d54677308cdc936e84dd46c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:12:26 2026 -0400

    stub in a search gui placeholder

commit 68b97eb8d27b169f875f600df33444b5c815476a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:08:37 2026 -0400

    note edge caveat

commit cb85440fc2ecffece63fb8ddeae9657f2dedb99d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 14:07:15 2026 -0400

    adding a -Q quick preview option that kesp the layout but renders low-res and doesn't compute analytics

commit 565006ec6da0c78257c6d0b030a111fc1d255df8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:53:43 2026 -0400

    document centroids and moments of inertia

commit 9e85d166a685357f56a079721f105d79f6a9ca50
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:52:24 2026 -0400

    document the degenerate output dimensionality

commit 2f5b96fea38c8125e662aa315693b8f5fb4f159b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:49:45 2026 -0400

    expand docs on brep status

commit 1192a30a889a10723060d4d666ce0bbfe5c163fb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:47:05 2026 -0400

    add tinycolor license

commit 4453d76cbcca326bc6630e22889ae0297f12f070
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:25:55 2026 -0400

    break up the tests, clean up turds, fix naming inconsistencies

commit 31b4a86ea6bf44be72ec1cef688661b8b4e6ae7e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:17:52 2026 -0400

    graduate to the pattern, move util testing into a tests subdir

commit b80cf7a20b714283212c3fb9b1ccfe560c6d50f6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:15:55 2026 -0400

    gah, typo

commit 5d210b31f8b641e31587d13d482a36b34ec26fd4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:13:14 2026 -0400

    remove mat_print() uncalled/dead code

commit 2ccbedf43fb0ede13eb9cd46b990b040d755cbe3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:10:01 2026 -0400

    add a bwcrop/pixembed set of tests

commit 38acc3e58e28a1d5c608aec9d977f3863d3e8e42
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:09:43 2026 -0400

    add a bwcrop/pixembed set of tests

commit 480f7ef8c5c46d9dda78be7cebd1720b419eb6cf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:07:45 2026 -0400

    fix bwcrop single axis behavior

commit 03bfbee6867b8fc602705abc13a5696f5c496f06
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 13:07:11 2026 -0400

    fix pixembed edge replication

commit f0d29b326db1b7caf4534ebfb4963528234b6933
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:54:34 2026 -0400

    put bu_num_print() to use

commit 731b0be1456d2898dedc9ab8d33d19a68b727b87
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:52:02 2026 -0400

    three more tests

commit 7bf55b08c5f2eb072119267e52a5786753951bcf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:51:53 2026 -0400

    add more tests for the new color API.  still need to update the old.

commit 8a64dd19613714b771fd76f64a6fd459f154885d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:47:38 2026 -0400

    replace memset() with HMOVE(), let optimizer figure it out

commit d034de0ce23f140b5906f9b95c6f155a4beeec7c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:41:48 2026 -0400

    right now, sticking with CSS compatibility but they annoyingly chose to make 'green' not be ff green

commit b5af10e5473b780b228a29781b87c270dc7aed8f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:40:24 2026 -0400

    implement support for reading/writing/converting colors using a richer syntax.
    
    this lets us define colors using traditional rgb 0-255 values, color names, html-style hex, hsl/hsv values, and more.  very very loosely based on tinycolor js, but go ahead and credit them for the inspiration.

commit 3cb5bf3b66ff4aa729bca626f6239731d0d25fd4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:36:27 2026 -0400

    declare for export

commit 7070d27876cb5de48561854c70f3b6b6a88f97a5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:35:49 2026 -0400

    flesh out new color API that is more expressive.
    
    this will shift the API to needing just three funcs: bu_color_parse() to read from a string, bu_color_format() to write, and bu_color_convert() to get diff numeric representations

commit 1ebc17df1580bc922a1b899edfc173829eb2f791
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 12:28:51 2026 -0400

    declare bu_num_print() for use

commit 9e8afbb7570d7ba757382ffd3e6981df62359190
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Aug 16 00:09:26 2026 -0400

    longstanding gap, introduce users to the tops command

commit b7384402425fb1d896b886611dea14125b7854b7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 14 10:55:35 2026 -0400

    Add a small bext + BRLCAD_COMPONENTS test
    
    Our normal push workflow doesn't exercise the bext build as part of configure,
    but that is a standard (in fact, the most default) configuration.  We also have
    the BRLCAD_COMPONENTS mechanism that let's us specify a small subset of the
    BRL-CAD system to build - combine both concerns into a "build a subset of bext
    and BRL-CAD" test.

commit c8b6a32fb70a7963b2bf7fcecb2ef7c2a388eb82
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 14 10:38:46 2026 -0400

    Match yml filename

commit cb632e1c4e98aeea033948ea6d18b73c5f3b9398
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 14 10:34:04 2026 -0400

    Persist the key bext variables beyond setup function
    
    On the first run through of a configure, if we're building our own bext, the
    setup functions weren't passing variables needed by find_package up to the
    parent (global) context.  A subsequent run worked because then it was pulling
    them from cache, but the very first run through would fail with find_package
    failures (unless it happened to get luckyand find things elsewhere.)
    
    Fix is simple - let the parent context know the key values.

commit a8531675286e7c59bb45c8aaa7b43ae34a2e70c6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 13 09:44:13 2026 -0400

    rt_metaball_add_point wants a const point_t (pedantic GCC compiler warning)

commit 4f902079dcc8df6ef249c45a9783157e69caeb27
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:58:43 2026 -0400

    add pixcmp validation to help avoid drift from happening again

commit 8ae3505866665ee1abc9f1e3cb8a094a586f8277
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:56:11 2026 -0400

    fixed metaball adjust and pixdiff reporting

commit da5cc44504d1d7ffb8c0f138c537d2387516cab9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:55:52 2026 -0400

    pixdiff compares bw files correctly now

commit bca1a82a6713d3f622ab120225725681b221347f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:54:17 2026 -0400

    update docs now that pixdiff works on bw files

commit 078b69f503281a59f185524ec53f0bbae2ae0680
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:53:56 2026 -0400

    clarify that off-by-one is across all pixel channels, not cumulative

commit 8dcbf1ebcd0ca23167af2b27e00f25f1b242c393
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:52:30 2026 -0400

    mention pixcmp+pixdiff since they're related here

commit 72361da816a07b332403c4db7465b521ccb1fade
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:51:24 2026 -0400

    mention pixcmp+pixdiff since they're related here

commit 7302be2be4888f8065101382e837add7d72f2e7a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:48:06 2026 -0400

    expand note to include pixcmp since it's related.
    
    benchmark now won't always report correct when grep succeeds, and will be back to being more tolerant to rgb 1-value fluctuation in all three channels.

commit ced189fdf00d7c3fbcbd469b5cb60c3f0730e43b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:46:09 2026 -0400

    make pixcmp report off-by-one if any/all channels are off by at most one value.
    
    pixcmp changed behavior (back in 2007) to have it report if the rgb value is off by more than 1 in only one channel, which contradicted the documented intent that it's more than 1 in any channel, not across channels cumulatively.

commit d2b21fec5f7057d0f2b63e9829882fd89fc3bd43
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:17:28 2026 -0400

    benchmark was essentially hardwired to report CORRECT by accident, bug introduced in 4c7519fd51e in oct 2020, but now back to validating

commit 6d9142c0944dc916f2074d745edc2bc11446b1df
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:15:38 2026 -0400

    make it work with different cmp tools, even if it doesn't output a pixels line

commit 47d0665e5a7e7efb291d77d27ab2bc0304d5d120
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 20:14:11 2026 -0400

    fix bug I introduced in 4c7519fd51e where we're testing grep result instead of pixcmp result.
    effectively broken the validation since benchmark would only fail validation if the output failed to include the word 'pixels'.  this restores behavior so we may see more benchmark validation diversity.

commit 4bd9991a5c929fe3712cf4a9529fbd072ddea4ad
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 19:52:11 2026 -0400

    add a regression test for diffing bw

commit cbfd29b0c987a423aab3c99ee8dca7d74c3eb272
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 19:51:27 2026 -0400

    make pixdiff support bw or pix inputs.
    
    this did require changing the default half-intensity mapping it was doing to not go monochromatic-half-intensity and instead just halving each color channel (i.e., dim the matching).  might want to restore back to grayscale on matching, but will need options and/or inference from file suffix to handle both.

commit 4ec1de3575a0d73288ac806f2ea11846870eeb29
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 19:37:57 2026 -0400

    make sure to actually commit the new metaball adjust unit test.

commit 45862c50ea6270310a92a0569f1ea42a641e5116
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 19:35:25 2026 -0400

    made metaball adjust transactional. an adjust 1 1 1 no longer wipes out all values.

commit bd0d82d454ac4d807f63525d2fecb66d4dec8eed
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 19:32:26 2026 -0400

    example is 1 chunk (and encoded with 1 byte)

commit 2fe68911cd09426f17c098ea2fca6d1cd9deed94
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 03:26:27 2026 -0400

    fix the example

commit 2d73aab8e3f2fbe4ad5a09d6f456380603529aa0
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Aug 12 11:20:29 2026 -0400

    fix mged startup windows race
    
    race condition on mged GUI where window sizing and positioning would not
    always land at the desired default (from mgedrc). Stabilize startup
    sequence so we begin withdrawn, flush layout, and then deiconify.

commit 0c312a84c3f0426d5dfef5e44c0f96fdeac291ba
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 03:01:12 2026 -0400

    phrasing clarification -- we encode in 8-byte chunks, not arbitrary bytes

commit e16dc62fdd51134903a39ff02a439764b9d3b740
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 12 02:48:52 2026 -0400

    fix docbook to asciidoc table conversion mistakes

commit 8a19e30960a4b617c9c1d93eddda4477d879b04b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 11 00:40:02 2026 -0400

    add an adjust unit test for metaball given breakage

commit 7a86db051fdda5013da1a6af81d8f35148ab2ed7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 12 02:48:59 2026 +0000

    Use bu_dir once up front

commit 11e6344e24b6f3a62077285370e4b12298a74aa0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 12 01:52:09 2026 +0000

    Make sure CMP0053 is set to NEW so placeholder replacement works correctly

commit 350a1cb8629c9cc085526b229ce7f8de0253b5b4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 12 01:51:08 2026 +0000

    Drain and validate the merged output streams before waiting

commit 11b2b8776f0078c8dec506b979dcdeb4ad969544
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 12 01:47:30 2026 +0000

    If these structs are static, concurrent pkg_send, pkg_2send, and pkg_stream calls can corrupt them.

commit 24135b9e63cd99f091085e2a08683eced7bfe61c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Aug 11 10:36:36 2026 -0400

    dbversion is deprecated - use db version

commit bfd0c0adc4e1a83f9cb36bd400a2319899aa1634
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Aug 11 10:14:21 2026 -0400

    fix merged out+err creation
    
    bookkeeping was broken - we were orphaning pipes on linux and double
    closing on windows. Everywhere we touch stdout is now verified for
    process_create

commit 58b3c9c9c08cec761688a07be5cb31885da28ff7
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Aug 11 08:24:06 2026 -0400

    fix hierarchy overflow name
    
    fix a bug where trailing space in subcomponent list would error rtghost.
    and, if it's just one more name print name instead of "1 more"

commit f95516a05bcf213f3fdada926929da55f01c49df
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 10 12:29:49 2026 -0400

    Fix nose direction

commit 23d22a4f4f05af6bdfd351cd3c1b8b5cc3557beb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 10 16:20:57 2026 +0000

    Add option to naca456 to create pairs of wings

commit 4c98c4ae6a2a747587ebe12c3711321786abb9fa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 10 11:41:57 2026 -0400

    More non-unity include fixes

commit 84a7f49c2fd621d1d97122f19cce597442ace0e7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 10 11:30:11 2026 -0400

    Fix includes for non-unity building

commit 06ad2c1d93c577ea74a9e25c1eeb48e04251cb31
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Aug 10 15:28:39 2026 +0000

    Fix test building with clang

commit e3d8383366630652ef1cb86443108cf321134730
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Aug 10 09:00:09 2026 -0400

    Update dbupgrade.tcl dbversion -> db version

commit 90f1d0e3073677ad7dfba5f1a70852d6d6467caf
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 21:51:46 2026 -0400

    Make sure OLD_FRAMES matches something before calling REMOVE

commit 6d8efc0d446e1b4f4cb0366d9933a30ee2061dd2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 21:41:52 2026 -0400

    add bu_setprogname

commit e501bee8c403896f9d14357c5391ffc6ade2ddd8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 21:32:02 2026 -0400

    Make some adjustments to the conversion.sh script

commit 6f0a6a02818f480220ab835e5059139e9a6cd254
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 19:46:46 2026 -0400

    Fix an infinite loop case in the mesh repair logic

commit edd3614106cc7db7fc69c2e0f79a92dd70b6df7c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 18:48:21 2026 -0400

    Fix bounds traversal after subtractor tree shaking
    
    Observed symptoms were rt_bound_internal: rt_bound_tree() failed
    messages during facetize of havoc - investigation traced it to an
    unintended side effect of the subtraction-pruning optimization commit
    7f165d038a.  That same commit also introduced several lifecycle
    problems.  We're addressing those here, as well as a few other issues
    the audit also uncovered that were older defects.
    
    Issues directly attributable to subtraction pruning:
    
     - Disjoint RHS soltabs were freed while other code still assumed
       every database leaf had a prepared soltab.
     - Newly created soltabs could remain in rti_new_solids after
       pruning freed them.
     - Callbacks and reg_all_unions were processed before pruning
       finalized the tree.
     - Piece/model metadata was calculated before pruning.
     - Touching and near-touching AABBs were pruned too aggressively.
    
    Pre-existing defects exposed or discovered during the work:
    
     - Dynamic path discovery stopped at region boundaries, so primitive
       edits below regions were already unsupported.
     - rt_find_paths had a header/implementation mismatch from 667998ce6d.
     - Re-prep could retain freed pointers in per-type acceleration tables.
     - Region/solid pointer arrays had incomplete or incorrect clearing.
     - Path allocations leaked.
     - Repeated piece-state numbering was an old known issue—the source
       contained a comment describing it since 2011.
    
    In more detail:
    
    rt_gettree may prune a disjoint subtraction operand and release its
    soltab, while rt_bound_internal subsequently traverses the original
    database tree.  The bounds walker unnecessarily visited that right
    operand even though subtraction bounds are determined entirely by the
    left operand, producing primitive-as-combination lookup warnings and
    failed bounds on models such as havoc.g.  Limit OP_SUBTRACT bounds
    traversal to the minuend and add an in-memory regression covering a
    region with a disjoint subtractor.
    
    We also make AABB pruning conservative at touching and near-touching
    boundaries by applying the ray distance tolerance.  Defer gettree
    callbacks until pruning has finalized each region tree, then rebuild
    union flags, model bounds, and piece-state indices from surviving
    geometry.  Also remove pruned soltabs from the dynamic-reprep pending
    list before freeing them.
    
    Find edited descendants through region combinations using cycle-safe
    database paths, invalidate affected prepared regions without relying on
    pruned soltabs, and rebuild complete region expressions.  Release
    prepared trees safely, compact region and solid arrays, restore reverse
    region associations and per-type acceleration tables, clean pending
    state on failures, and align rt_find_paths with the resource-free public
    API.
    
    Added testing to cover tolerance-separated, near-touching, touching, and
    overlapping subtractors; verify callbacks and derived metadata observe
    finalized trees; exercise repeated piece indexing; and confirm a
    previously pruned subtractor can be edited, fully re-prepped, and ray
    traced without stale soltab metadata.

commit 0ea9e5d6bfce839e306a8f26165ad7850e54afc4
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 12:50:52 2026 -0400

    Use module suffix for plugin names when loading step schemas

commit d60340fa6418f08b3e757d29c7a3be5299b0e348
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 8 12:45:26 2026 -0400

    Comment out references to missing file

commit 69f0c7aa29a88f11e6c8e1b44e4b411adc01a90a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:31:32 2026 -0400

    clear out some of the recently closed bugs

commit 5f1d849fcfa20eae2ce55488cb814331fdb3020b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:31:13 2026 -0400

    note the fbhelp change to output to stdout or stderr

commit e49e145d0b632e1de80f555e62c676a9fdecac4d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:27:35 2026 -0400

    all fbtools can now -F to /dev/stdout and /dev/stderr

commit aba501c7d6f56bed830f2a89c8e3a01d1b6d1926
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:26:56 2026 -0400

    ugh, BRLCAD_API example in comments had version logic reversed.  fixed.

commit bb806df22cd8597966a8639dd50e78ae85181481
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:24:03 2026 -0400

    make fbhelp send output to stdout and debug to stderr, less confusing to people seeking help

commit 468a546518c414321fe53adfac254e39e4e697e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:18:49 2026 -0400

    support standard output/error /dev devices

commit 328f5f2c79cca625e2032b7f22ef8d7b822449e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:11:41 2026 -0400

    make sure the mged gqa command -p option pattern keeps working

commit b533b8a4ac4a25512fdc43686b5fb1c3e7747cbd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:10:13 2026 -0400

    rtxray and background test hooks

commit df5415ec7b941f74be15dc26f3356dcdbb2da03f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:09:41 2026 -0400

    fbhelp test hook

commit 94a38ed68b123044f1e8ed559366df2e7e16d76e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 02:00:44 2026 -0400

    add preliminary preview mode.
    
    in preview, default resolution is way reduced.  will need to fix the up/down scaling and layout to appropriately do preview mode, but step in the right dir

commit 0441d8becd4dde4afed4a8fca5dbc218f46c30a0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:59:15 2026 -0400

    add a preview option

commit eb12e4874fcbb7e069fc94b097edd0d03a91f1ab
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:58:23 2026 -0400

    in preview mode, skip rtarea/gqa

commit ef498a1affaf51d7c385e62fb5057e576f5ae3e6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:57:19 2026 -0400

    rt -C + -o now works, was previously not writing the background color when going to a -o file

commit da430b14d8b47f2eece102e70097af8e0069a1ec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:51:54 2026 -0400

    fix option handling when running gqa command in mged.
    
    this replaces the custom handling with getopt consistency, so now -pprefix should work

commit d3412fb56ad8287ebb624f481409218d23d577a1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:44:48 2026 -0400

    add rtsil and rtxray tests to make sure bw keeps working

commit f9055f240e236ad63ec43085d77dd4964d231ed8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:42:46 2026 -0400

    rtxray needs do.c to ouptut bw when going to files so signal it with RT_RAW_OUTPUT

commit 1b581d1b9b74d700d3e903c86783f54f604e346e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:40:27 2026 -0400

    fixed rt -C255/0/0 -o file.pix bug where background wasn't getting written to file (to framebuf worked)

commit abd114c048704dd81b1d17a9c9e8220ce9fe6a73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:39:26 2026 -0400

    fix rt outputting background color to a file.
    
    since we're going through icv_writepixel, it must be 0-1 normalized which a_color was but background was written into the rgb vars (0-255) so we have to renormalize as we write.

commit 4de4e42c6a1625490ae33110b764fa867ff35bbf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:24:48 2026 -0400

    add foreground and background set options to rtsil

commit 46083477741be759cf777d1cf615ff08dc7e290f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 01:21:36 2026 -0400

    let rtxray's buffer be 1-channel instead of 3 so it can be written out as-is by the front end, but upconvert to RGB when going to the fb

commit 8ebf84c5ddfc050dc3cc83fc990f6c66a54bc1ce
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Aug 8 00:32:20 2026 -0400

    replaced unreliable pathname stat() checks with pixel-aware stream comparison, reads stdin, and detects truncated/ mismatched inputs

commit b246b8b9e0bd53a20a0223e774e314e8d29d2111
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 21:47:19 2026 -0400

    ru_maxrss wasn't happy on OSX - try adding _DARWIN_C_SOURCE

commit d4b902c599bf47534824e9007e7d723e639faa43
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 18:45:54 2026 -0400

    Windows drive paths need to be recognized, otherwise they get misinterpreted.

commit 8e54dc96af3ddd6974345054affe5f5923f63dd5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 18:36:56 2026 -0400

    Use bu_file_delete

commit 90faec5470c3588c8b71ffb13a78f2d1a837f2eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 15:57:11 2026 -0400

    NSIG on MacOSX again. Use bu/interrupt.h, adapted to also handle the C++ style include

commit 15cd9873d7eb5945e7e888d0966e6907a88d2780
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 15:42:03 2026 -0400

    fix example placement

commit 2b02b85c27d93c4de4683da22ace52a839e7d53a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 15:30:33 2026 -0400

    Patch bext stepcode for Windows

commit 44de8fe4ba95d9e5196986682c0343f3ec9549ee
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 18:46:34 2026 +0000

    Teach rtwizard to generate cutting plane animations using the new APNG/MJPG libicv support

commit c1ffabae982f6f9470bcc38b66f1c56fa7204b7d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 13:52:33 2026 -0400

    Update to latest bext SHA1

commit fb70b1ec7ac7da4f96e4d909a77505abfbba55f9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 17:43:20 2026 +0000

    Fix macOS bext cache logic
    
    Need to use shasum -a 1 rather than sha1sum

commit d331abbf8c3161a69703e9f5de18e74ec398ddc9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 17:37:01 2026 +0000

    MSVC didn't like the previous lambda setup - try this.

commit df5b493b87b9c1d025dd0a784803581800f652c5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 14:49:08 2026 +0000

    Various build fixes for Clang

commit 2d34974bf0c748d583e652e49e856514ec609a8e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 09:59:18 2026 -0400

    Don't try monkeying with the soname unless the copy is in our build tree

commit 38554e72522b8a34fbf774db05566c0071b3335c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 08:42:17 2026 -0400

    CMake empty lists strikes again - adjust how we assemble test inputs

commit 0ea74b6092dd27cf310f24424d7f67311c59760b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Aug 7 08:41:17 2026 -0400

    Other schemas are no longer experimental, add header

commit 5eb1780289fc2517e4c74d0d61cccae929d4f02c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 20:57:04 2026 -0400

    docs: consolidate STEP conversion guidance
    
    Replace obsolete schema-specific converter manual pages with
    documentation for the unified step-g and g-step interfaces.  Put concise
    defaults and task-oriented options immediately after each synopsis, then
    move policy, schema, representation, metadata, and diagnostic detail to
    later sections.
    
    Centralize shared format coverage in STEP(5).  Organize it around
    supported application protocols, FILE_SCHEMA selection, geometry,
    assemblies, native CSG, AP242 PMI, metadata round trips, validation, and
    schema provenance.  Remove repeated entity-by-entity explanations where
    target-schema validation and reporting policy communicate the same
    contract more clearly.
    
    Document permissive import and export defaults together with strict,
    exact, no-repair, invalid-rejection, shell-filtering, reporting,
    work-budget, and native-CSG controls.  Retain the essential limitations:
    content is never silently approximated, native CSG is opt-in, evaluated
    BREP export is not yet available, and PMI export remains future work.
    
    Correct the retained-graph description: scalable metadata lives in the
    versioned _STEP_METADATA binary object, while _GLOBAL carries locators
    and only mirrors modest graphs for compatibility.  Continue to document
    the ISO and STEPmod schema sources, Recommended Practice 8 assembly
    patterns, and redistribution constraints.
    
    Update the object type reference for enhanced datum and annotation
    records.

commit 5f0547cc70393f944b2484f3e87cd6c98b401989
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 20:55:27 2026 -0400

    STEP: Add support for AP203e2, AP214 and AP242
    
    This is a major rework of the step import and export framework in
    BRL-CAD (with corresponding changes on the upstream stepcode libraries
    and tooling as well.)  AP203 basic should also see improvements in
    success rates.
    
    The biggest user-facing changes:
    
    - add support for AP203e2, AP214, and AP242 editions 1 through 4
    - replace schema-specific tools with unified step-g and g-step hosts
    - add optional native CSG export and boolean-tree round trips
    - import AP242 PMI as native datum and annotation objects
    - add permissive bounded repair with strict and exact audit modes
    - import shells, wireframes, sweeps, tessellations, and geometric sets
    - implement Recommended Practice 8 assembly and hierarchy patterns
    
    Replace the schema-specific converter executables with one step-g
    importer and one g-step exporter.  Both hosts discover edition-specific
    modules through a stable plugin boundary and use STEPcode's compact
    generated API.  AP203, AP203e2, AP214, and AP242 editions 1 through 4
    share conversion machinery without repeatedly compiling large schema
    bindings.  Uses the new stepcode v2 API for more compact, faster
    building.
    
    Keep common import, export, product, geometry, unit, presentation, and
    reporting logic at the top level.  Isolate genuinely schema-dependent
    adapters under ap203, ap203e2, ap214, and ap242, and dispatch from
    normalized Part 21 FILE_SCHEMA identifiers and aliases.  Remove the
    obsolete directional schema converters and their duplicated EXPRESS
    sources.
    
    Make ordinary import permissive and repair-oriented.  Validate the
    supplied topology first, apply only bounded and measured repairs, and
    publish a clearly tagged invalid BREP when source contradictions prevent
    valid geometry from being constructed.  Retain strict, exact, no-repair,
    and reject-invalid modes for auditing workflows where accepting repaired
    or invalid data is unwanted.
    
    Strengthen BREP construction for periodic and singular surfaces, pcurve
    regeneration, coherent branch selection, seam relocation, collapsed
    poles, keyhole loops, shell topology, and locally inconsistent
    tolerances.  Add bounded work budgets, nested face scheduling,
    memory-aware spooling, cancellation, progress snapshots, selected-entity
    retries, and deterministic database writes so difficult geometry remains
    diagnosable and contained.
    
    Import faceted and advanced BREP solids, open shells and surface models,
    geometric sets and wireframes, swept solids, tessellated geometry,
    mapped items, replicas, transformations, and repeated representation
    content.  Allow users to omit shell-only geometry when an exchange file
    mixes construction surfaces with its intended solid model.
    
    Implement the applicable assembly and product practices from Recommended
    Practice 8, including the AP203 hierarchy forms, product-definition
    graphs, NAUO/CDSR relationships, mapped representations, and Part 21
    SCOPE handling.  Preserve product identity, configuration relationships,
    document metadata, materials, presentation styles, and validated unit
    assignments.
    
    Map applicable AP242 semantic and graphical PMI into native datum and
    annotation objects.  Preserve datum references and systems, dimensional
    and geometric tolerances, semantic labels, presentation geometry, text
    runs, styles, and associations with the represented product instead of
    reducing all PMI to unstructured database attributes.
    
    Extend g-step with shared assembly, configuration, material, style,
    unit, and metadata emitters.  Add opt-in native CSG export for exact
    AP203e2, AP214, and AP242 primitive and boolean mappings BRL-CAD can
    represent, including rectangular pyramids, while retaining BREP
    fallback for unsupported primitives.  Import supported native CSG trees
    back into BRL-CAD combinations so optional CSG round trips preserve
    boolean structure.
    
    We keep the entity-type census in the unified importer and add
    concise diagnostic aggregation, machine-readable reports, repair
    provenance, partial success exit states, and scalable metadata storage.
    Sample database builds accept useful partial STEP output only when the
    expected database was actually written.
    
    Add focused, topic-specific testing inputs for schema dispatch and
    assembly alternatives, CSG round trips, PMI, geometric sets, mapped
    items, units, periodic and singular topology, repair policy, invalid
    preservation, and bounded-work regressions.  These issues cropped up in
    real-world testing (usually of GrabCAD models) so our test fixtures are
    representative distillations of specific types of problem cases.  This
    helps us avoid regressing conversion behavior when we make other
    changes.

commit 18c436de37584667ae24de82ad3b41bc2ea4fc3b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 20:41:18 2026 -0400

    librt: extend annotation records for imported PMI
    
    Add what is hopefully the last of the missed pieces...
    
    These changes are for the purpose of preserving presentation semantics
    that STEP AP242 may attach to text and graphical annotations.  We add
    native roles for masks, center marks, placeholders, and text
    decorations, together with style flags for fill, scale, emphasis, and
    decoration.
    
    Also supports per-segment affine text transforms and filled polygon loop
    topology.  This lets rich PMI be flattened into BRL-CAD annotation
    objects without embedding a foreign annotation container, while
    retaining compatibility outline segments for older consumers.

commit 9d85c26dbb1662e701d4927d358e77e3c1127806
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 20:28:20 2026 -0400

    Whoops - helps to commit the header too

commit 1d58405227f9e555509cf88aeb03bb35c5437bbd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 19:08:27 2026 -0400

    More annot updates and tests

commit b24780a5cdf8fe2db61f8d1b6e8fa63c1d07351a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 19:06:51 2026 -0400

    Forgot libbu magic update

commit 23eabb2c056fc7d0c4ccc6c5d9299f72eedbb432
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 16:48:30 2026 -0400

    Add libbrep changes from STEP work
    
    Lots of work to the pullback logic, but also needed a change to
    SurfaceTree::hasSplit.  The latter needs careful checking to see if it has
    raytracing implications - my vague recollection there is that we were trying to
    reuse memory for performance efficiencies, so it may need revisiting.

commit 985e679f71c4eafa39e4aa6a3d7c67a87158f496
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 16:33:18 2026 -0400

    Font is present - enable test

commit 7290e490aef877f33edc20eaf6dbabb1f6619610
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 16:10:24 2026 -0400

    Add current state of annotation/datum changes
    
    Working on STEP conversion, it became desirable to expand the data our annot
    and datum primitives can handle.  This is the extraction of the initial cut
    at it from the branch work, isolated into a single commit for easier study.
    This likely needs design work before being considered "final form."

commit 7e04c8330edca93eae5318f39232976b46650c69
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 15:52:54 2026 -0400

    Stage the osifont for annotation character display

commit a6956062a522e8a9e102767ba849437093b5c8ca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:26:05 2026 -0400

    Look for lazy step library in FindSTEPCODE.cmake

commit 086ddec5c9be2d868eccae01b7a87bd8d51c3871
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:24:23 2026 -0400

    CMake adjustments from step work
    
    More sanitizer CMake setup, make sure we can operate on 3rd party
    libraries copied into our tree.

commit f563428ede08f50f99c98e6888f301c3e9cfa14f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:19:30 2026 -0400

    Add in the prefixes to run tools with sanitizer setup if enabled

commit ed38b6a9d9afe8e0a53c8ec9de553f2b89d792eb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:14:46 2026 -0400

    Adjust how env2c regexes are set up

commit cd7910c37275e7d029a66c22d259fa855cdc0a73
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 11:17:28 2026 -0400

    Adjustments to sanitizer configure options
    
    While working on step, ended up making some adjustments to how CMake sets up
    the Address and Thread sanitizers.  Pull in the main toplevel changes.

commit 441d6b1a36d23a4510b6dd3ad74d103439d8908e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Aug 6 13:52:43 2026 -0400

    have to guard - shared_library_suffix can be empty string (thanks windows)

commit e4ef077f5f0a4c35f62f29ed1d52df743ef4ce45
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 15:07:38 2026 +0000

    Update to latest bext SHA1

commit 8c4ae99dd6ed387b744b48fdbdac50eb3eae26bb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:43:08 2026 +0000

    Work on improving our OpenNURBS find_package logic

commit cdaa0b805fdf036b86dbe63220a776d7da28a171
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 14:06:47 2026 +0000

    Adjustments to MMESH and OPENNURBS find_package modules

commit 6da2df2ab4f824ee7dc0d5138b9fb860d4bae89e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 09:53:19 2026 -0400

    Do we need to check for mach_cpu_time first on OSX?

commit 9c38df52e6fe72aec9db010cf5ed9e504f909039
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 07:20:38 2026 -0400

    Make sure rtsil is there for check

commit 401862893de0be76af1cdb0ead4b60bf35e27833
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Aug 6 07:09:17 2026 -0400

    Need bio.h

commit fa5eaa56c69cdeab79f70cfea17f8358f72f87c2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 22:45:49 2026 -0400

    List libbg static target

commit 4f701d4b48393f36405790e3c4356dbc97652b1e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 18:52:24 2026 -0400

    Wfloat-equal warning avoidance

commit 96158056c1460978687ad01004a87673d4a12df3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 18:48:53 2026 -0400

    Remove stb_truetype.h listing

commit 7070a87bcf9adefbec1c3ab62bd844b3fcd7fd09
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 16:18:53 2026 -0400

    Various fixes for brep CSG solid routines
    
    While working on STEP export, we ended up doing validity checking on our CSG
    outputs.  A number of them weren't producing outputs that met the validity
    criteria of OpenNURBS - we need to fix that to have valid exports.

commit a63a311abc7e1c8bca3066b77cb633659df8c4a3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 20:22:17 2026 +0000

    Fix various 'make check' failures
    
    - Generalized cubic/quartic solvers to normalize non-monic polynomials in src/libbn/poly.c:261.
    - Corrected reversed/incorrect polynomial references and documented NumPy 2.4.6 as the independent control in src/libbn/tests/test_poly.c:337.
    - Fixed exact-equality test helpers, complex references, and polynomial fixture selection.
    - Fixed the dormant HNEAR_ZERO argument typo in include/vmath.h:482.
    - Implemented MGED’s documented one-path oed behavior, correct arc selection, aggregate bounding-box keypoints, and apply/reset preservation in src/mged/chgtree.c:186 and src/mged/edsol.c:973.
    - Corrected repository-policy omissions and added narrowly scoped exceptions for the disabled vendored example and intentional destructor-time abort.
    
    Polynomial roots were independently checked with NumPy and direct residual evaluation.

commit 76254f3d3216fc130282e00755efeab716e3b236
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 15:34:46 2026 -0400

    build fixes, disable dm test for font that isn't in repo yet

commit d970c8f13124ad635464a3a98c9c7fd441b7391a
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 15:15:57 2026 -0400

    Use explicit number sizes for htons/ntolh/etc. operations

commit 6e952a3ef4e5ee7f89e07cde10fb6694256ce70d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 15:07:28 2026 -0400

    Ignore python cache directories

commit 19df4736183528651e036a8bb8ed1c5a238eca1f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 15:05:24 2026 -0400

    Switch our stb_truetype copy to the hardened struetype fork

commit ad4864b412a92b9223899f6c137d34ba5156c155
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 14:59:12 2026 -0400

    convert adjustments, ptbl test, stage struetype.h

commit 4769217d72564f4df0383cf6cea58f9d3344c2ba
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 14:56:41 2026 -0400

    Make sure we have buffer before doing the memset

commit 1eeed6db1709d7d73c7c7b7bb97ad4dbfff7fb63
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 14:51:51 2026 -0400

    Add inside/outside test function for ON_Brep

commit 1afd80eb5ac4b38a4efcd2aa5f757f37c76c2450
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 14:48:58 2026 -0400

    Fix trimesh split in case where non-manifold mesh edge has more than two incident faces

commit d5ba39fb22bb9ed8c797798b05a53be8cefea38d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Aug 5 14:44:51 2026 -0400

    gsh adjustments for swrast dm

commit 0b5d519fcc85961fce68c79e3973bc5ba7d3935f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 01:08:08 2026 -0400

    fixed pixborder bug.
    
    pixborder didn't account for an edge case where the right edge of an image was expected to be colored (except for one pixel on the top edge).  Example: pixborder -b "255 0 0" -t "255 255 255" < pix/moss.pix | pix-fb

commit e5fcf88304debcced14ad95c08079628ceec667b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 00:58:54 2026 -0400

    fix wavelet on windows.
    looks like a flawed edit in 6eae5bd81b8 where setmode was added in the wrong place.  promoted up to main and seems to be behaving.

commit 22bd333eb21552a85d0be50b020d171961c71d05
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 00:52:28 2026 -0400

    renamed time header

commit 01ea66c46894f8effbcd085ab9dafe5a7f52ab39
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 00:47:44 2026 -0400

    fix internal old name refs

commit 409010639f7d5bc1f18a8f74749d1eb2cd12c2b3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 00:47:04 2026 -0400

    time.h renamed to datetime.h

commit debcbfe9db0c616354e42cf8a6bc8b27f9f46c36
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Aug 5 00:38:29 2026 -0400

    time.h renamed to datetime.h

commit d5ae954828a18e86a53f9de8f81857c124630f7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:31:34 2026 -0400

    knocked out these three bugs

commit 12cbd5c8bfc1d26df140a4232b8081fff2f82403
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:31:19 2026 -0400

    add regression test to make sure killtree doesn't spew lookup failure messages when it encounters the same object name again (after having killed it earlier).

commit 0667fd4b3d0a1fb13ee731bd0b2a6849785d9f8b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:27:25 2026 -0400

    fixed an issue with the killtree command where it'd spew db_lookup failures.
    
    it woudl say objects don't exist because it wasn't tracking what all
    was deleted.  now it keeps track and keeps the output free of the
    spurious messages.

commit aa7f93a8aa5316ee21879452f8c3c9b2c9c5c7bd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:13:34 2026 -0400

    speed up heavy-CSG rendering (10-20%) with a bit-test filter.
    
    this is a bloom-style filter meaning it's not conclusive when a bit is
    set (so we keep scanning as before), but a missing bit proves the
    solid is absent (so we can stop early).  no false negatives or
    semantic changes to tracing, just a nifty speed up when models get
    complex.
    
    on small models with less than 64 solids, it's actulaly exact, but
    then the gain is expected to be minimal.
    
    in testing benchmark was relativley unchanged, but havoc improved more
    than 12%.

commit 0ff6b79d2666c67405be1953bebfa528dbda9760
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:07:32 2026 -0400

    only insert unique regions, big speed-up on heavy CSG trees.
    
    by only inserting unique we no longer end up inserting and iterating
    over duplicate st_regions during prep, once per solid leaf.  by
    eliminating this during prep, we speed up ray trace shot time during
    region traversals (e.g., during boolean weaving).
    
    this prep-time region dedupe doesn't make a difference on benchmark
    models, but is another 5% improvement on havoc.

commit afe944e15ace95805d88e687a2e3050d10c804bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Aug 4 00:05:42 2026 -0400

    fixed bug rendering small images to fb disk devices (e.g., rt -s20 -F file.pix).
    
    this didn't affect -o outputs, only -F but was a consequence of interactive framebuffer windows wanting a 512x512 min so they remain visible.  now when a disk device is specified, it outputs that size.

commit 87c0072076b06812b6248c79d43b73023839fa7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 23:51:10 2026 -0400

    the bu_ptbl_cat_uniq optimization improves the performance of some CSG models (region heavy ones, e.g., havoc).

commit 15a4ee2c14098d9623f936791b34e386a4131709
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 23:42:54 2026 -0400

    optimize bu_ptbl_cat_uniq, reduce its runtime about in half.
    
    avoids calling bu_ptbl_ins_unique as it does another scan to repeat
    validation, capacity checks, and a func call before doing the
    uniqueness scan.
    
    doesn't really make any impact on low-count intersections like the
    benchmark (doesn't change vgr) but does reduce region-heavy renders
    like havoc by 3-5%.

commit 9223d46263f9a66e054bcadde39c382c02e86d2d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 20:00:35 2026 -0400

    obj files with unnamed groups previously crashed.
    
    the spec is unclear whether that's valid, but we did encounter one in the wild.  so now it's supported.

commit 59b7bf6dbdd6e60972239ab4589e1716b3362599
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jul 31 00:01:24 2026 -0400

    remove libfb-dummy.c, stub added long time ago no longer needed

commit 3ef1bbcff569a59a408ec4d72bd150158cae160d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 08:27:30 2026 -0400

    ran into this case where unset ended up scanning whole hard drive overnight

commit 5006ef94cfc08708685213ee899d948e25694bde
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 08:26:43 2026 -0400

    make sure we persist the EXT dir setting harder, persist it if set, but then repromote also

commit b597a3f681a74a3177ccafad712082953eec7171
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 02:00:08 2026 -0400

    don't let build silently ignore bad BRLCAD_EXT_DIR setting as it leads to unexpected automatic re-downloading.  tell the user to unset for auto or fix it.

commit fe01de0d15bdd999d17adb3c4183f5420630a484
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:47:35 2026 -0400

    renamed bu/time.h to bu/gettime.h to match impl

commit 8cd92bd31bed2e35dfbcb8e3728451454859fb54
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:37:56 2026 -0400

    renamed time.h to datetime.h to match source

commit b8c083a97468d3322139a493db097242b6bc5f57
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:34:26 2026 -0400

    renamed header

commit e123bdc8ec2725e1911b9ff2332fb44c6d617824
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:33:27 2026 -0400

    rename bu/time.h to bu/datetime.h to match source

commit 266a094b3e511f3decf543235de801f754c3e43b
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Aug 3 15:52:37 2026 -0400

    Update isize.c fix units translation
    
    This was attempting to multiple by base2local units but we need inverse so dividing makes sense here. Previously isize was giving correct answer in mm only.

commit 5741d04c0e6d56987a53e992e3014963c44d3365
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 12:26:08 2026 -0400

    test file moved

commit 750d155c80724a9518c33dda51f89a94cdb87980
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 12:25:53 2026 -0400

    fold in the remaining tests (eigen, mat, sobol, tabdata) so all are consistent with the rest.
    
    will probably want to revisit the target reduction approach if there's a way we can do that better, low maintenance.

commit d85d2cea50cc8bb77ab2c9a3bcaea006d0af7f97
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:28:06 2026 -0400

    fold old tests into the new ones so we maintain same original cases.
    
    this unifies the entire testing set and expands overall coverage.

commit c2b0dcc923181ae3ca2e71d7aa39a65671ed8af3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:13:54 2026 -0400

    merge in qmath tests including all the distance checks

commit 717adb34baedd104cd5c05abf940970e91085a7e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:13:17 2026 -0400

    merge in sobol.c tests

commit e882d117f1739218516e5acc1d39f3b7bf42d3ca
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:12:57 2026 -0400

    merge in the old poly tests as a legacy case

commit 06fe97270d828b7443528491a51ef7bdeaa8e1a4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:12:16 2026 -0400

    merge in more of the existing mat test cases

commit f47183588c3ba7c7943b7fe778f00dfa39cc08b1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:11:50 2026 -0400

    merge in the other test cases

commit 5545d1ac2411e188e84cc091ac3d51d303716e41
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 11:10:49 2026 -0400

    make sure we get a repeatable sequence as expected with a predefined seed

commit 5fb57e47595944310a6fed2da93aefb9c5d41b50
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 10:58:43 2026 -0400

    add new unit testing for complex, mat, poly, qmath, randsph, and mt19937ar.
    
    will reconcile duplication in following.

commit 1ca08d8c972c50a3ed465858bac454149ea50431
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Aug 3 10:52:12 2026 -0400

    expand noise unit testing to include large coordinates, concurrency, perlin noise, and other cases

commit 8a1e2c51615faa09a4e43af65566df53095537eb
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Aug 3 10:54:41 2026 -0400

    Update sv.adoc update description/examples
    
    Update description/examples to show that sv coordinates on the screen are -1 to 1 for x and then potentially more or less depending on shape of graphics window (if square then onscreen y would also be -1 to 1).

commit b6d65eca6b1c6772fa884f7c47f3d8fce0ff68f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Aug 2 04:44:53 2026 -0400

    libbg: enable LBFGS++ optimization for Geogram remeshing
    
    Add an MIT-licensed LBFGS++ adapter for Geogram's CVT optimizer,
    replacing the upstream HLBFGS implementation (which we cannot use due to
    licensing issues.)  This restores the intended quasi-Newton phase, which
    previously fell back to additional Lloyd iterations because no usable
    optimizer was available.
    
    Generic_Twin testing with an example Generic_Twin mesh shows a modest
    improvement in average triangle quality at roughly 30% higher runtime
    and memory use.  The overall timings remain comparable, making the
    tradeoff appropriate for a quality-oriented remeshing operation.
    
    Preserved fixed-iteration and progress-callback behavior, added focused
    optimizer tests, and recorded the exact upstream revision and license.
    
    Removed the unused legacy C/Fortran liblbfgs vendor tree.

commit faf383e1f601fff564061266fd11eac707dcac38
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 1 19:08:58 2026 -0400

    Add notes about brep csg/boolean logic and relevant experimental work

commit 7fbe7eeaa63503331225b4613f7f1827bc93ba70
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 1 18:07:36 2026 -0400

    Stash some notes on what a proper bot2nurbs would take

commit e2f4e2c95e906bf6ec6427ae2117599f52091c20
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 1 17:21:05 2026 -0400

    old root3 test is OBE

commit a36e15719d21d28704c6c91ed4995231a5094ca0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 1 17:10:16 2026 -0400

    libbu: make lazy semaphore publication and parallel bookkeeping race-free
    
    bu_semaphore_acquire() and bu_semaphore_release() invoke
    bu_semaphore_init() on every operation.  The lazy-initialization design
    introduced in 2014 therefore deliberately used an unlocked
    bu_nsemaphores check as its normal fast path, avoiding acquisition of
    the global initialization mutex for every semaphore operation.
    
    That fast path was operationally useful but was not valid under the C
    memory model.  It read bu_nsemaphores without synchronization while
    initializing threads wrote the same ordinary object under bu_init_lock.
    A lock held only by writers does not synchronize unlocked readers, so
    this was a data race and undefined behavior.
    
    The count is also more than a range bound: it is the publication marker
    that tells a caller that the corresponding native mutexes and their
    magic values are ready for use.  Without acquire/release ordering, a
    reader could observe the enlarged count without being guaranteed to
    observe all of the initialization writes that preceded it on a weakly
    ordered architecture.
    
    The March 2026 monotonic-count fix prevented a late initialization
    request from lowering bu_nsemaphores and causing already-live mutexes
    to be reinitialized.  That addressed the observed FreeBSD EPERM
    failure, but it did not remove the underlying C data race or establish
    a happens-before relationship for fast-path readers.
    
    Make bu_nsemaphores an atomic publication counter:
    
    * Use an acquire load for the unlocked already-initialized fast path.
    * Re-read the count after acquiring bu_init_lock.
    * Initialize only the range above that serialized value.
    * Release-store the new count only after every mutex and magic value in
      the range has been initialized.
    * Use Windows Interlocked operations on native Windows for compatibility
      with MSVC versions lacking complete C11 stdatomic support.
    * Snapshot and reset the count atomically in the explicitly quiescent
      bu_semaphore_free() path.
    
    The initialization mutex continues to serialize writers.  If a reader
    observes an older, smaller count, it only enters the slow path and
    rechecks under that mutex.  If it observes a sufficient count, the
    acquire load guarantees visibility of the initialization writes
    published by the release store.  Consequently, no mutex can be used
    before initialization or initialized twice while the pool is live.
    
    This preserves the original performance design.  An already-initialized
    semaphore operation performs one atomic integer load and comparison and
    does not acquire the initialization mutex.  On x86-64 the acquire load
    compiles to an ordinary load instruction.  The extra serialized work is
    confined to the rare pool-growth path.  Windows Interlocked loads are
    stronger than strictly necessary but retain the lock-free fast path.
    
    ThreadSanitizer testing of this path exposed additional libbu races:
    
    * parallel_wait_for_slot() polled worker counters without the
      BU_SEM_THREAD lock used by writers.
    * parallel mapping slots were initialized and cleared partly outside
      the lock used by slot allocation.
    * unrelated top-level bu_parallel() callers shared mapping slot zero.
    * the ncpu == 1 shortcut released its caller's still-live worker ID.
    * failed native thread creation leaked reserved mapping IDs.
    * malloc's first-use bomb-failsafe flag was read and written by
      concurrent callers without synchronization.
    
    Synchronize mapping allocation, initialization, and release under
    BU_SEM_THREAD, take locked snapshots in the throttled wait path, and
    give each top-level bu_parallel() invocation its own parent context.
    Do not release a worker mapping from the single-thread shortcut, and
    return mappings when native thread creation fails.  Protect the
    bomb-failsafe initialization with the existing malloc semaphore, adding
    no new allocation fast-path lock.
    
    Also serialize the Solaris concurrency hint and replace the Windows
    WaitForMultipleObjects join with individual waits.  This removes the
    Windows handle-count limit and keeps successfully created handles
    contiguous when a CreateThread call fails.
    
    Add regression coverage that repeatedly frees and concurrently rebuilds
    the native semaphore range, starts concurrent top-level bu_parallel()
    calls, and deterministically checks that recursive single-thread calls
    cannot make a live worker ID available for reuse.  Clean an unrelated
    race from the existing semaphore test so sanitizer results describe
    library behavior rather than test bookkeeping.
    
    Document why the earlier monotonic counter change was necessary but
    insufficient, and record the acquire/release publication contract.
    
    bu_semaphore_free() remains explicitly quiescent-only.  Supporting
    concurrent destruction would require a separate lifetime protocol in
    which every acquisition participates and teardown waits for all users;
    it is outside the current numeric-ID API contract.

commit d4914fbf2d24267b725c1ec4f6016f9d3f5e2e59
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sat Aug 1 14:10:27 2026 -0400

    Make another try at getting core semaphore behavior to be robust with static libs

commit e22f10fde6fb657e72771679dd618dada9a9348e
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 15:54:34 2026 -0400

    Update bb.adoc remove see also (pointing to invalid command)
    
    remove see also pointing to invalid command

commit 20bc4cc106fe55d443fab62c97ba25d2b85c3b3a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 15:51:50 2026 -0400

    Update zap.adoc example syntax

commit 177b6dc875341384d91787a4196643726604f7c9
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 15:44:09 2026 -0400

    Update t.adoc example syntax

commit f7b8ca59bb86ec7619f1b313ea32a39b1c3e50db
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:58:09 2026 -0400

    Update ted.adoc this doesn't take options so remove empty []

commit bbb5e7a3f9d81381f340a7c49f3776d4d3319940
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:52:29 2026 -0400

    Update 3ptarb.adoc example syntax

commit 6817522f07db06bebc273aaefc45ac2c55930d6a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:50:00 2026 -0400

    Update B.adoc example syntax

commit 19eb064610d984bc84642b8c5f04bb037e994fc4
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:47:27 2026 -0400

    Update M.adoc example syntax

commit 93234de2a841a0a2383dac84be77f3cf9ab0b3f8
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:45:57 2026 -0400

    Update Z.adoc example syntax

commit 74a2f61580c248d9332d041e789c8c66c93a7bb7
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:44:47 2026 -0400

    Update adc.adoc fix example syntax

commit 186c6ac93f486abcb3ebd0d1542b5754c866ecb9
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:37:45 2026 -0400

    Update adjust.adoc fix example syntax

commit dee0256eb108b71463983780b74408265d0e0469
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:22:39 2026 -0400

    Update mater.adoc a note about the shader/oshader attrs

commit b70a2ba8eb22be0202d1ebff0e08a4acb05597d7
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:18:26 2026 -0400

    Update mater.adoc a note on color attributes

commit 063b95148a89de1866c2cd9ff968e8f137183045
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:14:31 2026 -0400

    Update comb_color.adoc see also and a note about attributes

commit 4214d8ac560f7fe5639f8fbb34f6c8ba73b19930
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 14:02:31 2026 -0400

    Update copyeval.adoc syntax was backwards

commit 30dd728de890a44515811c04f30df99e53a80d57
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 13:59:01 2026 -0400

    Update cp.adoc add description in name field

commit d5d9848ef1dd2e6cb0ffb0a959f5dcaf5381f9e1
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 13:47:36 2026 -0400

    Update dump.adoc see also keep, garbage_collect

commit df58c35dc11016f8ba0f36707258e9083c017770
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 13:45:10 2026 -0400

    Update echo.adoc fix legacy unicode quotes

commit d3ac28c8967d7b4da69a79ff3dce5219d981a11f
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 13:41:17 2026 -0400

    Update screengrab.adoc see also png

commit 1b6f71d033dd3d4822fcd34450ae5c84387cd092
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 13:02:10 2026 -0400

    Update ev.adoc remove legacy unicode

commit d02e76f369e1591e7c8ecd50633a20dc187295ed
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 12:47:25 2026 -0400

    Update i.adoc this is America!

commit 1507c4d851586fad0eeb7f7fde7cc69ebca7c924
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 12:45:28 2026 -0400

    Update fracture.adoc remove legacy unicode quotes

commit 8f4c9f58b8b2a2a9990d1abfedd469f4fefa80eb
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 12:38:54 2026 -0400

    Update gui.adoc fix legacy unicode characters

commit c1b5d3f9a422b55e1d91c809714b92f9f974e53b
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 12:26:49 2026 -0400

    Update idents.adoc See also

commit 250843e290a4c785efe974ce42646577b7a0c87b
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:28:07 2026 -0400

    Update keep.adoc see also dump

commit b2895424e7f5b3d6de54a83b42c8defbf4b7e25f
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:25:20 2026 -0400

    Update killall.adoc see also

commit 39f85ae83eb35b3f581961dd97b195e7f8fb939a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:24:42 2026 -0400

    Update killrefs.adoc see also

commit d8ff300e353b4ca9df69359fa5d5715445931aaf
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:23:27 2026 -0400

    Update killtree.adoc see also

commit 126892dc5b030653716bfce757e0635b1a23d577
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:11:44 2026 -0400

    Update lookat.adoc add see also view

commit 1615502b39f96babeb72205d8b69e4739cc0a420
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 11:00:42 2026 -0400

    Update mv.adoc fix legacy unicode apostrophe

commit 1771f36f304ce1adca0e0552547f9c8115b3e36b
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:53:14 2026 -0400

    Update mvall.adoc dbfind -> db find, fix see also

commit a5eee97a892d6b7c4cbafd8736a428de5560c0d7
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:39:06 2026 -0400

    Update prefix.adoc replace legacy unicode codes

commit 1e11d3e8850e205ce6090cc74ccc9636f57ca5f3
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:31:02 2026 -0400

    Update xpush.adoc see also pull

commit 05b74edf15cd266ee8b20a1d002709834a071219
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:30:37 2026 -0400

    Update push.adoc see also pull

commit 101c9a9116e2040a314d832602c42544fb14af31
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:29:56 2026 -0400

    Update npush.adoc add footer
    
    This page didn't have the author or other stuff at bottom. Added that and also see also section

commit c330fdd31b6167760db02124d3cfd5cd91cbdf83
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:25:54 2026 -0400

    Update push.adoc add see also section

commit 597f4b03ded995ee7deccaa9c66355585a3ddb01
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:21:26 2026 -0400

    Update r.adoc fix legacy unicode quotes

commit 4c6b44aa1fe61af01e87a111d382f444ecc48726
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 10:06:34 2026 -0400

    Update rpp-cap.adoc fix legacy unicode quotes

commit b4da9ebdb0d48aa240d50d0c0ec0a7a7f3a6313f
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:33:02 2026 -0400

    Update tra.adoc fix unicode single quote

commit b6c22e2eed5ca188602819f1b66a7bb927fce570
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:12:10 2026 -0400

    Update wcodes.adoc add attr to see also section

commit 46eac380df76a2152b230b44dd3e065522351820
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:11:03 2026 -0400

    Update whatid.adoc add lc to see also

commit bd67b02c6a52bb673b16a5719379111e7a681f61
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:08:07 2026 -0400

    Update which_shader.adoc add search to see also section

commit 2213f4079f9942ee076c440cc17e171c99769bf7
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:07:30 2026 -0400

    Update whichair.adoc see also search

commit 47f1c6f0bbd11c07278df1a6d7fa4a97c09aaba0
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 09:06:49 2026 -0400

    Update whichid.adoc see also search

commit 9d81f1daae5d101b3c80980df36dcb54069b5816
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:58:12 2026 -0400

    Update xpush.adoc fix unicode quotes, add see also

commit 618275aa7ad606a7e8a16a8d070d87ea97085d44
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:44:24 2026 -0400

    Update dbversion.adoc see also (remove version (not a command) and add db)

commit 66283434e42719fedaa6a1b99ed96db197ed3ab4
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:42:20 2026 -0400

    Update dbfindtree.adoc see also search

commit ec05b21444e00e4679d4484eadd24ded582b6399
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:41:39 2026 -0400

    Update dbfind.adoc see also db, search

commit ffcd7bbda177cc68360b331ec4ed3b74e7d50b23
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:40:04 2026 -0400

    Update db.adoc have enough subcommands to reorder in alphabetical order

commit 45511641b01dfbe60df32a6f9b289fb52d1f81f9
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 08:19:29 2026 -0400

    Update db.adoc add subcommands
    
    Added version, find, and concat. Concat will have to be expanded a bit but I wasn't sure how to do that or if we want to make concat it's own page (just change dbconcat to db_concat?)

commit dcfbd6287342ffc4eee51d8358dae01ab66eaf0a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 07:26:38 2026 -0400

    Update autoview.adoc see also view

commit 14d34de729415f57c4ee3d9b5088216077f9a2f8
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 07:08:18 2026 -0400

    Update Introduction.adoc capitalization Asciidoc ->  AsciiDoc

commit 45eb87849d304b3e21f12b1a52f425f7cf28e8cd
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Fri Jul 31 07:03:46 2026 -0400

    Update status.adoc move unicode curly quotes to regular quotes
    
    these old quotes were showing as a ? in both preview and the manual. Changed to standard quotes.

commit bcb8ae513bf313c0ff702738599200b4bea60b7a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:57:52 2026 -0400

    Update viewdir.adoc add see also section

commit ae18cfeaf21fb0ea982f6bd956319b22f1fe28cf
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:56:52 2026 -0400

    Update viewsize.adoc see also view

commit 0fc39c109078fcf133473c97715145caae473ca3
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:52:38 2026 -0400

    Update sv.adoc add see also view

commit c22c68885a2228a648d32937ad3523dd2a1a955f
Author: Christopher McGregor <54115478+f4alt@users.noreply.github.com>
Date:   Thu Jul 30 15:47:21 2026 -0400

    fix parser broken list expectation after dash
    
    test commit before mass doing this with the rest of the commands

commit 4cb05f248acd807a49d885c33acf8a8d50e81190
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:46:16 2026 -0400

    Update slew.adoc add see-also view

commit bf5c2bd400e66e04be95969e3fe6e5dac306fc9d
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:44:57 2026 -0400

    Update saveview.adoc add see also view

commit eae5c947a1b8efabcc8a83c2a38ae9e0e4103cd5
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:42:19 2026 -0400

    Update qvrot.adoc add see also view

commit a5e6cec4e7b577de3d5568733cb778d0a21dbce7
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:41:44 2026 -0400

    Update quat.adoc add see also view

commit 72978c6e2440fcb534a3ecaa88809b18f6134eea
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:39:04 2026 -0400

    Update orient.adoc add see also view

commit f3f10ac8fd1d26cc0d20789aaaf3296d8be50879
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:38:39 2026 -0400

    Update orientation.adoc add see also view

commit 33be268e1c0a395625fbe0b0f779e5f2b3855f4c
Author: Christopher McGregor <54115478+f4alt@users.noreply.github.com>
Date:   Thu Jul 30 15:33:39 2026 -0400

    missed a spot + looks like the intent was quotes

commit d8b5509d227f0e11d3b04867309a9662bd6f947e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 15:28:30 2026 -0400

    get rid of hidden unicode

commit a25c8b9c213f777dc4e2caa67ca9d92f1154a8e0
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:07:14 2026 -0400

    Update eye_pt.adoc add see also view

commit b4438c88ed87da887cfbae961ed590abab8c4294
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:06:29 2026 -0400

    Update eye_pos.adoc add view to see-also list

commit 30edde49e4f61a200d5be745a5a08398a1877867
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 15:05:33 2026 -0400

    Update eye.adoc add see also view

commit 29661c751f5c20248dcaaa0bd5a347685e6fea1c
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 14:55:54 2026 -0400

    Update center.adoc add see also section

commit b43982b939d9ea94dcec800aa2e1ea5dfe6830ef
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 14:45:24 2026 -0400

    Update dir2ae.adoc add see also section
    
    Add see also section and point it to view

commit 9bb14d0cccaae901ed350d99922251da2169ddab
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 14:25:17 2026 -0400

    Update aet.adoc - see also view
    
    see also the view command

commit 74120be40fe4d8cf3141b147e8511aeece831db0
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 14:23:50 2026 -0400

    Update ae2dir.adoc -> see also view
    
    Move see also to its own section and note view

commit 5ff807eb83abf50cdfbeb2d609c41b1d41b3ea5d
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Thu Jul 30 14:21:23 2026 -0400

    Update ae.adoc - see also: view
    
    Move "see also" part to new section.

commit e7ef2db911c4b55ee44cc445488b40e6b94e7c32
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 09:50:40 2026 -0400

    gate on empty and null

commit 91b81058a58a3673ea72da3e4cba6c26b166e0c3
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 09:32:01 2026 -0400

    define in priority order set by bu_timer_cpu() so none are left unused

commit d30df5b7205daef7aef3355fdd896804ab3a3a6b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 09:16:41 2026 -0400

    strcmp -> bu_strcmp

commit dc9dd4c07eeefc8de3e5077cce48525a9fc9f230
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 09:04:30 2026 -0400

    return -1 on errors

commit 4623990baebda1f588b5bd4a30708d35986f3939
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 08:44:14 2026 -0400

    looks like these were renamed

commit dbbdbddae7932322d5fec55eba41d61e869deec5
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 08:39:04 2026 -0400

    close comment

commit 39ec25c26f4d71d72de2dda0ac0b7ba2723f0911
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 30 08:35:56 2026 -0400

    fix warning messages

commit eee1fd4de81e68212c293c86b6b55fe30e62bef3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:17:17 2026 -0400

    track cputime instead of wallclock time for measurements

commit 18919b158e39d77e44f7f6c1ea738c2d41a9ec51
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:14:39 2026 -0400

    two more timers to test

commit 2145d05faf32fe9a944386c8d68c9801c0ac18bd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:14:12 2026 -0400

    add some keypoint oed regression testing

commit ab19d73403873f6061201efca21d08406ea38b4b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:12:10 2026 -0400

    test the new cpu timers

commit 583de63e93fc32d45d8393d6d4253d384d18aae1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:08:59 2026 -0400

    update naming convention, better but not great

commit c92cc23cc28adfbef5481c93ef9715f38945719d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 30 01:08:17 2026 -0400

    trying a diff naming convention, still yucky tho

commit a5e03750a33f28b0c07fb62d17cf22b3d085bf0f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:58:55 2026 -0400

    rework preprocessor logic to reduce nesting, simplify and warn

commit b69350d5a94ed6c41ac4e5b7e06ed2fde895c074
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:41:38 2026 -0400

    implement high-precision timers for cputime, per process and per thread

commit 42ffd3f5533f240e86b666c8f562e531b3886a7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:28:40 2026 -0400

    declare two new API timers for getting cputime akin to bu_gettime(), per process and per thread.

commit 456c7059dac8c2dbfb313ec2f9a431f7839e1e52
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:27:05 2026 -0400

    add testing for high-performance cpu timer api (win and mac threading)

commit b7ba663fd69fe6c3d99ccc94c21b72225c5fb4e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:23:41 2026 -0400

    looks like submodel fix might not have completely made it in, so pull it forward just in case

commit 9111ab3a1c11e7d95518830c6e7ab32497b1e69f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:21:20 2026 -0400

    added new reference documentation, a visual ref of all BRL-CAD objects

commit 3f46a5ff2cd3d7bb71711fcd42505f02711913b9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:15:49 2026 -0400

    add a vrml 1.0 regress test to go with the 2.0 test

commit 488a07b96154bbdba693178e1c591b115e1a3239
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 23:14:15 2026 -0400

    update oed docs+examples to note that the rhs is now optional, that it'll use the bounding box center when a keypoint rhs path is not specified

commit 0883cab92d8ba307a4eea20ca560fe31f141f79c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 02:15:45 2026 -0400

    need to include the decl so icv_rot() is exported when visibility=hidden

commit 935c19f455166cfbced33ab68fe4e9fd86e4e8f0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 01:55:32 2026 -0400

    another missing header, for memcpy

commit db676e652b1053cc95843dc435713e43cc6116d5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 01:54:09 2026 -0400

    side-effect of unity builds, not detecting missing includes

commit 0a2909b786e58c29002184aa11f6d36b457f4554
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 19:58:40 2026 -0400

    initial guide to all the primitives and their params with visual examples.
    
    still needs more work and several object types clearly need some tlc, but this finally leaps over the mged appendix in terms of completeness and usefulness.  showcases the variety of entity types, examples of the main types, coverage across all objects.
    
    the images including labels and annotations were completely comprised of existing BRL-CAD tools (some model-space, some image-space).

commit 4d5b342d5612873c858699438170a355e15aedcc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 19:54:57 2026 -0400

    submodels still need path work, but this addresses a windows-specific failure.  assume relative is relative to .g for now, and non-pathed is rel to cur dir.  ultimately this begs for more attention to get .g submodel refs consistently portable.

commit 05074ccc0ad078ecf152c02c569626a3bcf195c4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 19:51:49 2026 -0400

    global hitmiss freelist appears to have been mucked unsafely, triage.
    
    we need to make sure the lists are initialized here before we try to add to them otherwise we'll get corruption and crashes (or asserts if we're lucky).

commit 1b31143bf61b893806b90a187a4981a8b4a7864e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:32:35 2026 -0400

    now all objects have a vshot callback defined, though some are stubbed miss or shot() in a loop.

commit 7c12c854699f09af943a2f65dc9cd2945e22e916
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:31:23 2026 -0400

    the rest of these prims aren't ready for vshot yet, so stubbing in shot() in a loop.

commit 6871f8cfd3ec08468fceed6a77f8029b50228521
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:29:11 2026 -0400

    grips don't raytrace, so stub vshot

commit ff4c4ed4adebc8b35520cabdf6c981e24da1d946
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:28:22 2026 -0400

    preliminary vshot implementations.  most are showing a 20-50% speedup from coherency performance testing.

commit b9783192d88577accb571afa888655aa5f9e904a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:22:56 2026 -0400

    annot also stubbed, doesn't raytrace (yet)

commit 24349a1332a78dfa1e43610faec60313cb2bbf8f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:22:16 2026 -0400

    stubs for datum, joint, and sketch since they're not solid

commit fe7035e6b675ed4e176f1be4e81a462134765615
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:20:43 2026 -0400

    helper for testing vshot.  not great that it only handles the outer span, but good enough for testing.

commit 9d73e74b94a21c884e7f22bbd39acd25fccfad67
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:19:02 2026 -0400

    need to export rt_vshootray().  still might want to change the shape of ap to be an array.

commit 51fdd77732243db77a402e71883dccf3a478fad8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:18:07 2026 -0400

    testing harness for comparing vshot against shot

commit a2fb9faa11c0003c9d5ce978058ec32a6d8b899e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 18:17:12 2026 -0400

    steps towards vshot working at scale

commit eee753c9674beb1dfdb535ce33f369ef47a5d563
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 15:07:25 2026 -0400

    update cases after libged/make refac

commit 3e0d11e3a425ffa5082415515bbf845c795986bb
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 15:39:25 2026 -0400

    don't treat GED_HELP as an error

commit 5f9b8978801fde6dedb0644872f5a63c08abafd2
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 15:06:10 2026 -0400

    default scale 1.0 so it's visible

commit f9f8d8230b933b5e5196277639a4a7bf99ceea2b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 14:51:51 2026 -0400

    use origin for joint's location

commit 29cc4cfedf68bcf006d3d2ec93f9abedf8ac5527
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 14:35:20 2026 -0400

    match old make behavior

commit 3a31cb382017f9f72d054dad724fefdbb21b875a
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 14:29:05 2026 -0400

    update denylist
    
    remove the types that have a valid ft_make. The rest of these are truly
    not makeable (ft_make stubs or non-geometry).

commit d3511f4650bb855b4a3ca6fa2dc740add3e5f4e4
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 29 14:00:58 2026 -0400

    shrink manual deny checking
    
    - leaving hf + poly checks in for now since they're deprecated mappings
      although they can/should go away for a fully clean decouple.
    - intentionally moving the checks 1:1 into the obj_make.c denylist
      eventhough some ARE supported now to keep the history linear. but this
      should be addressed in commit to follow.

commit c3c9866baf93f688ee4c5d6bcfdcb991fbf56097
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 22 15:15:02 2026 -0400

    use bu_opt for option handling
    
    dynamically list the types with rt_obj_make_labels() (and expose a -t
    for printing them)

commit a67d4051d6005f2e1ad6606818c62a39b2d95978
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 22 14:11:30 2026 -0400

    expose a way to list make-able labels

commit f01bd88473c7d39180289a32805d8e4ce242927b
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 19:10:19 2026 -0400

    cleanup dead vars

commit 9149c79f30d00762f02a31783d59df52d3b03817
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 19:04:28 2026 -0400

    brep ft_make already does this

commit c18b053856a4458f6e29ec54ea4ae615631b19b6
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 19:01:46 2026 -0400

    datum ft_make

commit 8b654fd4a4c8c69b717c6508cc83e667624829db
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 18:43:47 2026 -0400

    update metaball ft_make

commit 03f4d8a7eee3a25ea60cb47534ad0f1847624df2
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 18:37:41 2026 -0400

    cline ft_make

commit fbac93149cd5e4b17734c79a6eafa049a0a81f26
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 18:33:50 2026 -0400

    superell ft_make

commit 63e55d7d1db639c12b158a3163be72846eb08e17
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 18:29:18 2026 -0400

    sketch ft_make

commit ed3a6a0fa17b8eb00be27ef022a71f9677ffc052
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 18:14:59 2026 -0400

    update extrude ft_make

commit 4245b99ebcbbf7f507174d7a84280815cc90ebb5
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 17:40:59 2026 -0400

    bot ft_make

commit f5aa0abea37f3b1c18f467cb424d8c87d18677d5
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 17:25:02 2026 -0400

    pnts ft_make

commit a0fd59d284ba420444907fbd0f47c0a877fe0d4e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 9 17:21:44 2026 -0400

    update pipe ft_make

commit dc7f9ecff503c296d34fda1b0d06595a63b2be9d
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:30:42 2026 -0400

    update nmg ft_make

commit ecd1635c164ccd20b891a672c3d771fe1922e7fa
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:26:36 2026 -0400

    part ft_make

commit e541f15ec011b0c09a2aa268f6c6d91e87a34cc3
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:24:07 2026 -0400

    hyp ft_make

commit 0267262173fdeafbe7b401db65dd6073822a5394
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:11:23 2026 -0400

    update eto ft_make

commit d8fcbfb45b6d814bb7d5ad66959199007095540c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:10:10 2026 -0400

    update ehy ft_make

commit d1a2ad5c89142a626aadaf66dc5e04329f98e74f
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:05:11 2026 -0400

    update epa ft_make

commit 27678cff6cb2f8c9ea2d391e24c724e1e29b92e0
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 15:03:49 2026 -0400

    update rhc ft_make

commit a048dadfd1bd33ceeb0931be93cee53bcf0a0af9
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 14:50:00 2026 -0400

    update rpc ft_make

commit 65e3b9dbc0e9cb43fc23ba023ee98c40787f3293
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 14:48:16 2026 -0400

    half ft_make

commit eb7e3e741ca67bd09f0c6c485e1ed12931d02037
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 14:46:15 2026 -0400

    tgc ft_make

commit bbe94c26e87198cb83868b78d4b10628586f8bde
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 14:34:28 2026 -0400

    tor ft_make

commit e6629d3f521587cdea0bbaa4f3eadf19a52b2576
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 08:31:21 2026 -0400

    grip ft_make

commit 4c9b220eb98b43f8f46bd4e5364787fc6028ff5e
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jul 8 08:26:50 2026 -0400

    ell ft_make

commit 083e08f2e3030afe6ae5cfd60c23672014676f2f
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 7 15:19:16 2026 -0400

    ars ft_make

commit 72b58a7aa520d44169f90748c2286b57ca072114
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 7 15:06:08 2026 -0400

    arbn ft_make

commit 70518d83e43564fea7f42d2b860c85dcaa811e3d
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 7 14:57:05 2026 -0400

    first candidate: arb8
    
    libged/make arb8 logic -> librt/arb8.c ft_make

commit cebe7916cdb8b268ea6efcb4484fb527ace4c8a3
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jul 7 14:37:29 2026 -0400

    flesh out rt_obj_make
    
    add resolvers for 'aliased' types and 'skip' types that align with the
    current libged/make usage.

commit 919ed0ce52cbec6f83015789a32ab661c2fab35c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Mon Jul 6 16:08:20 2026 -0400

    update ft_make signature
    
    work towards ft_make becoming the canonical "make" - this signature
    makes it a candidate to absorb all the functionality that libged/make
    currently impelments. ie
    - pass in a bounding sphere (pt+scale) for the primitive sizing
    - take an optional 'variant' label so we can accommodate our alias types
      (sph->ell, arb4,5,6,7->arb8, etc.)

commit 546b3d4da080dabf454dff6229fe887df774a5c6
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 2 13:11:20 2026 -0400

    add some 'in' tests

commit c8567287cb620e7ea14bad48f45688922defe1b5
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jul 2 11:49:21 2026 -0400

    simple 'make' libged tests

commit d37b0adf717c93f1a0fff20751277df60168a3c6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 29 01:51:18 2026 -0400

    needs malloc.h for BU_PAGE_SIZE

commit b4e71f4d2519fb77120ff340efc762ea5dd5a070
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jul 28 15:41:18 2026 -0400

    Avoid float-equal warnings

commit 11c4035edd7e83247d5c7c0e78051918ddc6aa5a
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 23 17:04:48 2026 -0400

    dead define. run assuming we have a full .g

commit 01dc272e67f1d6aee9279cabfb8a5f3695fcd70c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Fri Jun 19 00:58:28 2026 -0400

    make runners happy

commit 969e618622113cb7822c7af7f42be71140a85c9c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 18 16:25:25 2026 -0400

    big update to primitives.g
    
    Now has an example of all currently raytrace-able brlcad objects
    (raytraceable being defined as having prep+shot functions in
    rt_functab). Not quite "everything" in the functab (missing description
    objects like binunif, materials, etc.).
    
    BIG thanks to Josh for cleaning up the file. All the geometry has been
    added to the overview 'grid', given various interesting colors, and
    scaled similarly. Plus fixed the recursive region nesting and a few
    other nits.
    
    File still isn't perfect though:
    - 'heart' with a matrix is completely broken
    - some geometry still blather warnings and errors

commit be1af260fa61559da90e0c11ba59b0185af2bc30
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 18 16:24:44 2026 -0400

    update status' with recent fixes

commit 03adc7faea5c1a488773a07b8da4a3f9a894f378
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 18 16:21:45 2026 -0400

    we want to gate zero hits; it probably means something is broken

commit c0059383e0496f5012b52158ec99d5bf2c26e007
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 18 16:16:24 2026 -0400

    fix rt_generic_get putting optional items
    
    found with testing submodel asc<->g with the optional 'file' item. If
    the submodel is using an internal component (file="") generic would
    put an empty space, which the import will skip over and fail. Optional
    items need an explicit empty brace set {}

commit 71cbe6ed7173be324ec96f389a4170e33e4c9790
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Thu Jun 18 14:28:44 2026 -0400

    pnts refac + import/export support
    
    this commit conflates two major changes (I know. but at this point it's
    too tangled)
    
    1)  implement get/adjust/form for pnts and register in rt_functab so they
        can import and export asc<->g
    
    2)  refactoring of pnts into helper functions that internally handle the
        type switching instead of each rt_pnts_x function handling its own
        switch ladder. This should just be a copy/paste move - no new logic
    
    TODO: we should be able to expose (2) and use them in libged instead of
    ged having to roll it's own src/libged/pnts_util

commit e3ced7ee06637b73bf7748b4efb13babf62610c3
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jun 17 16:14:19 2026 -0400

    make rt_nmg_shot() thread safe
    
    There's surely a more efficient and elegant way to do this rather than
    just wrapping semaphores but this atleast gets nmg's raytracing again

commit 604be9f4548fdad657c0574a6ee04ab0ad5b5c7c
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Wed Jun 17 12:22:39 2026 -0400

    fix annot asc2g
    
    primary fix is rt_annot_get was using "annotation" when the ft_label is "annot"
    secondary fix is the get/adjust format string was malformed (using old naming convention?)
    
    While we're in here, fix some AI-caught smells:
    - memory leaks
    - missing 'S' and 'A' options for "txt"

commit f026349f48315f04a83b113c0a685ba1ba5192e9
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 16 16:17:49 2026 -0400

    implement bare-bones script primitive functions
    
    script is not implemented more than being a documented 'stub' (see
    ISSUES). However, we expose it in rt_functab and it's creatable with
    'in', so we should atleast be able to view and roundtrip the stub.
    
    - import/export5 was writing the buffer before allocation (so was
      writing garbage). Simplify the unnecessary pointer math to just write
      the string.
    - get/adjust/form now actually use the s_type
    - use bu_vls_printf instead of sprintf

commit b7c55c25627f987cc367e14e5ffe8f0fa3e87136
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 16 14:16:51 2026 -0400

    clarifying comment

commit 641a1fea5ee74e1bbf14a607a18ac13fa9489b5f
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Tue Jun 16 09:55:48 2026 -0400

    fix vol data file sourcing
    
    reading the vol filename assumes it is a full path. In practice it's not
    and as such requires the file.bw to be in the current running directory.
    Instead, have it try cwd and if it's not there search the directory with
    the parent .g (where it more likely is).
    
    Also while we're in here swap to using bu_mapped_files rather than raw
    reads.

commit ea67c19f9c887a87732d1e9874bef1da330e3a60
Author: f4alt <christopherjmacgregor@gmail.com>
Date:   Fri Jun 12 02:10:41 2026 -0400

    working on an rt regress tool
    
    tool is expected to consolidate and test what's currently registered in
    rt_functab against an exhaustive sample database.
    
    Couple of current known issues:
    ID_SCRIPT, ID_ANNOT: don't survive asc roundtrip
    ID_NMG: bombs on BU_ASSERT's
    ID_VOL: file pathing doesn't successfully source if .bw is alongside .g
    but running from another dir

commit 16f6e9f670672157dd083ec7e883840e1db3f1ca
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 03:28:17 2026 -0400

    give rtsil a way to bypass the .pix assumption from rtuif (restart logic)

commit 74876eb3005f3366e0698bbf5b9164ca66d9f6eb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 03:21:54 2026 -0400

    add a -o bw option

commit 9bd3924b04949d94410c1589e2fe30c1c9653081
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 03:13:37 2026 -0400

    now supporting vrml (.wrl/.vrml) 1.0 in addition to the existing 2.0 support

commit 0a0059ebc76c4409362385487b42ecda2ebf075d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 03:07:47 2026 -0400

    expand to all combs.  mk_lcomb was failing on large combs due to mk_tree_pure() building a left-heavy tree and wdb_put_internal() then recursively making lookup and put calls.  now it builds a balanced tree going from O(N) to O(logN) - thus wildly faster.

commit 0f83a10b11c3a10640718dff3d6beaa607520c55
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 02:56:58 2026 -0400

    when writing out very large combs, avoid making them O(n) deep.  this makes them balanced, which is log-n crazy faster

commit 7f7de3078c60fa486596d99733114b68e82fbb12
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 02:22:00 2026 -0400

    add a test for writing out a huge comb without blowing out a stack-depth failure in the serializer

commit fb58e48f6f4fb0356ed31e930f07d7c0d82e6f73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 02:20:41 2026 -0400

    expand out the boolweave testing with 8 cases that we process against all ops.  compares what the weaved result should be against the actual return.

commit 9f2b9fe40656775f7983154fddf5977b83b45877
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 01:29:19 2026 -0400

    add an rtsil test since it's a little different

commit cd155f0d190bcf1e48cc566a5c416e6243a622c6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 01:17:30 2026 -0400

    now v1.0 support also

commit 6561b1438bac2bcb2763927117b9a17a6516be0e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 01:13:05 2026 -0400

    document the new vrml 1.0 support. reads in nearly all geometric entities including meshes, prims, and colors, but not everything of course

commit c7dfe29fa9ccaa33306782149e24f158068485ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 00:26:04 2026 -0400

    fix headers and footers

commit 9d5411aca69cba5305dc86392e747998d0753f40
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 00:12:31 2026 -0400

    inital vrml 1.0 support

commit 2fb8ec2672ee1d2b2c8f7adc65e3811b504ffb9b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 28 00:04:39 2026 -0400

    rtsil output opts fixed

commit 765338099a7253279cc2b180693321304b51366a
Author: joshbaker22 <141415098+joshbaker22@users.noreply.github.com>
Date:   Mon Jul 27 11:44:40 2026 -0400

    Update dbfindtree.tcl dbfind -> db find
    
    have it call new db find rather than deprecated dbfind

commit 331797a8b382350dd7de44be6563673b59a849ae
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 19:22:10 2026 -0400

    Add some notes and TODOs to HACKING

commit 59a50a35efbafce670babd0e086683b99c89e192
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 19:08:55 2026 -0400

    Add note from Sean about a way to avoid having to do work in the BRL-CAD configure bext could do for us instead.

commit 6daf77d6085ca13db0b2ebe2aee28f4967af44e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jul 24 14:35:57 2026 -0400

    Revert "fix the expressions to not gobble up all the other matches"
    
    This reverts commit 3bc6bf6128d966a2c2169412de70bf129b8bb45f.

commit 3bc6bf6128d966a2c2169412de70bf129b8bb45f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jul 24 14:30:33 2026 -0400

    fix the expressions to not gobble up all the other matches

commit 263625ce28182e38a260e13c2b3bc46f1e7f27ed
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jul 24 13:52:01 2026 -0400

    final release throngs, update bext for mac build

commit 50662472fa1d3794adba7fdede5afc32ea2d1f21
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Fri Jul 24 12:51:38 2026 -0400

    coincidentally did a first pass redesign of comb with new subcommand structure for rm.  did not do -o.

commit be538462a0966c38c983a57de71025498af37a9e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 13:36:26 2026 -0400

    Add option to try alternate faster linker (lld/gold)
    
    Usually we want lld, but lld + lto is not happy with gcc - fall back to gold in
    that specific case.
    
    This is not well tested and usually not a huge performance win, so we guard it
    behind an "off by default, nonpublicized" if guard.

commit f5078b84eccc4724a08580a0b49614352eb71a17
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 11:12:36 2026 -0400

    Apply 516a942b adjustments to the scheduled workflow as well

commit 12b410f91dbf4437861109eeb8cdba2d1512df8f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 10:42:13 2026 -0400

    Add validate/repair functabs for librt and libged repair cmd
    
    Up until now we've not been systematic about validation and repair across the
    primitives - there have been a couple that demanded the majority of our
    attention, so they tended to grow primitive specific logic.  However, there are
    reasonable validity and repair interpretations for a number of primitives - in
    order to organize those ideas, we add ft_validate and ft_repair functab entires
    as well as a libged level repair command to systematically expose the repair
    functionality (lint is already a logic place to put validation.)

commit 02eef384e5fa55016b7193f30df9bcfa0e2ab30f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 24 13:35:00 2026 +0000

    Go ahead and report missing man pages
    
    Our coverage is now almost complete, so report what is left. We'll
    go ahead and remove the old Tcl/Tk test executables.

commit 269e313603a85d8dbd5f8428e53c39d2c7ec17d8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 22:01:09 2026 -0400

    Enable librt geometry editing in MGED
    
    This is the cut-over of MGED's geometry editing from in-MGED
    logic to the refactored logic we have been working on in libged
    and librt.  The idea is to graduate CSG editing operations from
    MGED-only to being available to any libged/librt using software.
    
    There may still be some corner cases to shake out, since there
    are a lot of cases to deal with, but one of the major advantages
    of this refactor is we can now add automated primitive editing
    testing to our librt and libged suites.  We have already added
    a fair number of such tests, and we can expand them as needed.
    
    Conceptually reverts commit 71776518c5, but has many changes
    that adapt to more recent changes in MGED and add new features.

commit 8c1bda67d8218690a2a64fbd41594dd2a99949cb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 19:57:44 2026 -0400

    Be more aggressive about fixing permissions on bext inputs.

commit d9cc66ad3bd00d50ccae9eb654bb9ac8abb4ebe6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 19:41:30 2026 -0400

    Faster CMake logic should be ready.
    
    This work is an attempt to dramatically speed up BRL-CAD's configure
    process.  There are many pieces to that puzzle, but among them is
    parallel processing of the BRL-CAD bext dependency files - for that we
    need the new versions of plief and strclear.
    
    This is a major change to our configure process, so it will likely need
    some shakedown, but testing so far has shown configure times dropping
    from multiple minutes to around a minute or a little less in standard
    build configurations with a pre-existing bext build to stage.

commit a3761ca44621e7e869bd678a9197d5019693f7f5
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 21:14:26 2026 +0000

    else, not elseif

commit b3450423f6598d34db35648007f53d618765e535
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 17:02:10 2026 -0400

    Fix rebase error in QgConsoleListener.h

commit 516a942bd442473647703b7f0d6434557396e7b9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 13 15:24:33 2026 -0400

    Tweak

commit 1d76d80471fcf66da2bcbca51fb73715a30fece8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 13 11:21:58 2026 -0400

    see if we can understand what's going on with MSVC

commit baeb23445a638939059b296e43e5b1a61748516e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 13:09:14 2026 +0000

    Multiconfig vars

commit ed353c4bd7069361cc94336602d2f2f11707c2f0
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 22:34:03 2026 +0000

    don't use std::system

commit b74dc603e334d2857bdea0a8f82d0a743f16ebfa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 09:40:13 2026 -0400

    More MSVC optimizations, add in first cut at validator
    
    When testing with MSVC, it's far faster to us the ninja generator than to write
    out full projects for each test.  However, the obvious concern in that case is
    whether or not the test is actually representative of what the compile
    enviornment set up by the MSVC project would see.
    
    We need two things - env setup so we match the MSVC environment, and a way to
    check that we are in fact getting the test results we should be getting. That
    means a comparator for different CMake run outputs - the "probe_validation"
    portion of this commit.

commit c0fe9c6238a7da0f64eb09a2945fad7aaa871ca3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 8 11:38:41 2026 -0400

    Consolidate and modernize our OpenGL CMake
    
    The X11 OpenGL path on the Mac is currently (07/2026) not reliably working, so
    until the situation improves we won't try to build OpenGL there.  Mixing in the
    Aqua OpenGL with X11 won't work, and we don't want to end up detecting that and
    enabling OpenGL incorrectly.
    
    Also switching to having one top level OpenGL find_package handle everything,
    as well as using the modern target definitions in our targets in lieu of
    specifiying headers and libraries manually.

commit a8f18ae530685d0d9ed38b689aa42d0f20da5189
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 17:07:40 2026 -0400

    Adjustment for flag testing on MSVC

commit 15d54413f9d891382d2076be7b535257a468cd6b
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 19:39:37 2026 +0000

    Correct fix for loop seems to be to avoid roping in generated sources in the wrong place

commit 2678bbca6132b61acaa83dfc2e1121515b95a516
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 19:27:54 2026 +0000

    Don't count CMake matches in comment lines

commit 393a13ad29f0c8565dcee0e378b25432aa4f54f7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 20:48:58 2026 +0000

    Reset test directory for re-run

commit ac19d7f5961457520179e655102d42957f9deaf9
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 20:43:16 2026 +0000

    Improve probe inputs to better match serial behavior

commit 094446872bac702d05b132984095d950bd1d8bca
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 15:55:04 2026 -0400

    Exclude moc_QgConsoleListener.cpp from UNITY for Windows, quiet some CMake warnings.

commit a604fedaddca67b34397c3d83904ebc53c4a7baa
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 14:22:06 2026 -0400

    Optimize plief/strclear logic for MSVC case

commit fbc12a6bec706e8194349cff7176568fbdb415fb
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 1 09:14:41 2026 -0400

    Adjust layout for unity builds

commit 2eb5a44f830d1154c51efe9a1a2379337952157d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 23:18:31 2026 -0400

    Improved configure-time batching and bext postprocessing
    
    Reduce configure-time overhead by batching more CMake status output and
    third-party dependency processing work.
    
    Key changes include:
    
    - Batch compiler/probe result reporting instead of emitting one message
      sequence per check.
    - Summarize missing executable man pages once at the end of configure,
      with the full list available in verbose output.
    - Add path-form handling for bundled third-party cleanup so symlinked
      and real bext paths are both scrubbed reliably.
    - Use plief change reporting and selective RPATH updates when available,
      preserving useful existing $ORIGIN entries while replacing stale build
      paths.
    - Keep strclear as a separate residual stale-path cleanup pass and label
      its output/log entries accordingly.
    - Batch strclear processing for binary, data, and text file groups and
      write detailed per-configure and cumulative logs under CMakeFiles.
    - Reduce per-file configure chatter for third-party staging and install
      rule setup, replacing it with counts and detailed logs where needed.
    
    On the tested Linux configuration configure time dropped to less than 50
    seconds with these changes. The staged bext binary set remains the same,
    with unchanged NEEDED and SONAME metadata; RPATH/RUNPATH differences are
    limited to the intended preservation of valid $ORIGIN entries and
    removal of stale bext install paths.

commit d369740f70111f62800dfb28d12ccc37516d56ad
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 19:20:35 2026 +0000

    Adjust libged dependency setup for GED_CMD_HDR to try and avoid circular dependencies

commit 74703b25fecf8bea1d0ef8629437228288a52f39
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 20:14:15 2026 -0400

    Move ged scanner to a build-time configuration

commit 6c008b592321815e55e1a993b00bb62f379339bc
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 20:03:39 2026 -0400

    Make librt scanner a build time operation

commit 517d05163c07b54cd37449913e4eb4067c437193
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 19:51:47 2026 -0400

    More incremental CMake performance improvements
    
    - Stopped manually collecting/re-adding dependency include dirs for BRL-CAD targets. Linked targets now carry their
      own usage requirements.
    
    - Batched target_include_directories calls in misc/CMake/BRLCAD_Targets.cmake:266, grouping local, system, and
      external-system dirs.
    
    - Added include-dir classification helper in misc/CMake/BRLCAD_Targets.cmake:240.
    - Memoized is_subpath in misc/CMake/TrackFiles.cmake:81, with the fallback copy updated too.
    - Made managed-file symlink setup idempotent and limited stale-link scans to once per target directory in misc/CMake/
      BRLCAD_Targets.cmake:1349.
    - Net improvement on Linux Ninja CMake: about 3.8s
    
    Relevant profile deltas:
    
    - brlcad_include_dirs: 1844.8ms -> 104.5ms
    - brlcad_sort_include_dirs: 889.9ms -> 42.0ms
    - is_subpath: 983.9ms -> 75.7ms
    - add_subdirectory inclusive: 47.6s -> 43.1s

commit dc2a758f5cd2aed2ca8ac6d2d453f8c6bc854485
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 19:36:21 2026 -0400

    Batch compiler flags

commit 128dc2147b102d4e2f8f5c90ed7bd55e4f6dbd33
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 19:27:14 2026 -0400

    parallel probes

commit 10d0b89b5f3374508e9fd9ffd832cb923af79b22
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 20:53:27 2026 +0000

    need writable file for soname

commit 94f5cb475f27b59c63d32e78cf4978aad328644c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 07:42:14 2026 -0400

    Make deferred config header output for simple feature-test defines - allows more stable config.h output.

commit 3e3ea5fce93ff6e8aa9216c63a49f20a5f2db21d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 02:15:36 2026 -0400

    Get set for some strclear/plief improvements

commit d54adb085bd6985ce99b9ebc21dfb3949242a1e8
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 01:03:02 2026 -0400

    Couple more minor adjustments to CMake logic

commit c35b4f126324ee651755fb03e122da0ec109251e
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Tue Jun 30 00:42:28 2026 -0400

    Address hot spots via CMake run time profiling
    
    Changed:
    
    - Replaced per-file cmake -E create_symlink process spawning with native file(CREATE_LINK ... SYMBOLIC) in misc/CMake/
      BRLCAD_Targets.cmake:1328.
    
    - Replaced fallback copy-script string concatenation with a template: misc/CMake/BRLCAD_Copy_Files.cmake.in:1, tracked
      in misc/CMake/CMakeLists.txt:9.
    
    - Converted third-party file classification accumulation from growing parent-scope lists to global properties/counters
      in misc/CMake/BRLCAD_ExternalDeps.cmake:203.
    
    - Fixed directory list registry property naming/get behavior in misc/CMake/BRLCAD_Util.cmake:334.
    - Simplified package-call registry append paths in misc/CMake/BRLCAD_Find_Package.cmake:128 and src/libged/
      CMakeLists.txt:199.
    
    Measured with cmake --fresh --profiling-format=google-trace:
    
    - Configure time: 146.9s before, 112.5s after.
    - BRLCAD_Targets.cmake self time: 23.224s to 2.746s.
    - BRLCAD_ExternalDeps.cmake self time: 71.183s to 60.861s.
    - External-deps list self time: 7.191s to 0.015s.
    - External-deps set self time: 5.904s to 0.198s.

commit a889d991a774e2d6b02782e2925efc4703068611
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 23 16:40:51 2026 -0400

    Bump to next development revision after tagging the 7.44.0 release

commit fa6028fca6a387bc0207c9c6ac458023302f6d73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 23 15:37:54 2026 -0400

    extensive expansion of jt support, more than 193 distinct changes/improvements

commit 396253afb2dbff19aacdeee6bec1d28607845212
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 23 15:35:21 2026 -0400

    fix a couple prxoimity bugs; switch off osl shading for the time being, using plastic brdf

commit 2e9926c97c0671bdc46aba3f8099d75280cff4ae
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 21:16:03 2026 -0400

    get rid of debugging (alloc mismatch solved); track regions and have a fallback color

commit 3fea47ae60b3888fe4f1c69561c9120820f98f35
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 22 21:15:16 2026 -0400

    done with debugging, issue was allocator mismatch

commit a50e7d833cc78b4c87b155c06be508dfe90f2adf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 16 17:23:59 2026 -0400

    staging for more debugging

commit 6255afe0befb487e21d8639014a0ce55f7447489
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:43:36 2026 -0400

    sf mailing list is still there, but need to consider if we still want to point folks there. update ver to 7.43 in anticipation of release

commit faa9738e269b677aabe4d9fc2591fe21f8f1e12c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:42:18 2026 -0400

    cmake bumped to 3.26, update doc refs and sf/gh refs

commit 72fa2adbc110ed858daa18ce6e2d817f338e4dd4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:40:51 2026 -0400

    stop installing solaris and vax

commit df17b7f666cb7c9e69b28db82abc8bd624c80366
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:40:16 2026 -0400

    update docbook to asciidoc refs

commit caaecf6ac7d39a56a73d1063f661cbfd6fe522f5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:39:31 2026 -0400

    asciidoc now

commit d1d6821ff3b9f441499fa4e52a7bf71d0987c021
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:38:48 2026 -0400

    update links sf -> gh

commit 9fdf8ea9aa552fdf5d08f97ad86f635b52e9cedb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:38:03 2026 -0400

    update cmake req, replace docbook and friends with asciidoc

commit 0b8ff147771f0495b4c6b854652520e1261c54ac
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:36:51 2026 -0400

    leave a note that these are archived information

commit f8605ad6f5363975f7bc1a18887d9d3e48002f6d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:35:43 2026 -0400

    link in all the new docs

commit 5cd6ffccb3db4a0c696c2741c861b24ad738563a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:34:02 2026 -0400

    add the new docs

commit d7a88560bca87a75711fb452f7204217c388eef0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:33:43 2026 -0400

    explain the raytracing pipeline

commit 421eee57fde97806325ecf02951dfaec6852b1b0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:33:29 2026 -0400

    already wanting to change it but document current status of libged commands as well since they're an easy onboarding path

commit cc4bcad9861711010848fdc89f3640e6d22cc77d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:33:13 2026 -0400

    basic onboarding as a page

commit 38fe924ba7de481d14200ce143904e6a6fb0d856
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:32:59 2026 -0400

    an overview of our doxygen api docs

commit 6a98e541140a4fd014b88bcda3f47f4780b2c656
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:28:56 2026 -0400

    remove out-of-date sf refs

commit 7cf50d09a4fd3e86df12ca635b70eb8aac92fdd5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:27:45 2026 -0400

    mostly typo fixes and other mistakes, some tightening of the prose

commit 648becb02051278fbf0aa61fd7328d1eaaf120f7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:25:51 2026 -0400

    broad updates needed, more detail on compliance, and replace the lengthy docbook explanations with asciidoc.
    
    coincidentally took 70 fewer lines to explain asciidoc (223 -> 148).

commit 3a03d9382aada225d439968d6a3e15d08a98e752
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:22:35 2026 -0400

    mostly minor ref updates

commit bf814aab722802faf887064361a830de7325a71c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:21:12 2026 -0400

    include build_patern and build_region by reference to not duplicate them and let them stand as their own articles

commit d3b7cf42569c66169056bab8f4af6109c55a04ce
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:19:05 2026 -0400

    lets not ref all the way back to 7.12

commit 80bbb6a5ee8ba195037535075720e94f63e81ba9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:18:09 2026 -0400

    remove all the hotlinking and kiss.  it's already a monster page that could be simplified even more, but these are mostly description cleanup

commit 6acd30f7bed6ba1418e5d568cf0691f3416bf312
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:15:03 2026 -0400

    very likely to change, but go ahead and document how to embed gcv into apps with / without facetization

commit ff1b1cfd03701a44ee46ad3cbc489de0d7bb9e68
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:14:04 2026 -0400

    english description instead of image since we don't have one

commit 8258be59122535ecfbe8568acc7cbe0d98d065f5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:12:40 2026 -0400

    update adrt doc renders, mention the spall cone vis mode

commit 819919eb57499d9899d131bbdfa1de4d1d60d8ad
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:08:13 2026 -0400

    no longer docbook, ref the asciidoc ref

commit dd9a9b963d27cd2aace6d9849701a885810abfbe
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:06:50 2026 -0400

    doxygen already feels like ancient history, but update and note the build option to get more

commit 35adac9217ab2805c3a59781e3ac98727334ab52
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:05:06 2026 -0400

    more cross-link ref updates (and removals in cases where not helpful)

commit fb4bd65a24311df630c71459b2a148a26a3bef23
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:04:11 2026 -0400

    converse note on g2asc, not deprecated but purpose has shifted

commit 35289f3f5a0d097773ab1fbe22364edc2a25f9a9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:03:49 2026 -0400

    proper see also links

commit 67cecce6ef1ee0f8a16e7a0576779bebe0c2ec29
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:03:12 2026 -0400

    note d-a is also deprecated for cv

commit 1a0b51f269f826f1696c4a7e348ae0fbb2b259b1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:02:59 2026 -0400

    switch to brlcad page ref

commit 196a71f42d31d480539ac6287e436c888d7b27bc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:02:18 2026 -0400

    general updates and faq-style clarifications

commit 05f9c302ef610bc5a9927efbd299870b03fe9619
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:01:56 2026 -0400

    note asc2g is not deprecated but narrower purpose

commit f9705698bbb5f3110af8f91c9feb4770a482ec28
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 19:01:38 2026 -0400

    note a-d is deprecated, use cv

commit 164ad519e18b581ab3eae3a71585bc731191dd3d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:59:53 2026 -0400

    add man1 pages for other installed binaries including beset, g4-g5, g5-g4, ganalyze, gtransfer, and walk_example

commit ede5a020ecee6cf6e4a43f8bd07b76ca7512bf85
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:55:35 2026 -0400

    add manual pages for all of BRL-CAD's remaining libs, giving basic overviews of their scope and purpose

commit 96170524422769e8e66bea9ad0be08cfe8ceb3d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:51:50 2026 -0400

    expand on current doc status

commit 64ef13b55679f94800356de37ce1a44943dc682f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:51:19 2026 -0400

    point to where the library is, include better cross-refs

commit 15e345a084f1bf078c4ca23e159820dd6b119e5b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:50:23 2026 -0400

    replace the massive tcl-centric blather with excessive detail with a proper concise overview of libdm

commit 2a63654fe0e9c1a6115fb816d94917b1c20327d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:48:32 2026 -0400

    wow, libbu manpage was just wrong.  now properly updated with contemporary refs and basic overview.

commit 820680af4cc133e68595f3652fdeacc4f98ed55d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:29:48 2026 -0400

    temporary debugging to try and find a really obscure heap corruption.
    
    corruption appears to be happening inside the appleseed.dll render() call after material slots but before any ray tracing.  in testing, looks like it's not osl material/shaders, not librt resources, not abi mismatch the crt.  probably needs interactive debugging and full symbols through bext deps.

commit 125637a89760620dab26a97483ee58c60cb961c9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:25:20 2026 -0400

    progress towards re-enabling spall cone and cut vis modes (-m) and -b/-A shader args

commit a68488fc2a1a58b9151cc416770c6ea4c1de0d7f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:23:21 2026 -0400

    slew of step ap203 changes that need additional direct testing, deferred to 7.46

commit 8c8c7a593b72d7cec288d35f2ed9d40283d31be6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:21:03 2026 -0400

    more import features added

commit ed32d79152f31288d284e313cdb4471d642ea80a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:20:22 2026 -0400

    instead of exiting, keep going

commit edcd515e2e72cedede303341df1630c443858fac
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:19:36 2026 -0400

    see if we have any surfaces we can export

commit 308f582e95626bc9bfe1770a5c9ea3289f7c68f1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:17:20 2026 -0400

    read circular arc entities

commit ca373572523a2cbd01cc0d28ec2b191e59277392
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:16:52 2026 -0400

    more brep robustness tickling

commit 81c6b33408a14ff0891f3af4ee49ee2a51295c6a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:15:49 2026 -0400

    much more work needed here, but bring manifold brep in untrimmed for stability

commit 80834c8ea223e2091f8a73e653ae02df26cd351f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:15:06 2026 -0400

    if loop fails, drop the rest instead of keeping partial corruption

commit 17d7ee1e866844a6db705cebc8371b055898c9ee
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 18:12:37 2026 -0400

    add a basic jt exporter and some more parsing improvements.  todo - separate the writer into its own file.

commit 5e4db6b0b2a940371a64481aebfba2dfa33be4fb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 00:06:37 2026 -0400

    more jt encoding updates; quite an optimized encoding format

commit 47d80a1ca7cf9f585e78246a90ed994e24793e68
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 00:05:06 2026 -0400

    load surfacecurves

commit bd2aa5d8d0176458da42a0cf2c0cdf11783b2bed
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 00:04:26 2026 -0400

    hammering it with more test cases

commit 57b26a2361ef76258aebdb5d646f60f30f1add85
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 14 00:03:38 2026 -0400

    address some compression/buffer/tiling issues

commit fb3769e29e41e62fb018516542783bcbb6168b4b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 23:19:54 2026 -0400

    lots of fixes including out-of-bounds pixel writes spread out across many files.  fixed an info loop in camera.  fixed perlin inefficiency.  and other bugs..

commit 80f38db379f25a7ebb196dafc7e3d66c628cc8c3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 23:04:34 2026 -0400

    more spline surface import work

commit 9fc82423b5057ee04929f166a10ef2d957986649
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:52:55 2026 -0400

    unused headers

commit c3f522680f5c4ebf7cc912b0a3da6380996d2c09
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:52:13 2026 -0400

    update the review, fixed product name collisions and unique names

commit ce4a33812ed7735c8a16548d18bd3db7511b4e58
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:51:18 2026 -0400

    fixed min[] index bug, now axis-aligned

commit 8aa07e15f62e1dfdf4c96786614b26bf18a7db0a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:49:37 2026 -0400

    don't clobber when we're over a surfel

commit 32fe2f5ab6a63b653190b93ad6e1b08fbfa84ba5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:48:14 2026 -0400

    add support for reading spline surfaces

commit 26b6d17616b58197190ea452e32a6716946c84d0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 22:00:45 2026 -0400

    step names can be shared, so make sure we get unique names for each object

commit 728f44346378a70afa6dd614af2cdf3813040501
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:59:58 2026 -0400

    need set

commit 8c3b778e802a7248b3f697a4d1ec6eb01c56b999
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:58:47 2026 -0400

    prefer the inherited color (should be using the other rt path color api) from treewalk

commit 30e6ba2741003dc209acc3df222f268a7024bb4e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:56:44 2026 -0400

    import light intensity.  this will likely need some adjustment, but should be better than defaults.

commit a261ef78ac522b2323a26ed36770509f6f64eedc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:35:03 2026 -0400

    import lights (but not all their settings) from .g file, otherwise fall back to what we were doing

commit 735c6ea009949d7aaac89e699301608fe8e5b1a0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:33:29 2026 -0400

    launcher is a dir.. need to fix

commit 3decb3d1e70eb0e16bc30dde9ec6c719d013bef5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:33:04 2026 -0400

    use the macro

commit 7ca1b22924e6cb92a4e3ae655daed545672c1172
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 21:32:39 2026 -0400

    update review

commit f92dab01379698f5d9204ca7ef741a9c436a714b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:44:17 2026 -0400

    make art respect the -o output option, still using appleseed's writers for png and exr, but icv for anything else.  no more output folder.

commit bfba7462a9418c3681ea8e60ed66acda0059e18f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:40:13 2026 -0400

    consistency cleanup, stray spaces before eol commas, unnecessary casts

commit 4f7986c33c7c816695f95a892db37ad2027ce192
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:26:33 2026 -0400

    some general code and comment cleanup, no functional changes, some dead code culling. few corrections noticed here and there.

commit 52fcdde223bcc2bd9bb2d844309fee2be06465d2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:20:23 2026 -0400

    wot.

commit f11bafc314d946d829d74a8cbcc02b907ee6e4ea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:19:22 2026 -0400

    document what these files have

commit 9f7ea52e0b6a2cbcc4bf1cd59798ac025cdfff9c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:18:40 2026 -0400

    if art can't do it, let the user know.  it's going through the rtuif but a dozen or so options have no logical meaning to a path tracer.

commit 65b952a413f992ce8917c7cb27cbede0788ea0e5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:17:25 2026 -0400

    reorganize, clean up, and include nearly all docs.
    
    confirmed 18 articles, 5 books, 3 dev guides, 16 lessons (vol2), 4 presentations, 2 specs (v5/v6), 268 man1, 7 man3, 10 man5, 401 mann.  replaced toc with main_menu.

commit 0e6419bbf3e9c1abed346af46f9e02c03ed9275a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:11:54 2026 -0400

    also switch to main menu

commit 189423ab434e3a518c7d3ae02443a3ec1be1f00c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:11:31 2026 -0400

    lots of dead code removal, debuggging print statements yanked, and start to figure out the axisplacement (not done)

commit b300ed24e95920e7588e2039089be266247fd652
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:08:22 2026 -0400

    link to the main menu now

commit c2fbf882fc3ae8ed2f46d59fe836d2cb20043e73
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 20:08:00 2026 -0400

    more code quality cleanup, should be no functional changes

commit 9bf50f2c5163049ae3468a360bd90579fa4a8475
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 19:46:48 2026 -0400

    lots of 'safe' updates to the code, comments, and mechanical changes that shouldn't change any behavior.

commit f42f479a01a9606640a065733ce09b3d3723e4e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 19:22:05 2026 -0400

    fix the output formatting, needs a newline to separate them

commit 0c69035819ed35e462de641d4605f2f4faf1dd05
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 18:49:14 2026 -0400

    now covers brep import, csg, brep/nurbs export

commit f15fbde58051493beee945553ba4e6bf1bf470a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 18:46:30 2026 -0400

    comment on the partial conversion failure

commit fd5bd4b093ffc5035b19904623a85105335a9896
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 18:45:37 2026 -0400

    newline before release number

commit e8a401b3b0dcf8d45e137c202b17704e14ae949c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 18:23:03 2026 -0400

    consistent whitespace so the generated result is consistently formatted

commit 2ad69070af7c9021595b5fcc97980dc5c451e9d2
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 13 10:40:48 2026 -0400

    Various cleanup details related to recent logic changes
    
    Haven't tried distcheck itself yet, but distclean should do better now.

commit 4bd1be3af7e788cfa4b5d09f41c4bb4fc1e8f567
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:45:51 2026 -0400

    one char nudge for symmetry and so we're not under the logo

commit 2ecdf8ef24d4d6bfa8db54bd86352e3a8c18dcf8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:38:57 2026 -0400

    enable existing boolweave test even if it's inadequate

commit df3d33c94630889a33faf47ab22321c714626182
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:37:58 2026 -0400

    oops, add main change providing mirror support to brep objects

commit 50a8f37be24b2d02576b8ab405e0524e2c2f7027
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:36:19 2026 -0400

    improve rendering performance with lights, minimizing malloc/free calls a whole lot more (128 -> 8192).  timing issue exposed in new rt heat map outputs.

commit 2194c770bd0fe555fb02a3c7b40f6b1a7477c114
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:32:50 2026 -0400

    gist pages now include the file size

commit c927b252eb751874f23d582c1a92be79bb86fbec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:28:53 2026 -0400

    add a test for icv's file handling

commit 1503c863e7692ebe36fee1b4338d2454a6c78afa
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:22:50 2026 -0400

    added ability to mirror brep, minimally tested but looking good.

commit 2279b2375afc23eb4c4c132562a2a743f752acd7
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:20:09 2026 -0400

    related to the mirror bug, need to flip some transformed comb leaves

commit 127863e6b5de10b6db36fca143598df768677318
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:18:22 2026 -0400

    fixed corruption of rhc entity upgrading.  was a 1-char typo causing it to read the wrong field.  technically was likely a v4 import failure on any RHC.

commit 7f359886e786d52144f6e9877476fb9f70cb8931
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:14:24 2026 -0400

    fixed a really old bug in archer if you tried to open a database named the same as a command.  issue was an ' ls' call.

commit 7694dfe9f9890988af2913a2a558a7f7a1dac6c4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:10:48 2026 -0400

    more keyword search guts

commit 604b351c98128efaf8d129bc07695b4cb9935815
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:10:17 2026 -0400

    fix a bug in file tracking (typo)

commit 95a1cf0d1555172733ccd951b251ecbd3d69a1ff
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:07:36 2026 -0400

    add search to the man browser gui too.

commit cf9a61d18d487672695ca44d8715f5a4bba13de8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:04:57 2026 -0400

    if they want keyword searching, route it a little differently

commit 9efe7a5c3af849837694c37f65e30c48c9abad2b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:03:55 2026 -0400

    more keyword searching guts and passthrough

commit f899d48bb8f4f550cb8dfd7976110f29ef98afb9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:03:11 2026 -0400

    oops, add the new helper proc for searching man pages

commit 4eb0322ee3ad4c3aa555c2e7f6ec93afd73699e3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:02:08 2026 -0400

    add searching of the manual pages to the mged GUI

commit 87d7876f9155e1d4a915cad1dc31218d3feed866
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 04:01:06 2026 -0400

    fixed an mged ancient bug where pasted text would sometime get captured underneath the yellow cursor box

commit b9586e5873e590df1e971d283bc00df0eab8abba
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:50:17 2026 -0400

    baseline affirmation, jt mesh successfully imported

commit 7cca26cbc9dd3ec65174acde6b4f8a21c80a346f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:47:03 2026 -0400

    add full text keyword searching of manual pages.
    
    added to brlman, man, and apropos, with -k and -K options that saerch synopsis+options+description and entire manpage respectively.

commit daad656da1019787f60ca5590606049dd78316e6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:41:36 2026 -0400

    add full text keyword searching of manual pages

commit 07ad4759432ce29f1524426823206271c4e40193
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:39:26 2026 -0400

    make sure we can v4 export rhc

commit 298e2caa08b48af2b0c60b3f1668deae94b4aa28
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:38:20 2026 -0400

    make sure sphere case works

commit 53efcc1a6a0e8f09b1fe1f4996ab9d1dac1c522e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:36:53 2026 -0400

    add jt file format

commit 4a0f1d51242f4d149db717c500519789107c70a4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:36:23 2026 -0400

    KISS. lets not pollute API w/ inconsistently long names just because of some minor detail on the clean one that got their first.  just icv_create().
    
    others introduced at some point have the same problem, but they can get cleaned later.  immediate issue is not halting our own builds because of deprecation labels.  removed deprecation labels as unnecessary (MI, icv isn't published/documented) and actively messy.

commit 45b7390d7f489c6c5d7af8146d97947ac62c672b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:26:50 2026 -0400

    fix indent

commit 093cf671ce0e3e046d3ad88113b848c066f1094e
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:07:50 2026 -0400

    todo fulfilled, but migrate the common cases to the manpage

commit 85f29c4b9f466c7b4b0fb7a24597da324f4dab75
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:06:02 2026 -0400

    add a deeper unit test that captures much of the new behavior including the safety exclusions

commit ad9936d6d4a5498c275b0dc9cab76d05934e166d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:04:40 2026 -0400

    rm has a safeguard

commit 7d5133da547f1e48b572fd91f0b631bc11c511ea
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 03:00:30 2026 -0400

    ged rm is a big deviation from the old behavior to the point of needing multiple protections, but ultimately landing more secure and expected for those familiar with linux/posix/unix/bsd/etc.  it now kills but only when not externally referenced (unless forcing).  see manpage for details.

commit 764549b12764d81e1e20dc4c9f414c981e3d6615
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:52:24 2026 -0400

    update rm command with the documented changes.
    
    now rm is effectively kill or killtree but also still sometimes just removing a recipe instance.  to get the prior 'rm comb foo' one must insert the slash: 'rm comb/foo'.  if someone new really does want to kill comb and foo, they'll have to force it rm -f.  if a comb or member are referenced elsewhere in the db, rm aborts (unless it's forced).  only controversial dec was to not allow rm -rf to kill more than the comb specified when referenced externally, but not the underlying children also -- justification is they weren't named, so we're doing the safe action especially considering they could literally be any assembly easily (intentinoally or not).

commit 571529a6987e66ea939ce63e657ff11d97cbd9be
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:40:31 2026 -0400

    no longer a bug, but still needs more work to go faster.

commit b2c504a14293e112fe25ae166cb1f79388107e1d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:37:02 2026 -0400

    fixed a bug in gqa where perfectly symmetric objects (like a simple sphere) reported wrong volume.
    
    gqa was terminating iterative volume estimation early because all three ortho views are in perfect agreement no matter the resolution.  Now it checks against the previous volume to determine whether we were also in agreement with the previous iteration.

commit b1237828abc07f9c736372b6b20c3148e8ea8fec
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:29:27 2026 -0400

    verified an old infinite loop bug was not actually inf, just wildly quadratic time.
    
    this partially improves the situation though still not performant beyond about 200k cloned entities.  the test case originally documented is 1M and still takes several minutes:
    
    make sph sph
      clone -i 1 -t 1000 0 0 -n 100 sph
      kill sph
      g line sph*
      clone -i 1 -t 0 1000 0 -n 100 line
      kill line
      g square line*
      clone -i 1 -t 0 0 1000 -n 100 square
      ... never returns ...
    
    Still, this is a good checkpoint and fixes a secondary issue introduced recently where sph cyl and such are recognized keywords which made the above test case not work.

commit 453d988231651e8405c4837501352b022de0b6a2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:17:15 2026 -0400

    stub in the command, just a placeholder

commit b55ec1acad66a7951af7b9f86ed36a3f68214ddf
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:11:48 2026 -0400

    Revert "stub in the command, just a placeholder"
    
    This reverts commit 6c43a295c7a232e77d76f706f9017ae3c986b492.

commit d7019586b8c271b8082685d5c324d90158d6afbb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:10:24 2026 -0400

    stub in the command, just a placeholder

commit 6ef7bf6bc0b71fcdf6759ba9ccc67f84c293c39f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 02:06:49 2026 -0400

    implemented support for perspective rendering in rtedge.
    
    refactored into a function since the old code merely shifted the view ray orthogonally as needed for neighboring cells, the ray logic now takes the camera plane into consideration to properly do perspective warping.  opens up a lot of interesting possibilities...

commit 1e085d16b9d13344df8601a7b0ceb75881a1ccf8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 01:55:13 2026 -0400

    switch back to a simple linear interpolation so we minimize accentuating minor fluctuations near zero

commit 26dc3611eed4f930b8d64757ee58d672f16ae510
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 01:16:54 2026 -0400

    avoid assertion failure later, needs to be associated with this rtip

commit 78705dc935eb2124224ab0a63f4233a51f3fb53c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 00:54:51 2026 -0400

    apply a work-in-progress patch from nearly 3 years ago that fixes submodel path references taking into account absolute and relative paths (now taken as relative to the parent .g instead of current working dir).  fixed export, prep, and plot, but more still needed.

commit f56076e7d99e13450737b59e41f190842cf2211b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Mon Jul 13 00:43:09 2026 -0400

    finally parsing topology correctly, we have bots! not yet correct,b ut progress!

commit 72b8f428d072ac1e70db8b97f2dcdb41d20dfeba
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 22:29:21 2026 -0400

    fix end of elements parsing and jt 10 packet framing. topology reconstruction

commit 16c0f7452f502fd26547989e39c862ff5cf0da63
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 21:29:52 2026 -0400

    more mesh coordinate types

commit d7089cf1b9a658d7937593db334e1929c5b3bcde
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 19:47:00 2026 -0400

    preliminary support for some of the .jt file format using the publicly available spec.
    
    imports triangle strips, meshes (with colors and uvs coords), compressed data, int-encoded, big and little endian -- all to bot format.  doesn't yet do hierarchy, brep, metadata, etc.

commit 415c93e40ff6b9b8c895ea7bd64753b092a98be1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 02:04:09 2026 -0400

    basic test of context

commit 4cc61032b1571c325625e2d9ad9ff365620199ed
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sun Jul 12 02:03:11 2026 -0400

    close the dbip before releasing the context internal

commit 9c943989bcdc0cbacfbf6692973d551ba5cccf43
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 12 13:48:01 2026 -0400

    formatting

commit 754f05e3eabbc3526ce87db652ed66cb5040d9ec
Author: laithaldaeef <FINALLAITH1994@GMAIL.COM>
Date:   Tue Mar 31 20:50:52 2026 +1000

    Fix missing *3 stride in BoT normal array indexing in k-g converter

commit 21f2c5c51d6ca57ccbb2a83dff697686954948dc
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Sat Jul 11 18:51:38 2026 -0400

    include file size on the sheet, use the International Electrotechnical Commission (IEC) standard to avoid 1000 vs 1024 ambiguity.

commit 2fe7ec11dbd105f855d25f10a6b4466a998ff04d
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 10:22:36 2026 -0400

    Satisfy gcc14 Werror=calloc-transposed-args warning
    
    Per the man page the signature is calloc(size_t nmemb, size_t size) where the
    number of members comes first and the size of the member comes second.  It
    looks like newer GCC is spotting a sizeof() in the first position now, so we'll
    go ahead and swap them.  Addresses #243 reported by rezahousseini.

commit 94cfde0bc8e00c202a05d8965f909826e5c0823a
Author: Rupesh <rupeshkuneed@gmail.com>
Date:   Sat Mar 21 11:30:59 2026 +0530

    Fix minor bugs and code quality issues in art/appleseed renderer
    
    - brlcadplugin.cpp: Fix incorrect header comment (ARTPLUGIN -> BRLCADPLUGIN)
    - brlcadplugin.cpp: Fix char loop variable overflow in get_objects() for
      object counts > 127 (char is signed), changed to int
    - art.cpp: Fix float literal (200.0) assigned to size_t variable
      light_intensity, changed to integer literal (200)
    - art.cpp: Fix grammar 'a orthographic' -> 'an orthographic' in comment
    - art.cpp: Fix missing apostrophe in error messages ('Dont' -> 'Don''t')
      across 5 bu_bomb() calls

commit f80fe7961c104d42eb486ec895650787ae2cb75c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 10 09:35:36 2026 -0400

    Remove old CMake find module, update bext SHA1

commit 230b3135ee55a84f02631e4ca1b6fe86436a693f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:23:06 2026 -0400

    update to rt -l8 being cputime

commit d9dce256340bb520ef1155bfa8be34e2491d84e2
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:22:08 2026 -0400

    add a preliminary dev doc on how to add a new primitive to BRL-CAD using superellipsoid as the example.

commit 940b6b065cfe467204ba9726debf0e26b03d8c4c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:19:46 2026 -0400

    now using cputime for rt l8

commit 07b4ea4b4ffa9df2ee9d43b532fd4546ac79ec9b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:16:01 2026 -0400

    updated to cpu time

commit 20f11f45bd0902ea84decfe338a7c22d0f8c3a14
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 23:14:59 2026 -0400

    update the reference image for l8 after switching to linear

commit d35b3f8d39b44642cdbfb856ebc2c6f162e9c540
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 14:01:49 2026 -0400

    update the -l8 gallery render for heat graph

commit ddff1a84c26c91e91ae0afe9da43f85602ff80a6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 3 12:30:56 2026 -0400

    Remove bu_bomb/bu_exit behaviors from libicv
    
    The library shouldn't bring down the application - it's up the caller
    what to do with error states.
    
    - Added/kept new non-terminating APIs: icv_image_create, icv_crop_rect,
      icv_render_info_destroy, icv_image_take_render_info.
    
    - Kept deprecated wrappers preserving old disruptive behavior:
      icv_create still bombs, icv_rect still exits on invalid
      crop.
    
    - Updated internal users to call the new APIs and handle failures in rt,
      framebuffer ICV paths, crop utilities, animation CLI paths, tests, and
      render metadata ownership.
    
    - Fixed icv_image_create so its documented NULL failure behavior is real
      for invalid size, overflow, and allocation failure. Added private
      ownership tracking so stdlib-allocated image buffers do not corrupt
      libbu allocation/free accounting.

commit 94d1e0a99d91b9438cc57baf98408c31ab58e403
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Fri Jul 3 11:50:46 2026 -0400

    Harden libicv processing and image comparisons
    
    Improve image-processing correctness, robustness, and test coverage across
    the library. Specific changes include:
    
    - tighten bounds and edge-case handling for cropping, resizing, rotation,
      filtering, pixel operations, color conversion, image metadata, and image
      statistics;
    - handle empty, undersized, boundary-aligned, malformed, truncated, and
      unusually sized image data more predictably;
    - improve channel-count, allocation, format, and parameter validation across
      image creation, file I/O, and animation operations;
    - improve perceptual image-difference support, including fixed-size DCT hashing
      for consistent image signatures;
    - replace perceptual-hash-based drawing comparisons with Structural Similarity
      (SSIM), evaluating local luminance, contrast, and structural patterns so
      harmless rendering variation is tolerated while meaningful visual changes
      remain detectable;
    - consolidate libicv tests into broader behavioral coverage and add APNG,
      PImgHash, RLE, robustness, and developer-example tests.
    
    These changes reduce unexpected behavior for invalid or degenerate inputs while
    providing more representative image comparisons and broader regression
    coverage.

commit daf71cafb1cb3a1804aee3a8c54e16479ed39109
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 20:21:12 2026 -0400

    Typo

commit 35cf44d312e854a9155dc9577a42fe487be5f37f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 18:50:37 2026 -0400

    Right, these aren't floats - use >=

commit a2aa4b2e9692416b9c60fa8a411bf34d93cd53a3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 14:39:28 2026 -0400

    Stash a gdb usage note from a branch

commit 7fe92ccfd5ac8eaec4f3c0d7ad591f9f5d8cf821
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 9 13:38:11 2026 -0400

    Adjust key max length checks for libbu cache

commit a61230dbcf768269c360f383a08740c7768c4c55
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 14:00:42 2026 -0400

    document the new rm behavior in detail since this is a stark change to an old command.
    
    by default, the old pattern 'rm comb obj' will be rejected unless -f is specified, or a dash is added to get the prior behavior 'rm comb/obj'.  for now, taking a safe approach on a forced recursive delete, only applying the forcing on the object specified, but we may want to change that to be recursive.

commit 4085cc1c0c21c9a8f2b1bc5e4ec9f98a6668f011
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:48:58 2026 -0400

    mention the old rm command behavior since it's finally changing

commit 4e460a21bc292c5269748127ea9d884c4e8113b9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:43:50 2026 -0400

    include an -l8 heat mode example since that can help with debugging geometry

commit 2e6cbbe4f999973998b9b1cad15e85c172a523e4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:42:28 2026 -0400

    mention new -k/-K searching options on man command also

commit 00e12c77c0627b268c12663f9c490799543ece2b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:41:19 2026 -0400

    adding -k/-K synopsis and full-text keyword searching to apropos as well

commit cf9f934c5ccaa189e6e655f858f41a74f3675d66
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:40:42 2026 -0400

    adding -k/-K synopsis and full-text keyword searching to brlman

commit 5a3758eca7a49a0e9e583b7241db6c803297b014
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:38:54 2026 -0400

    document the newly working -l8 heat graph option

commit 3eb13e2d13041bcebc134aa92812795241b27f92
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:37:09 2026 -0400

    document remainder of rtuif apps via reference to rt's manpage to minimize duplicating some of the method detail, but say the gist that it gonna pick a def obj.

commit 95a1f41ca0258b4ff18e5b748ccad1ba7d87aab5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:35:22 2026 -0400

    document the new automatic object selection method being used given rtshot doesn't go through rtuif

commit 1cbe74c65b79648d58fe80f1ba5deb118ac549cb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:28:49 2026 -0400

    document the default object behavior in reshoot as well

commit 541d779ef469821f866e0f27c3fc875303c0c457
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 13:26:06 2026 -0400

    document the new default object behavior

commit 55afb1ffd12b943a9b60876069173cfdb7c4032b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 12:55:47 2026 -0400

    document rt -l8 heat graphs.
    
    technically started back in 2010 by Stephen Kennedy, but unfinished work.  recently made properly working with dynamic logarithmic range so we can see a proper scaled result.  also fixed output bugs/assumptions now that we're going through icv, and using better timing.

commit 8ae0a0c3494773108f02ce23aed4542b47c72f3b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 12:49:04 2026 -0400

    fix rt heatgraphs so they actually work.
    
    was using the global librt timer, which was nfg, now bu_gettime() precision.  was also doing linear scaling which pretty much resulted in a nearly black image most of the time, now logarithmic through the range so we can more easily see the variation.  also fixed a bug where heatgraph was assumedly outputting as pix, now going through icv as a proper second draw pass

commit b71401c8cac440cdff9639a9c54cdab76af1a7c7
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Wed Jul 8 16:02:00 2026 +0000

    bu_bitv_to_hex - round the logical byte count up rather than down
    
    Generic_Twin.g is generated by fast4-g (build/build.ninja:76817). Some
    plate-mode BoTs in that model have face_mode bitvectors shorter than 8
    bits.
    bu_bitv_to_hex() was computing the serialized length with floor
    division by 8, so a 1..7 bit vector serialized as the empty string.
    When gsh later read that database, bu_hex_to_bitv("") emitted:
    
      ERROR: bitv length is not a multiple of two.
      Illegal hex bitv: []
    
    fixed by rounding the logical byte count up instead of down:
    
      - src/libbu/bitv.c:398
      - added a regression test for a 3-bit vector in src/libbu/tests/test_bitv.c:330
    
    Context against rel-7-42-2:
    
      - The serializer bug itself is old; rel-7-42-2 also used full-byte
        truncation in bu_bitv_to_hex.
      - The behavior changed later in commit cfacbff01e, which changed bu_bitv_new()
        to preserve the exact requested nbits instead of rounding bv->nbits up to the
        storage word size. That was the right semantic change, but it exposed the
        stale assumption in bu_bitv_to_hex().
    
      - Before that commit, short vectors often looked like 64-bit vectors
        internally, so the bug stayed masked on 64-bit builds.

commit 4839a74bfeda0e9495797f7da5d34ddf3721b680
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 09:59:21 2026 -0400

    new docs on adrt rendering

commit 2b0abf78b25f1e6bfd692d3a547efca2b2a6ff0b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 09:58:12 2026 -0400

    added a new proc-db that generates seashells/snailshells as demo

commit e7de3cdde31c690887e2e4154e7bf9dcc2093049
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 08:23:14 2026 -0400

    make gcv appending work.  was checking wrong pointer, and need a dirbuild to actually resolve the lookups correctly in wdb_dbopen()

commit 0229c7cdd6f93230c5534b720e80b8c711dce34d
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Wed Jul 8 08:21:37 2026 -0400

    restore and improve checks for appending.
    
    check all the append flags, and make sure there's an existing _GLOBAL, so we only skip _GLOBAL in that case.

commit 628f7599901b7e47ecdd090b44eb29a0adb90376
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Tue Jul 7 22:04:03 2026 -0400

    prevent segfault if no more args

commit 37714fa05d1b5b0ad59cca6f9cafde0deb099c99
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 09:05:59 2026 -0400

    adjust wording

commit e7eaff78720aeaef411d38fbc2d2d32fd0826e00
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 02:11:40 2026 +0000

    Add compression optimization for APNG images

commit 1b4587c0170f05ae24904feeca13c0f57598d7bd
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Mon Jul 6 02:07:43 2026 +0000

    ws

commit 0e2fd8db5e386e7c7bd5d144e35673ab265f790c
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:17:36 2026 +0000

    Get us compiling with Clang21 on FreeBSD

commit 8cfa8a5c059ac6d046b0cca21bbc759acfb927ff
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:16:48 2026 +0000

    ged_exec main doesn't need extern

commit 013027b6d18cf9466105f21efb9d365c5943a21f
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:15:53 2026 +0000

    use snprintf for sun_path

commit 82cf7b94457700e377ddf333efa4913f2384fd83
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:15:01 2026 +0000

    extern cleanup in liboptical for Clang 21

commit b8e1482d96da167660ffce332998790599273f46
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:13:48 2026 +0000

    Threads::Threads needed on ged draw tests

commit 2dee677832dfcefa7044b23cdef0e64370306986
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:12:55 2026 +0000

    iges converter build adjustments for Clang 21

commit 0e19d04378bad6453fa7afd0177735c9b6b32714
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:12:13 2026 +0000

    Varous rt extern adjustments for Clang 21

commit ef3d5808e0019c92bc4418a902e1b108014961b3
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:07:17 2026 +0000

    Clang 21 build fixes for date.h

commit 08d991b27ee344cf202a1384248a66a94acd0512
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Sun Jul 5 21:03:46 2026 +0000

    Clang 21 build fixes for libfort

commit 47a217a9e4ab274b0449535e4142d62dc0a20ac6
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 23:52:00 2026 -0400

    Use APNG images to hold libged draw ctrl imgs
    
    We have a lot of PNG images serving as control images, but we may need a
    lot more in the future as we check more behaviors.  To allow for
    expansion without growing the file counts beyond reason, use APNG images
    (which can store pixel-accurate images) to pack sets of images into
    per-test containers.
    
    This ability may be useful for more than this one use case, so to do it
    properly we added support to libicv for generating APNG images.  While
    we're at it, also consolidated the simulate command's MJPG writing into
    the same framework.  To do the latter without lots of temp images we
    needed in-memory JPEG support, so added that for both JPEG and our other
    formats.

commit f2a02ac0b7d3aca1af469f1ef546a055aaee0e01
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:32:51 2026 -0400

    delay automatic default-object loading when commands are piped to rt since they may include geometry load instructions

commit 2aa6395e0e25c0476e3a99a5c1b5aa260a8d2005
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:17:23 2026 -0400

    if reshoot doesn't have an object listed, this avoids crashing.  also means we may not shoot our last reshoot shot if it's supposed to be a miss but crashing is the worse real symptom to address.

commit 383ae6fb6b5da697a8ca818c34de3115bc647421
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:05:37 2026 -0400

    add some initial support for importing x3d nurbs

commit 45c9efd12975efa1c7b7b1cc3a54d384a24e04f0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 23:03:23 2026 -0400

    add preliminary brep/nurbs import support for x3d files coming in via assetimport.  assimp explicitly skips them, so we directly use pugixml on the x3d dom to bring them in as brep.

commit 5218e2ae21ccc71d301392bda94b9b636ced1426
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:44:19 2026 -0400

    include a nurbs regression test case for x3d import.  will require adaptations in gcv.

commit cab2ddd8c48166f31af5886ca5be65ceda4ad7dd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:41:59 2026 -0400

    update changes ref

commit 02336e6afbb65013da667f6bea0a934b0fa06da6
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 22:40:20 2026 -0400

    updated changes refs

commit 81293f6edb90f96692b488b522b30a15d4a0a8f1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:35:57 2026 -0400

    reword for simplicity and hopefully clarity on the BRLCAD_API() macro and how it pertains to compatibility testing

commit 2b4d73f42f5b75dc31cc62ce86c66690a531cb2f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:28:48 2026 -0400

    don't need to ref CHANGES any more

commit e089c9c35ac0347a633069987dd0d99148bfd364
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:27:07 2026 -0400

    update is in doc/changes now

commit 6e3850f831a295e0870d616bfb0f3c899f000e3c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:26:10 2026 -0400

    update CHANGES ref

commit 0f179b055490495e3233244e2f53840cb748638a
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:23:40 2026 -0400

    preliminary conversion of api/ui change tracking.
    
    we were using a CHANGES file that encompassed four concepts (policy, minimally-impacting listing, deprecations, and obsoletions) which are now broken into four separate files.  policy remains at the top-level, but the other working files now live in doc/changes along with helper logic that publishes them and automaticlaly turns them into update scripts.

commit 41489fa59810e13b14b9c2aa0cec7e0082d26be0
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:19:35 2026 -0400

    replace CHANGES with CHANGES.adoc + doc/changes

commit ce212046066b3c37ec54ec350e59e8a1f537da11
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:18:09 2026 -0400

    initial change policy update that spells out where the deprecations, obsoletions, and minimally-impacting changes get described (now three separate files)

commit 3b11d7b35d5438a746d0f1e8f0b4026f4f70e2b4
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:15:09 2026 -0400

    deprecations are a standing thing, not a to-do

commit 5af486da3b6abe62f896c74e2d65230a2aeb3503
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:13:55 2026 -0400

    new location of deprecations and obsoletions incoming

commit fb806092e6c2cba38de28ec2063189ce09bb3407
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 17:11:52 2026 -0400

    prep for CHANGES asciidoc migration

commit ea913b060f4f17611b66754ff21edc5c8ad2f603
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:39:02 2026 -0400

    Fix names to avoid collisions with our own definitions
    
    Ah, right, we use those strings to denote full colors not just indices.  Call
    out that they are index positions rather than full-fledged bu_color entities.

commit 37609505db53b46bdc7282669737bbb8ae48ba49
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:29:22 2026 -0400

    List other similar constants in bu/color.h  Removal will have to wait, but we can set up the definitions to use now - go ahead and do so.

commit 9f1148a001a65b071012d5fb0c74ac71fc565a60
Author: Clifford Yapp <238416+starseeker@users.noreply.github.com>
Date:   Thu Jul 2 16:23:57 2026 -0400

    List libbu color.h RED/GRN/BLU for eventual renaming
    
    These are so short and generic I'm not sure a proper CHANGES regex could be set
    up, so I'm just going to list the rename in the deprecation set.

commit b14faadd27a8e49c3eb71b5a2d2b5e89c8bcbd7b
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:57:19 2026 -0400

    recognize scad files

commit 2b7094d26b49ede986e98a157d4a4af3a1dd9ea5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:56:50 2026 -0400

    refactor previous/recent input/atoi refactorings to go through new bu_opt api.
    
    this eliminates the egregious duplication of helper functions (at least mostly) but still needs to be reviewed in detail to ensure values are getting mapped to the right validation range.  there are also some parse*() funcs that still need to be purged, possibly need more libbu work too.

commit 7f011d8b61bab6292ba6f0bdadf610e50bb9476f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:53:25 2026 -0400

    note launcher needs dm and icv

commit f3cbb2a42464405081a3eeb8b0b127643ac0b091
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:52:48 2026 -0400

    implement support for very basic event management.  libfb already had the hooks and events being processed, but this lets them get registered and responded to by a caller.  currently only implemented for X and wgl, wip testing.

commit d5c51f69068f9b3407ff06d8ebfeaba721fcc880
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:50:51 2026 -0400

    add some unit tests for the new color api

commit 72a4de168734760207ce9170ea1975c9747474fd
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:50:30 2026 -0400

    for refactoring all the utils that need bounded range checks, handful of option parse helpers

commit 4fa4e424a1be11d8193cbab0b9c619eb2c94e241
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:49:49 2026 -0400

    elaborate on new color API so we can improve UX allowing more flexible color specs. wip.

commit dcc372615ea33d203e0e62d551fe14f1cf747c1c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:49:17 2026 -0400

    elaborate on new color API so we can improve UX allowing more flexible color specs.  leave a note about hdr.

commit f94a7867d35426b883f520a5c4c82dae5c4fccf8
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:48:36 2026 -0400

    add option parser helpers for common input modalities with range checking

commit c9e3728dc49701c8386ed6f98df2cec3f670e2d3
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:47:47 2026 -0400

    add in very rudimentary event support

commit c1eecd59710a33287cb8b86c2898eff2a76511ae
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:45:28 2026 -0400

    make sure the new iges brep conversions work

commit f643af626233b2909fae93b78d2fea37cb47c610
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:45:09 2026 -0400

    add a scad importer regression test

commit f440e286f7db411030b0b92b6964d3edb5de1c89
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:44:20 2026 -0400

    render a nice environment background by default to differentiate it a bit

commit 1d7b66e04078cfa2962ef1cb113fae3a2c7a05fb
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:43:44 2026 -0400

    fix bug with initial material attributes, set to something sane

commit 1ab863cb5adc9f587bf092d6a54f632b25134903
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:42:01 2026 -0400

    new standalone front-end to adrt that is mostly compatible with rt

commit 77789d3c8d512ab011d8322c4cc9875c20ba9e0c
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:40:57 2026 -0400

    include launcher, but not yet enabling compilation

commit 432df2b7bdc900817833549af303eeb3d56241b5
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:39:41 2026 -0400

    experimental test using libfb as a launcher GUI.  basically works, but needs a lot of work.

commit b96c7c103098bf10d898c9807c91c17a0ab9ec89
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:38:14 2026 -0400

    unreviewed expansion of ap203 import support, including faceted breps

commit 72b25c6f05b77e933f158b6ba53f72a2953b04b9
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:36:36 2026 -0400

    preliminary unreviewed updates to IGES conv greatly expanding nurbs in/out support

commit 98ce81ffb414b3bde360fcaa19e0501e79f0570f
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:34:27 2026 -0400

    add preliminary support for the OpenSCAD .scad file format

commit 11960dc6fcb7b46d86dbebcd6e5e916c38bf23ba
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:31:19 2026 -0400

    new docs on adrt rendering

commit 0a038319bd747b1888e55410ea8a8f2828989093
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 13:30:34 2026 -0400

    add a new article that overviews and compares adrt with rt

commit a70c8fef42407597fb48751d108f225c688d3530
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 01:36:09 2026 -0400

    added a new proc-db that generates seashells/snailshells as demo

commit 736e8681a25914b9dea1e3eaacc3531fd39991e1
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 01:33:30 2026 -0400

    add seashell to our proc-db gallery

commit 39fdda06a7965ab71aa06f28cf5e2f244661cd16
Author: Christopher Sean Morrison <brlcad@gmail.com>
Date:   Thu Jul 2 01:31:39 2026 -0400

    add another interesting new procedural database for making snail/sea shells.
    
    creates them as bots, which is a first for proc-db also, and nice variety addition.
