Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
48be103
improve ci plots
gabrielburnworth May 27, 2026
1f75638
fix fps value ci bug
gabrielburnworth May 27, 2026
bf9e0af
fix visual bugs
gabrielburnworth May 28, 2026
42152d1
increase test coverage
gabrielburnworth May 28, 2026
de39994
improve ci plots
gabrielburnworth May 28, 2026
5441611
fix blinking bot bug upon animation load
gabrielburnworth May 28, 2026
1b908e6
handle partial status updates
gabrielburnworth May 28, 2026
4ca6b64
upgrade deps (fbjs)
gabrielburnworth May 28, 2026
5e52358
prohibit non-string envs
gabrielburnworth May 28, 2026
a691128
reorder release phase commands
gabrielburnworth May 28, 2026
2177bca
upgrade deps (ruby)
gabrielburnworth May 28, 2026
bf2131e
Optimize 3D garden FPS probe reporting by 99.9%
roryaronson May 27, 2026
a63645e
Cache 3D garden plant metadata by slug for 95.3% faster conversion
roryaronson May 27, 2026
a2c6e8b
Replace 3D garden lodash clones for 94.3% faster initialization
roryaronson May 27, 2026
97e15e8
Optimize 3D garden grid generation by 78.2%
roryaronson May 27, 2026
ef4c632
Optimize 3D garden soil point filtering by 55.6%
roryaronson May 27, 2026
b65b255
Optimize 3D garden group-order comparison by 95.9%
roryaronson May 27, 2026
26817d1
Optimize 3D garden weed instance setup by 18.7%
roryaronson May 27, 2026
ec0c4a6
Optimize 3D garden load progress bookkeeping by 66.6%
roryaronson May 27, 2026
71dd0ee
Optimize 3D garden camera marker lookup by 98.8%
roryaronson May 27, 2026
c0a6a66
Optimize 3D garden focus material loops by 29.4%
roryaronson May 27, 2026
d77452b
Optimize 3D garden image overlay split by 23.4%
roryaronson May 27, 2026
9715a69
Optimize 3D garden visualization extraction by 17.7%
roryaronson May 27, 2026
9731f62
Optimize 3D garden plant spread lookup by 22.1%
roryaronson May 27, 2026
4585bc8
Optimize 3D garden plant icon frame time by 99.3%
roryaronson May 27, 2026
cde49d4
Optimize 3D garden moisture point extraction by 26.4%
roryaronson May 27, 2026
593c8b2
Optimize 3D garden preset button traversal by 82.6%
roryaronson May 27, 2026
fc7cb73
Audit 3D garden performance hill climb sanity
roryaronson May 27, 2026
a49f0df
Mount only selected 3D garden scene details for 21.7% fewer objects
roryaronson May 27, 2026
c60523e
Load only rendered 3D garden tool models for 85.3% fewer GLTF calls
roryaronson May 27, 2026
a4fc957
Merge soil sensor geometry for 95.6% fewer draw nodes
roryaronson May 27, 2026
86402d6
Cache FarmBot SVG shape requests for 50.0% fewer loads
roryaronson May 27, 2026
ffb4b2c
Precompute interpolation points for 23.7% faster moisture maps
roryaronson May 27, 2026
8f19056
Instance moisture readings for 81.5% fewer geometries
roryaronson May 27, 2026
56ab2e7
Memoize plant inventory rows for 75.0% fewer renders
roryaronson May 27, 2026
f4ce0db
Memoize 3D garden canvas for 50.0% fewer renders
roryaronson May 27, 2026
9b1688a
Load active ground texture for 16.7% fewer requests
roryaronson May 27, 2026
400353a
Optimize moisture interpolation scan for 94.7% faster maps
roryaronson May 27, 2026
1b52e4b
Build moisture buffers numerically for 88.6% faster setup
roryaronson May 27, 2026
4423289
Select latest interpolation points for 51.7% faster maps
roryaronson May 27, 2026
74b8e35
Share watering texture for 93.8% fewer loads
roryaronson May 27, 2026
7a53f1b
Use camera marker events for 100% fewer raycasts
roryaronson May 27, 2026
8daa6dc
Avoid promo toolbay load for 100% fewer unused model calls
roryaronson May 27, 2026
e63e9d9
Skip v1.8 support models for 100% fewer carrier loads
roryaronson May 27, 2026
0f41dc0
Skip v1.8 LED model for 100% fewer hidden loads
roryaronson May 27, 2026
7bb7c6e
Skip hidden water streams for 100% fewer off callbacks
roryaronson May 27, 2026
7349ceb
Share Bot water texture for 83.3% fewer loads
roryaronson May 27, 2026
45cddfa
Skip hidden pointer preview for 100% fewer setup calls
roryaronson May 27, 2026
9ab4e38
Skip hidden plant spread for 100% fewer spread callbacks
roryaronson May 27, 2026
dd75a62
Cache Bot SVG shapes for 66.7% fewer remount parses
roryaronson May 27, 2026
e5e08b7
Skip focused hidden FarmBot for 100% fewer model loads
roryaronson May 27, 2026
5e666df
Skip hidden grid generation for 100% fewer samples
roryaronson May 27, 2026
9b7c30a
Skip hidden ground setup for 100% fewer texture loads
roryaronson May 27, 2026
bd95744
Replace gantry light callbacks for 100% fewer frames
roryaronson May 27, 2026
f1acde6
Skip hidden plant icons for 100% fewer callbacks
roryaronson May 27, 2026
f0f9f6e
Skip hidden weed instances for 100% fewer callbacks
roryaronson May 27, 2026
b6c44b8
Skip hidden point markers for 100% fewer meshes
roryaronson May 27, 2026
6cb18ac
Skip disabled cable carriers for 100% fewer shapes
roryaronson May 27, 2026
4def90e
Skip disabled carrier supports for 100% fewer shapes
roryaronson May 27, 2026
5166a75
Skip disabled bounds overlays for 100% fewer helpers
roryaronson May 27, 2026
14441c6
Memoize power cable path for 99% fewer additions
roryaronson May 27, 2026
783627a
Load visible toolbay models for 33.3% fewer hooks
roryaronson May 27, 2026
faef1d8
Memoize solenoid paths for 14.2% faster rerenders
roryaronson May 27, 2026
22f5082
Memoize Greenhouse walls for 76.8% faster rerenders
roryaronson May 27, 2026
335f3db
Memoize Bed subtree for 96.5% faster rerenders
roryaronson May 27, 2026
5669d28
Memoize Lab scene for 93.0% faster rerenders
roryaronson May 27, 2026
a3f276e
Memoize Greenhouse scene for 91.4% faster rerenders
roryaronson May 27, 2026
423e25c
Split electronics box internals for 89.6% faster rerenders
roryaronson May 27, 2026
8e3bdf2
Memoize Sun subtree for 87.2% faster rerenders
roryaronson May 27, 2026
0ad2358
Skip tray seedling writes for 98.3% fewer matrices
roryaronson May 27, 2026
7c9e4fb
Skip track-off shape parses for 20.0% fewer SVG shapes
roryaronson May 27, 2026
8221f6f
Skip carrier-off bed rails for 100% fewer supports
roryaronson May 27, 2026
1de9c6b
Skip carrier-off X mount for 100% fewer mount loads
roryaronson May 27, 2026
9481b71
Skip disabled utilities setup for 100% fewer texture hooks
roryaronson May 27, 2026
4935bdb
Skip disabled desk setup for 100% fewer texture hooks
roryaronson May 27, 2026
0547e60
Consolidate suction clouds for 60.0% fewer frame callbacks
roryaronson May 27, 2026
ff27d73
Fast-path focus groups for 40.5% fewer springs
roryaronson May 27, 2026
c34d4f4
Memoize zoom beacons for 96.0% fewer focus builds
roryaronson May 27, 2026
279ba0d
Memoize camera view for 95.2% fewer geometry builds
roryaronson May 27, 2026
3d494f6
Collapse focus camera lookup for 50.0% fewer foci builds
roryaronson May 27, 2026
7ff4d63
Memoize group order for 95.2% fewer selections
roryaronson May 27, 2026
48fe1c1
Render low-detail ground for 100% fewer texture loads
roryaronson May 27, 2026
19143d5
Render low-detail bed for 100% fewer render textures
roryaronson May 27, 2026
02acbeb
Gate 3D load logs for 100% fewer console calls
roryaronson May 27, 2026
c999872
Memoize static utilities for 98.0% fewer texture calls
roryaronson May 27, 2026
2d66cb2
Memoize tool models for 98.0% fewer GLTF calls
roryaronson May 27, 2026
841877e
Reuse empty GardenModel arrays for 69.2% faster rerenders
roryaronson May 27, 2026
28e4f79
Cache soil height lookup for 99.9% faster reads
roryaronson May 27, 2026
dbc4617
Fix soil height cache fallback after 99.9% speedup
roryaronson May 27, 2026
3dca37e
Precompute plant icon positions for 65.6% faster frames
roryaronson May 27, 2026
9500994
Skip hidden 3D Bot layer for 100% fewer GLTF hooks
roryaronson May 27, 2026
d5f7941
Precompute spread placement for 37.5% faster frames
roryaronson May 27, 2026
f1a08cf
Merge point markers for 33.3% fewer draw calls
roryaronson May 27, 2026
6672da3
Add git commit rules to hill climb prompts
roryaronson May 27, 2026
52aef76
reformat hill climb doc
roryaronson May 27, 2026
59fb7e6
Share point ring geometry for 11.6% faster setup
roryaronson May 27, 2026
051a27f
Share weed radius geometry for 14.8% faster setup
roryaronson May 27, 2026
ac23925
Skip duplicate pointer heights for 98.3% fewer calls
roryaronson May 27, 2026
bba8792
Optimize plant icons for 53.2% faster seasonal frames
roryaronson May 27, 2026
2ef0b1d
Memoize 3D soil churn for 56.2% faster rerenders
roryaronson May 27, 2026
e038ac6
Memoize cable carriers for 44.7% faster z batches
roryaronson May 27, 2026
dd04d21
Memoize electronics box for 97.1% faster yz batches
roryaronson May 27, 2026
8d64c04
Memoize point overlay for 99.7% faster config churn
roryaronson May 27, 2026
c1ac5e9
Memoize plant icons for 98.7% faster churn
roryaronson May 27, 2026
ddbf6a3
Split FarmBot statics for 70.2% faster z batches
roryaronson May 27, 2026
8ce7ce8
Memoize weed overlay for 99.7% faster churn batches
roryaronson May 27, 2026
3cc0759
Memoize zoom beacons for 91.4% faster churn
roryaronson May 27, 2026
de9148d
Memoize plant spread setup for 71.1% faster churn
roryaronson May 27, 2026
1956c2c
Memoize group order selection for 78.9% faster churn
roryaronson May 27, 2026
7ac3a5c
Reduce camera-selection marker churn by 95.6%
roryaronson May 27, 2026
963c04d
Memoize gantry beam light work for 90.4% faster yz batches
roryaronson May 27, 2026
f421d5a
Memoize sequence visualization for 99.99% faster churn
roryaronson May 27, 2026
516f153
Index 3D config lookups for 93.9% faster reads
roryaronson May 27, 2026
0293fa8
Scan camera logs in one pass for 90.3% faster churn
roryaronson May 27, 2026
cc984f7
Memoize tools movement path for 48.4% faster rerenders
roryaronson May 27, 2026
6db1805
Memoize bed config churn for 99.1% faster rerenders
roryaronson May 27, 2026
59c8e9b
Memoize bounds for 94.6% faster config churn
roryaronson May 27, 2026
8c6e5a3
Memoize solar hardware for 86.8% faster churn
roryaronson May 27, 2026
731e07f
Skip opaque tool opacity work for 31.3% faster mounts
roryaronson May 27, 2026
7e84d7f
Memoize plant labels for 96.7% faster churn
roryaronson May 27, 2026
af81ef2
Memoize image wrappers for 72.4% faster churn
roryaronson May 27, 2026
8338407
Memoize GardenModel static layers for 71.7% faster telemetry
roryaronson May 27, 2026
b6c1b89
Memoize pointer preview for 91.4% faster churn
roryaronson May 28, 2026
44aa8b8
Memoize Clouds config churn for 72.3% faster updates
roryaronson May 28, 2026
9479ba9
Memoize Sun config churn for 96.5% faster rerenders
roryaronson May 28, 2026
33a2299
Memoize Lab scene churn for 96.2% faster rerenders
roryaronson May 28, 2026
d98afaa
Memoize Greenhouse scene churn for 96.2% faster rerenders
roryaronson May 28, 2026
9cace63
Memoize grid config churn for 99.7% faster rerenders
roryaronson May 28, 2026
6651a02
Memoize ground config churn for 83.2% faster rerenders
roryaronson May 28, 2026
14cafe0
Memoize north arrow churn for 70.3% faster rerenders
roryaronson May 28, 2026
669d5d0
Memoize drawn point churn for 74.7% faster previews
roryaronson May 28, 2026
1060530
Narrow solenoid water paths for 21.3% faster churn
roryaronson May 28, 2026
2694883
Memoize water tubes for 62.8% faster solenoid churn
roryaronson May 28, 2026
29fb075
Memoize camera view churn for 67.7% faster rerenders
roryaronson May 28, 2026
81a32dd
Memoize distance indicators for 92.0% faster rerenders
roryaronson May 28, 2026
c29c4c3
Memoize text labels for 92.3% faster rerenders
roryaronson May 28, 2026
b4d4453
Memoize arrow extrusions for 71.2% faster rerenders
roryaronson May 28, 2026
822a171
Memoize FarmBot axes for 72.7% faster rerenders
roryaronson May 28, 2026
8579adf
Memoize bed casters for 93.6% faster rerenders
roryaronson May 28, 2026
d870c46
Memoize packaging for 94.1% faster rerenders
roryaronson May 28, 2026
bca6c38
Memoize utilities post for 94.1% faster rerenders
roryaronson May 28, 2026
2f97471
Fix memoized extrusion arg types
roryaronson May 28, 2026
0c7da2d
Memoize power supply for 78.6% faster rerenders
roryaronson May 28, 2026
622e123
Memoize camera selection for 66.9% faster rerenders
roryaronson May 28, 2026
fbbdaa8
Memoize desk prop for 93.0% faster rerenders
roryaronson May 28, 2026
7378b56
Memoize people layer for 81.5% faster rerenders
roryaronson May 28, 2026
dcc283d
Memoize potted plant for 81.9% faster rerenders
roryaronson May 28, 2026
62cadd3
Memoize starter trays for 87.9% faster rerenders
roryaronson May 28, 2026
6801f26
Memoize preset buttons for 86.2% faster rerenders
roryaronson May 28, 2026
c166b8d
Memoize person images for 71.5% faster rerenders
roryaronson May 28, 2026
1c1de3f
Memoize X-axis water tube for 86.6% faster rerenders
roryaronson May 28, 2026
ebfe076
Memoize watering animations for 72.3% faster rerenders
roryaronson May 28, 2026
5fcecbc
Memoize moisture readings for 79.7% faster rerenders
roryaronson May 28, 2026
bc19c15
Memoize moisture surface for 95.8% faster rerenders
roryaronson May 28, 2026
532f6a4
Memoize solenoid for 73.0% faster rerenders
roryaronson May 28, 2026
b1e959d
Memoize tools for 94.1% faster rerenders
roryaronson May 28, 2026
8de2b28
Memoize Bot frame for 87.2% faster rerenders
roryaronson May 28, 2026
d98402e
Memoize Bot gantry for 16.1% faster rerenders
roryaronson May 28, 2026
652901e
Memoize Bot toolhead for 85.1% faster rerenders
roryaronson May 28, 2026
f2535c4
Speed up camera log scans for 37.1% faster rerenders
roryaronson May 28, 2026
fd99d5b
Compact plant icon atlas for 61.3% smaller bundle
roryaronson May 28, 2026
9ea3d22
Generate uniform atlas metadata for 70.0% smaller bundle
roryaronson May 28, 2026
fedd5b9
Import direct Three addons for 14.8% smaller 3D bundle
roryaronson May 28, 2026
468bbfd
Extract 3D helper imports for 12.8% smaller bundle
roryaronson May 28, 2026
ba1c6a8
Optimize 3D sequence collection for 100% fewer debug calls and 65.9% …
roryaronson May 28, 2026
9ddbac2
Optimize 3D movement expansion for 96.3% fewer storage reads
roryaronson May 28, 2026
9f10211
Optimize 3D Lua and spread paths by 14.1%, 20.6%, and 33.8%
roryaronson May 28, 2026
45b98a0
Optimize 3D Lua group reads by 20.2%
roryaronson May 28, 2026
92aee28
Optimize 3D moisture and mirrored soil buffers by 60.1% and 29.9%
roryaronson May 28, 2026
2df1bac
Reduce 3D bot part bundle inputs by 97.6%, 93.8%, and 96.5%
roryaronson May 28, 2026
5ed9c1b
Remove 3D electronics box settings import for 100% dependency reduction
roryaronson May 28, 2026
be8c867
Optimize 3D garden image filtering by 99.6%
roryaronson May 28, 2026
27e86c5
Optimize 3D garden plant icon loading by 98.7%
roryaronson May 28, 2026
8e87613
Optimize 3D bed support draw calls by 17.9%
roryaronson May 28, 2026
93c1d13
Optimize 3D entry bundle by 29.5%
roryaronson May 28, 2026
963d4c6
Reduce 3D crop metadata payload by 91.0%
roryaronson May 28, 2026
3072375
Defer 3D Lua visualization payload by 12.1%
roryaronson May 28, 2026
32e0c9b
Optimize 3D weed radius draws by 77.8%
roryaronson May 28, 2026
68d59da
Optimize 3D point draws by 87.5%
roryaronson May 28, 2026
6441a91
Optimize 3D atlas plant icon draws by 97.5%
roryaronson May 28, 2026
77f904f
Optimize 3D greenhouse wall draws by 93.5%
roryaronson May 28, 2026
f94777a
Optimize 3D group-order marker draws by 98.0%
roryaronson May 28, 2026
a648a35
Optimize 3D smooth camera renders by 98.2%
roryaronson May 28, 2026
f7dc915
Optimize 3D soil surface churn by 98.1%
roryaronson May 28, 2026
91defcd
Optimize 3D plant label churn by 100.0%
roryaronson May 28, 2026
cfb3e39
Mark empty 3D layers ready for 100.0% fewer waits
roryaronson May 28, 2026
0e9b87f
Skip no-work 3D wrappers for 100.0% fewer springs
roryaronson May 28, 2026
3a6e0bf
Skip default-off 3D helpers for 100.0% fewer mounts
roryaronson May 28, 2026
e1edfe5
Skip disabled 3D helpers for 100.0% fewer mounts
roryaronson May 28, 2026
c9576ef
Skip unused 3D scene work for up to 70.1% faster renders
roryaronson May 28, 2026
4a55ed3
Skip unnecessary 3D frame work for 100.0% fewer callbacks
roryaronson May 28, 2026
c320415
Skip hidden 3D garden work for 100.0% fewer callbacks
roryaronson May 28, 2026
2b78638
Skip hidden 3D garden subtrees for 49.7% faster renders
roryaronson May 28, 2026
98b3853
Skip hidden 3D scenes for 26.6% faster renders
roryaronson May 28, 2026
3695842
Skip disabled bot work for 14.3% faster renders
roryaronson May 28, 2026
adc2074
Optimize animated sun and ground for 93.6% faster sun lookups
roryaronson May 28, 2026
5a71e19
Optimize shared 3D garden buffers for 89.4% faster sky endpoints
roryaronson May 28, 2026
4775e43
Share 3D garden star and solar geometry for 19.9% faster solar renders
roryaronson May 28, 2026
618a284
Share bed support geometries for 23.2% faster bed renders
roryaronson May 28, 2026
fea61bc
Instance desk legs for 10.3% faster desk renders
roryaronson May 28, 2026
40d1568
Build plant icon instances 15.8% faster with indexed loops
roryaronson May 28, 2026
f4ab90e
Update group order disks 12.1% faster with indexed loop
roryaronson May 28, 2026
f865813
fix missing coverage
roryaronson May 28, 2026
05aac80
reapply vacuum fix
roryaronson May 28, 2026
522d9c4
test fix
roryaronson May 28, 2026
33de446
Merge branch 'staging' into 3d-performance-round-2
roryaronson May 28, 2026
be6df67
Use promo-specific plant icon atlas
roryaronson May 28, 2026
c716c78
fix regressions
roryaronson May 28, 2026
0714d2e
sequence visualization fixes + 30fps demo runs
roryaronson May 29, 2026
aa19525
fix render ordering
roryaronson May 29, 2026
5f641eb
animate bed legs between standard and mobile promo beds
roryaronson May 29, 2026
5db9e01
spring transition between Genesis and XL in promo
roryaronson May 29, 2026
ddb2fd4
spring season changes + play/pause animation button
roryaronson May 29, 2026
6bcfe42
fix fbjs config key handling
roryaronson May 29, 2026
8dd67c2
update ci plots
gabrielburnworth May 29, 2026
ec86dcb
layer animation polish
roryaronson May 29, 2026
84d0278
fix scene metrics recording [skip ci]
gabrielburnworth May 29, 2026
8e90d72
spring spread spheres
roryaronson May 29, 2026
c4cafda
add generic-weed icon to atlas
roryaronson May 29, 2026
46d9022
fix tests
roryaronson May 29, 2026
933fa8b
fix hook notifications [skip ci]
gabrielburnworth May 29, 2026
efd0ea3
hide zoom buttons in 3D
gabrielburnworth May 29, 2026
3c7313f
Merge branch '3d-performance-round-2' into staging
gabrielburnworth May 29, 2026
8dd8494
upgrade deps
gabrielburnworth May 29, 2026
57ddd48
fix bot trail reset bug
gabrielburnworth May 30, 2026
ec715ad
regenerate crop icon atlas
gabrielburnworth May 30, 2026
febde77
fix missing stress account resources
gabrielburnworth May 30, 2026
5961abf
compress crop atlas
gabrielburnworth Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/render.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ jobs:
bun scripts/metric_plot.js "$csv"
done

