Commit History

  1. [TEST] Add stress tests and edge case coverage for optimisation engine

    3c03f4c
  2. [FIX] Section intro tab4_optimization -> tab4_optimisation

    38824e6
  3. [DOCS] Example Afforestation -> Afforestation/reforestation + Warning case 2 OR relationship between same 'Resource group'

    2601bda
  4. [DOCS] British spelling in README: optimizer → optimiser (conflicts)

    1e21d3a
  5. [DATA] British spelling in inputs: Bio-char → Biochar, Mineralization → Mineralisation

    faa56c7
  6. [UX] British spelling: rename optimization → optimisation throughout code (conflict resolve)

    7a80c0b
  7. [DOCS] Update README for non-dev maintenance

    8bd0ff2
  8. [FIX/UX] Style comparison loader button and update ui_text.xlsx content (text displayed in the app, which can be edited directly in this file)

    f47cede
  9. [FEAT] Add OR-substitutable resource family pools and rename inputs.csv

    60dd41c

  1. [FEAT] Replace hardcoded tab intros and method disabled notes with ui_text.xlsx; fix slider negative min

    afbc8e6

  1. [FEAT] Replace hardcoded tab intros and method disabled notes with ui_text.xlsx; fix slider negative min

    7b4d13c

  1. Upload tooltips.xlsx

    Verified signature
    a78bf83
  2. [UX] tab6_scenarios.py: British spelling (optimization -> optimisation)

    Verified signature
    32a7ddb
  3. [UX] tab5_sensitivity.py: British spelling (optimization -> optimisation)

    Verified signature
    36f6d34
  4. [UX] tab4_optimization.py: British spelling (Optimization -> Optimisation)

    Verified signature
    d97c756
  5. [UX] tab3_coefficients.py: British spelling (optimization -> optimisation)

    Verified signature
    9c8e6e3
  6. [UX] tab2_constraints.py: British spelling (optimization -> optimisation)

    Verified signature
    df3fbfb
  7. [UX] tab1_inputs.py: British spelling (optimization -> optimisation)

    Verified signature
    dfc122b
  8. [UX] tab0_welcome.py: British spelling (optimize -> optimise, optimization -> optimisation)

    Verified signature
    e36f314
  9. [UX] data: British spelling (Bio-char -> Biochar, Mineralization -> Mineralisation)

    Verified signature
    76b0ff3
  10. [UX] app.py: British spelling (Optimizer -> Optimiser, Optimization -> Optimisation)

    Verified signature
    90b7366
  11. [DOC] README: British spelling (optimization -> optimisation, optimizer -> optimiser)

    Verified signature
    f3941ec

  1. [FIX] Resolve percent caps against each method's standalone potential⁠

    358d27e
  2. [FIX] Fix cap value precision: show 4 decimal places in absolute cap inputs and displays across tab2, tab4, and data_utils

    d3a0799
  3. [FIX/FEAT] Move bottleneck analysis from tab4 to tab5, add chart interpretation captions to both tabs

    4881129
  4. [UX] address user feedback: per-year template text and column header, more visible "Add resource" button, fixed next-tab navigation on all pages, updated method constraints intro text

    20f0fcc
  5. [FIX] welcome: update intro text for target audience, style 'Let's get started...' with gradient, add page bottom padding globally

    848c8a3

  1. [REFACTOR] state_utils: remove apply_auto_disable_logic, replaced by refresh_active_methods in tab2

    03d4cf5
  2. [FIX] tab6: source resource list from resource_usage (not resource_caps) to include custom batches, fix resource usage computation, remove broken CSV export

    cf283fb
  3. [FIX] tab5: exclude zero-cap resources and inactive methods from sensitivity selectors, remove redundant session state guards

    36d3ed3
  4. [FIX] tab4: fix heatmap zero-display for tiny values, remove unused imports and redundant session state inits

    8006bee
  5. [REFACTOR] tab2: extract refresh_active_methods from _sync_constraint_widgets so it can be called without visiting Tab 2

    396f68b
  6. [REFACTOR] tab1: replace apply_auto_disable_logic with refresh_active_methods, remove redundant resource_caps init

    43a73a8
  7. [FIX] tab3: add early return for zero-cap resources, simplify availability messages, remove unused has_custom_batch param

    d8dcaa3
  8. [FIX] app: initialize session state at app level to prevent crashes on direct tab navigation

    6b18587

  1. [FEAT] utils: add run_expanded_optimization (LP pipeline for tab5), add resource_caps_to_excel_bytes, increase number precision in render_resource_input

    e391f61
  2. [FIX] tab6: filter hidden Other resources, apply CRRA chart style, register chart data, fix tab name

    fd0b601
  3. [FIX] tab5: switch to run_expanded_optimization, filter hidden resources, expose Other method variants in method selector

    b98d5cb
  4. [FIX] tab4: cap heatmap percentages at 100%, show percentages instead of exact values in chart data table

    03b9c64
  5. [FIX] tab2: deactivate methods whose resource is unchecked in the Tab 1 popover, fix status display (red) and hint text

    132dee6
  6. [FEAT/FIX] tab1: add load/download standard resources buttons, fix stale costs on edit/delete/reset, increase number precision

    84fd744
  7. [DOC] README: fix tab name, add tabs overview, custom resources, scenarios, Case 9, and missing data scripts

    c0da4ca

  1. [FEAT] optimization: add tiebreak pass to prefer the more efficient resource in standard/custom pooling pairs

    f666cf8
  2. [FIX] tab2: new resource batches now cover named standard resources, not only hidden "Other" ones

    af9a933

  1. [FIX] method automatically activated

    7e4de95

  1. Update app.py

    Verified signature
    1b93b33
  2. Update app.py

    Verified signature
    bd9c5ae
  3. [REFACTOR] utils: centralize helpers — add state_utils, move render_resource_input to ui_helpers, consolidate data_utils

    2c0702f
  4. [FEAT/FIX] tab4: fix variant deactivation on ZIP reload, relocate helpers to utils, add persistent Reset tab

    551ebbf
  5. [REFACTOR] tab3: relocate normalize_costs, get_slider_params, is_method_enabled, is_custom_secondary to data_utils; show summary table even when no active method

    4eda649