What's Changed
- chore(release): record v0.23.0 publication by @Pravin-surawase in #698
- fix(automation): finish remaining audit batches by @Pravin-surawase in #695
- ci(deps): bump the github-actions group across 1 directory with 4 updates by @dependabot[bot] in #692
- fix(ci): pin mypy before 2.x migration by @Pravin-surawase in #699
- fix(ci): constrain numpy for Python 3.11 typing by @Pravin-surawase in #700
- docs(maintenance): close post-release session by @Pravin-surawase in #701
- fix(agents): use versioned session handoff by @Pravin-surawase in #702
- fix(health): resolve Python in linked worktrees by @Pravin-surawase in #703
- docs(product): professionalize public project presentation by @Pravin-surawase in #704
- docs(product): add branded social preview by @Pravin-surawase in #705
- feat: complete adoption and trust surface by @Pravin-surawase in #707
- chore(deps): align Python 3.11 compatibility by @Pravin-surawase in #708
- chore(deps): update compatible React packages by @Pravin-surawase in #709
- docs(governance): allow green in-scope PR merges by @Pravin-surawase in #710
- fix(deps): guard Python 3.11 compatibility by @Pravin-surawase in #712
- docs(ui): activate UIX-001 Session 1 by @Pravin-surawase in #718
- feat(ui): establish Session 1 workbench foundations by @Pravin-surawase in #719
- feat(ui): complete revision-safe 3D workbench session by @Pravin-surawase in #720
- feat(ui): complete capability workbench by @Pravin-surawase in #721
- chore(maintenance): refresh clean baseline by @Pravin-surawase in #722
- test(fastapi): gate slow/performance assertions by markers by @Pravin-surawase in #729
- feat(beam): integrate primary torsion route by @Pravin-surawase in #726
- feat(column): complete rectangular review workflow by @Pravin-surawase in #725
- feat(is456): complete bounded solid slab workflows by @Pravin-surawase in #724
- chore(alpha): integrate beam column slab and footing preservation lane by @Pravin-surawase in #730
- chore(footing): preserve isolated footing workbench implementation by @Pravin-surawase in #727
- docs(release): preserve slab planning and release guard baseline by @Pravin-surawase in #728
- docs(release): document Alpha version policy by @Pravin-surawase in #731
- fix(release): harden 0.23.1a1 candidate verification by @Pravin-surawase in #732
- fix(release): harden Alpha publication closeout by @Pravin-surawase in #733
- chore(agents): establish bounded Spark work program by @Pravin-surawase in #734
- docs(git): start governance research program by @Pravin-surawase in #735
- feat(workflow): recover lane-safe task intake by @Pravin-surawase in #736
- docs(git): close workflow recovery packet by @Pravin-surawase in #737
- feat(is456): add benchmarked experimental column PMM surface by @Pravin-surawase in #738
- docs(is456): close column PMM recovery by @Pravin-surawase in #739
- docs(git): capture PMM recovery lessons by @Pravin-surawase in #740
- docs(git): reconcile future work plan by @Pravin-surawase in #741
- docs(git): record future plan merge receipt by @Pravin-surawase in #742
- docs(git): complete GIT-001 Phase 1 lifecycle research by @Pravin-surawase in #743
- feat(git): add worktree-aware state kernel by @Pravin-surawase in #744
- ci(git): require control-plane and docs validation by @Pravin-surawase in #745
- fix(git): route targeted index generation by @Pravin-surawase in #746
- feat(git): add inspection-only branch disposition by @Pravin-surawase in #747
- docs(git): record GIT-7D2 closeout lessons by @Pravin-surawase in #748
- docs(git): reconcile GIT-7D cleanup evidence by @Pravin-surawase in #749
- docs(git): propose exact branch retirement holds by @Pravin-surawase in #750
- feat(git): add semantic handoff receipts by @Pravin-surawase in #751
- docs(git): add compact audited orchestrator workflow by @Pravin-surawase in #752
- feat(governance): establish Indian-code truth baseline by @Pravin-surawase in #753
- feat(is456): add composed T-beam route by @Pravin-surawase in #754
- docs(is456): close column layout decisions by @Pravin-surawase in #755
- feat(is456): publish composed footing workflow by @Pravin-surawase in #756
- feat(is456): close slab design boundaries by @Pravin-surawase in #757
- test(ci): reconcile cumulative INDIA-1 gates by @Pravin-surawase in #758
- docs(planning): prepare INDIA-2 launch by @Pravin-surawase in #759
- docs(is456): freeze INDIA-2 staircase scope by @Pravin-surawase in #760
- feat(is456): add staircase geometry and actions by @Pravin-surawase in #761
- feat(is456): add bounded staircase design checks by @Pravin-surawase in #762
- feat(is456): publish bounded staircase workflow by @Pravin-surawase in #763
- test(ci): reconcile cumulative INDIA-2 gates by @Pravin-surawase in #764
- docs(git): preserve primary session audit by @Pravin-surawase in #765
- docs(planning): reconcile Indian-code completion waves by @Pravin-surawase in #766
- docs(planning): add INDIA-2 execution plan by @Pravin-surawase in #767
- docs(is456): freeze INDIA-2 wall scope by @Pravin-surawase in #768
- feat(is456): add braced wall axial kernel by @Pravin-surawase in #769
- feat(is456): check wall reinforcement by @Pravin-surawase in #770
- feat(api): publish braced wall workflow by @Pravin-surawase in #771
- feat(api): publish braced wall endpoint by @Pravin-surawase in #772
- test(is456): accept braced wall family by @Pravin-surawase in #773
- docs(is456): freeze deep beam scope by @Pravin-surawase in #774
- feat(is456): add deep beam geometry kernel by @Pravin-surawase in #775
- feat(is456): check deep beam reinforcement by @Pravin-surawase in #776
- feat(api): publish deep beam workflow by @Pravin-surawase in #777
- feat(api): publish deep beam endpoint by @Pravin-surawase in #778
- test(is456): accept deep beam family by @Pravin-surawase in #779
- docs(is456): freeze flat slab scope by @Pravin-surawase in #780
- feat(is456): add flat slab geometry kernel by @Pravin-surawase in #781
- feat(is456): add flat slab moment distribution by @Pravin-surawase in #782
- feat(is456): check flat slab reinforcement by @Pravin-surawase in #783
- feat(is456): check flat slab punching by @Pravin-surawase in #784
- feat(is456): publish flat slab workflow by @Pravin-surawase in #785
- test(is456): accept flat slab family by @Pravin-surawase in #786
- docs(is456): freeze combined footing scope by @Pravin-surawase in #787
- feat(is456): add combined footing action kernel by @Pravin-surawase in #788
- feat(is456): add combined footing strength checks by @Pravin-surawase in #789
- feat(is456): publish combined footing Python workflow by @Pravin-surawase in #790
- feat(api): publish combined footing workflow by @Pravin-surawase in #791
- test(is456): accept combined footing family by @Pravin-surawase in #792
- docs(is456): decide strap footing scope by @Pravin-surawase in #793
- feat(footing): add bounded strap analysis by @Pravin-surawase in #794
- feat(footing): add strap strength checks by @Pravin-surawase in #795
- feat(footing): publish strap Python workflow by @Pravin-surawase in #796
- feat(api): publish strap footing workflow by @Pravin-surawase in #797
- test(is456): accept strap footing family by @Pravin-surawase in #798
- docs(planning): sequence Git and issue repairs by @Pravin-surawase in #799
- docs(planning): deepen next INDIA-2 execution handoff by @Pravin-surawase in #800
- docs(git): close phase 8 adoption by @Pravin-surawase in #801
- fix(docs): enforce frontmatter validation by @Pravin-surawase in #802
- fix(is456): correct beam flexure source truth by @Pravin-surawase in #803
- docs(is456): hold pile-cap implementation gate by @Pravin-surawase in #804
- docs(is456): hold raft implementation gate by @Pravin-surawase in #805
- test(is456): close cumulative INDIA-2 gates by @Pravin-surawase in #806
- docs(git): audit post-INDIA2 cleanup candidates by @Pravin-surawase in #807
- docs(git): record post-INDIA2 cleanup execution by @Pravin-surawase in #808
- chore(maintenance): compact post-INDIA2 governance state by @Pravin-surawase in #809
- fix(governance): make index freshness deterministic by @Pravin-surawase in #810
- fix(governance): ignore hidden index artifacts by @Pravin-surawase in #811
- docs(governance): plan pre-release input safety by @Pravin-surawase in #812
- docs(governance): batch verification after implementation by @Pravin-surawase in #813
- fix(batch): enforce strict project beam input by @Pravin-surawase in #814
- fix(safety): complete LIB-PRO-002 A-G readiness gates by @Pravin-surawase in #815
- docs(planning): close remaining publication blockers by @Pravin-surawase in #818
- fix(cli): enforce strict lossless design intake by @Pravin-surawase in #819
- fix(release): converge hosted and preflight signals by @Pravin-surawase in #820
- chore(release): prepare 0.23.1a2 by @Pravin-surawase in #821
- feat(api): freeze canonical truth and transport contract by @Pravin-surawase in #822
- fix(contracts): close lossless intake and load semantics by @Pravin-surawase in #823
- feat(gravity): add V1 model and load ledger by @Pravin-surawase in #824
- feat(gravity): add Building Gravity Workflow V1 by @Pravin-surawase in #825
- feat(excel): deliver Routine Workbench V1 by @Pravin-surawase in #830
- docs(excel): record E1 G3 closeout and next work by @Pravin-surawase in #831
- fix(safety): close public numeric boundaries by @Pravin-surawase in #832
- fix(safety): enforce public route domains by @Pravin-surawase in #833
- fix(safety): structure public failure contracts by @Pravin-surawase in #834
- ci(safety): make public route audit gates decisive by @Pravin-surawase in #835
- fix(is456): enforce lower-level safety boundaries by @Pravin-surawase in #836
- fix(safety): close confirmed release blockers by @Pravin-surawase in #837
- chore(maint): repair developer gate hygiene by @Pravin-surawase in #838
- refactor: add canonical control registry (MAINT-012A) by @Pravin-surawase in #840
- refactor(maint): retire generated indexes by @Pravin-surawase in #841
- refactor(ci): add exact verification evidence by @Pravin-surawase in #842
- refactor(control-plane): consolidate scanners and scripts by @Pravin-surawase in #843
- refactor(governance): make file operations transactional by @Pravin-surawase in #844
- fix(governance): make efficiency controls executable by @Pravin-surawase in #845
- chore(governance): measure session efficiency end to end by @Pravin-surawase in #846
- docs(governance): freeze cleanup authorization inventory by @Pravin-surawase in #847
- docs(governance): complete approved MAINT-0133 cleanup by @Pravin-surawase in #848
- docs(india-3): establish private source library boundary by @Pravin-surawase in #849
- chore(governance): consolidate agent instruction contract by @Pravin-surawase in #850
- feat(gravity): improve workflow usability foundation by @Pravin-surawase in #851
- docs(product): freeze product foundation contracts by @Pravin-surawase in #852
- fix(optimization): make beam cost contract truthful by @Pravin-surawase in #853
- feat(beam): evaluate supplied reinforcement truth by @Pravin-surawase in #854
- feat(footing): evaluate supported end anchorage by @Pravin-surawase in #855
- feat(gravity): reconcile explicit practical actions by @Pravin-surawase in #856
- feat(import): add canonical ETABS exported snapshot by @Pravin-surawase in #857
- fix(parity): preserve canonical cross-surface identity by @Pravin-surawase in #858
- refactor(api): converge compatibility surfaces by @Pravin-surawase in #859
- fix(m0): close cumulative product acceptance by @Pravin-surawase in #860
- docs(india-3): freeze G0 truth-audit readiness by @Pravin-surawase in #861
- fix(safety): close pre-INDIA-3 validation gaps by @Pravin-surawase in #862
- docs(india3): freeze IS 13920 G0 decision by @Pravin-surawase in #863
- docs(india3): repair private source metadata by @Pravin-surawase in #864
- fix(is13920): repair joint scwb contract by @Pravin-surawase in #866
- fix(is13920): repair beam ductility contract by @Pravin-surawase in #867
- fix(is13920): repair column confinement contract by @Pravin-surawase in #868
- test(is13920): accept bounded cumulative contracts by @Pravin-surawase in #869
- fix(safety): close bounded release trust gaps by @Pravin-surawase in #870
- chore(release): prepare bounded v0.24.0a1 candidate by @Pravin-surawase in #871
- fix(release): stabilize exact hosted verification by @Pravin-surawase in #872
- fix(release): streamline next publication by @Pravin-surawase in #873
- chore(maintenance): freeze cleanup preservation evidence by @Pravin-surawase in #874
- chore(maintenance): integrate completed cleanup phases by @Pravin-surawase in #875
- docs(plan): consolidate external API remediation and renewal audit by @Pravin-surawase in #876
- fix(api): close LIB-PRO-012 S0 P0 safety gaps by @Pravin-surawase in #877
- fix(api): close post-merge S0 transport gaps by @Pravin-surawase in #878
- docs(audit): freeze LIB-PRO-013 A0 renewal findings by @Pravin-surawase in #879
- feat(api): converge canonical beam contract by @Pravin-surawase in #880
- docs(governance): record Windows evidence lane readiness by @Pravin-surawase in #881
- feat(api): converge IS 456 family facades by @Pravin-surawase in #882
- docs(governance): bind Windows lane to accepted F0 by @Pravin-surawase in #883
- feat(api): close R0 external preview candidate by @Pravin-surawase in #884
- fix(governance): close post-R0 cumulative audit by @Pravin-surawase in #885
- chore(release): prepare v0.24.0 normal release by @Pravin-surawase in #886
Full Changelog: v0.23.0...v0.24.0