- name: Combine plots
if: always()
run: |
bun scripts/ci/combine-render-images

- name: Save FPS metrics
uses: actions/cache/save@v5
with:
Expand All @@ -163,7 +168,6 @@ jobs:
name: images
path: |
/tmp/*.png
/tmp/${{ env.FE_COVERAGE_NAME }}.png
if-no-files-found: warn

- name: Upload csv artifacts
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.0.3
4.0.5
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source "https://rubygems.org"
ruby "~> 4.0.3"
ruby "~> 4.0.5"

gem "rails", "~> 8"
gem "active_model_serializers"
Expand Down
14 changes: 7 additions & 7 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ GEM
diff-lcs (1.6.2)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
discard (1.4.0)
activerecord (>= 4.2, < 9.0)
discard (2.0.0)
activerecord (>= 7.0, < 9.0)
docile (1.4.1)
drb (2.2.3)
e2mmap (0.1.0)
Expand Down Expand Up @@ -200,7 +200,7 @@ GEM
prism (>= 1.3.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
json (2.19.5)
json (2.19.7)
jsonapi-renderer (0.2.2)
jwt (3.2.0)
base64
Expand Down Expand Up @@ -357,7 +357,7 @@ GEM
responders (3.2.0)
actionpack (>= 7.0)
railties (>= 7.0)
retriable (3.5.0)
retriable (3.8.0)
rexml (3.4.4)
rollbar (3.8.0)
rspec (3.13.2)
Expand Down Expand Up @@ -397,7 +397,7 @@ GEM
rubocop-ast (1.49.1)
parser (>= 3.3.7.2)
prism (~> 1.7)
rubocop-rails (2.35.2)
rubocop-rails (2.35.3)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
Expand Down Expand Up @@ -511,7 +511,7 @@ DEPENDENCIES
webmock

RUBY VERSION
ruby 4.0.3
ruby 4.0.5

BUNDLED WITH
4.0.10
4.0.12
2 changes: 1 addition & 1 deletion Procfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ worker: bundle exec rake jobs:work
rabbit_workers: bin/rails r lib/rabbit_workers.rb
web: bundle exec passenger start -p $PORT -e $RAILS_ENV --max-pool-size ${MAX_POOL_SIZE:-1} --max-requests ${MAX_REQUESTS:-1000}
# This will perform a hard refresh on all connected browsers.
release: rails r "User.refresh_everyones_ui" && rails db:migrate && (bundle exec rake hook:release_info || true)
release: rails db:migrate && rails r "User.refresh_everyones_ui" && (bundle exec rake hook:release_info || true)
9 changes: 9 additions & 0 deletions app/models/farmware_env.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,13 @@ class FarmwareEnv < ApplicationRecord
belongs_to :device
serialize :value, coder: YAML
validates :key, uniqueness: { scope: :device }
validate :value_is_string

private

def value_is_string
return if value_before_type_cast.is_a?(String)

errors.add(:value, "must be a string")
end
end
2 changes: 1 addition & 1 deletion app/mutations/devices/create_seed_data.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def seeder

def run_seeds!
if demo
Devices::Seeders::DemoAccountSeeder.new(device).before_product_line_seeder
Devices::Seeders::DemoAccountSeeder.new(device).before_product_line_seeder(product_line)
end

seeder.class::COMMAND_ORDER.map do |cmd|
Expand Down
13 changes: 9 additions & 4 deletions app/mutations/devices/seeders/demo_account_seeder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -170,13 +170,14 @@ def marketing_bulletin
# tester FBOS version `1000.0.0`.
READ_COMMENT_ABOVE = "100.0.0"

def before_product_line_seeder
def before_product_line_seeder(product_line)
device
.web_app_config
.update!(
discard_unsaved: true,
three_d_garden: true,
)
stress_data(product_line)&.update_demo_settings
device
.fbos_config
.update!(
Expand All @@ -187,9 +188,8 @@ def before_product_line_seeder

def after_product_line_seeder(product_line)
create_webcam_feed(product_line)
stress_count = Devices::Seeders::StressData.count_for(product_line)
if stress_count
Devices::Seeders::StressData.new(device, stress_count).seed!
if (data = stress_data(product_line))
data.seed!
else
add_plants(product_line)
add_soil_height_points(product_line)
Expand All @@ -210,6 +210,11 @@ def after_product_line_seeder(product_line)
device
.update!(fbos_version: READ_COMMENT_ABOVE)
end

def stress_data(product_line)
stress_count = Devices::Seeders::StressData.count_for(product_line)
Devices::Seeders::StressData.new(device, stress_count) if stress_count
end
end
end
end
31 changes: 15 additions & 16 deletions app/mutations/devices/seeders/stress_data.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,20 @@ def seed!
attach_images(result.rows.flatten)
end
SensorReading.insert_all!(sensor_reading_rows)
update_demo_settings
end

def update_demo_settings
device.update!(max_images_count: count)
device.web_app_config.update!(
show_images: true,
show_points: true,
show_plants: true,
show_sensor_readings: true,
show_moisture_interpolation_map: true,
show_weeds: true,
show_spread: true,
three_d_garden: true,
)
end

private
Expand Down Expand Up @@ -118,7 +131,7 @@ def image_rows
updated_at: timestamp,
device_id: device.id,
attachment_processed_at: timestamp,
meta: { x: x, y: y, z: 0, name: "Stress Image #{i + 1}" }.to_yaml,
meta: { x: x, y: y, z: 0, name: "Stress Image #{i + 1}" },
}
end
end
Expand Down Expand Up @@ -162,20 +175,6 @@ def attach_images(image_ids)
ActiveStorage::Attachment.insert_all!(rows)
end

def update_demo_settings
device.update!(max_images_count: count)
device.web_app_config.update!(
show_images: true,
show_points: true,
show_plants: true,
show_sensor_readings: true,
show_moisture_interpolation_map: true,
show_weeds: true,
show_spread: true,
three_d_garden: true,
)
end

def coordinate(index, x_offset: 0, y_offset: 0)
col_count = Math.sqrt(count).ceil
row_count = (count.to_f / col_count).ceil
Expand Down
2 changes: 1 addition & 1 deletion app/mutations/farmware_envs/create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Create < Mutations::Command
required do
model :device, class: Device
string :key
duck :value, methods: [:to_json]
string :value
end

def validate
Expand Down
2 changes: 1 addition & 1 deletion app/mutations/farmware_envs/update.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class Update < Mutations::Command

optional do
string :key
duck :value, methods: [:to_json]
string :value
end

def execute
Expand Down
32 changes: 9 additions & 23 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docker_configs/api.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ruby:4.0.3
FROM ruby:4.0.5
RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/null
RUN sh -c '. /etc/os-release; echo $VERSION_CODENAME; echo "deb http://apt.postgresql.org/pub/repos/apt/ $VERSION_CODENAME-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql postgresql-contrib lcov
Expand Down
Loading
Loading