From f9223d866b6a39c249ca5bbd3b31053f37cceebb Mon Sep 17 00:00:00 2001 From: gabrielburnworth Date: Wed, 14 May 2025 13:01:26 -0700 Subject: [PATCH 1/3] upgrade deps --- Gemfile.lock | 16 ++++++++-------- package.json | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 949f4fa6a..afd78be42 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -67,7 +67,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - amq-protocol (2.3.3) + amq-protocol (2.3.4) base64 (0.2.0) bcrypt (3.1.20) bigdecimal (3.1.9) @@ -86,7 +86,7 @@ GEM crass (1.0.6) database_cleaner (2.1.0) database_cleaner-active_record (>= 2, < 3) - database_cleaner-active_record (2.2.0) + database_cleaner-active_record (2.2.1) activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) @@ -103,7 +103,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.6.1) + diff-lcs (1.6.2) digest-crc (0.7.0) rake (>= 12.0.0, < 14.0.0) discard (1.4.0) @@ -171,7 +171,7 @@ GEM mutex_m i18n (1.14.7) concurrent-ruby (~> 1.0) - json (2.11.3) + json (2.12.0) jsonapi-renderer (0.2.2) jwt (2.10.1) base64 @@ -193,7 +193,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.24.0) + loofah (2.24.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -245,7 +245,7 @@ GEM hashie (~> 4.1) multi_json (~> 1.15) racc (1.8.1) - rack (2.2.13) + rack (2.2.14) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-cors (2.0.2) @@ -330,7 +330,7 @@ GEM activerecord (>= 4.0.0) railties (>= 4.0.0) secure_headers (7.1.0) - set (1.1.1) + set (1.1.2) signet (0.20.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) @@ -434,4 +434,4 @@ RUBY VERSION ruby 3.3.8p144 BUNDLED WITH - 2.6.8 + 2.6.9 diff --git a/package.json b/package.json index 4f4e084e1..ec6754455 100644 --- a/package.json +++ b/package.json @@ -40,19 +40,19 @@ "@blueprintjs/core": "5.19.0", "@blueprintjs/select": "5.3.20", "@monaco-editor/react": "4.7.0", - "@parcel/transformer-sass": "2.14.4", - "@parcel/transformer-typescript-tsc": "2.14.4", - "@react-spring/three": "9.7.5", + "@parcel/transformer-sass": "2.15.0", + "@parcel/transformer-typescript-tsc": "2.15.0", + "@react-spring/three": "10.0.0", "@react-three/drei": "9.122.0", "@react-three/fiber": "8.18.0", "@rollbar/react": "0.12.1", "@types/lodash": "4.17.16", "@types/markdown-it": "14.1.2", - "@types/node": "22.15.14", + "@types/node": "22.15.18", "@types/promise-timeout": "1.3.3", - "@types/react": "19.1.3", + "@types/react": "19.1.4", "@types/react-color": "3.0.13", - "@types/react-dom": "19.1.3", + "@types/react-dom": "19.1.5", "@types/three": "0.176.0", "@types/ws": "8.18.1", "@xterm/xterm": "5.5.0", @@ -61,15 +61,15 @@ "browser-speech": "1.1.1", "events": "3.3.0", "farmbot": "15.8.11", - "i18next": "25.1.1", + "i18next": "25.1.3", "lodash": "4.17.21", "markdown-it": "14.1.0", "markdown-it-emoji": "3.0.0", "moment": "2.30.1", "monaco-editor": "0.52.2", - "mqtt": "5.12.1", + "mqtt": "5.13.0", "npm": "11.3.0", - "parcel": "2.14.4", + "parcel": "2.15.0", "process": "0.11.10", "promise-timeout": "1.3.0", "punycode": "1.4.1", @@ -78,7 +78,7 @@ "react-color": "2.19.3", "react-dom": "18.3.1", "react-redux": "9.2.0", - "react-router": "7.5.3", + "react-router": "7.6.0", "redux": "5.0.1", "redux-immutable-state-invariant": "2.1.0", "redux-thunk": "3.1.0", @@ -121,9 +121,9 @@ "raf": "3.4.1", "react-addons-test-utils": "15.6.2", "react-test-renderer": "18.3.1", - "sass": "1.87.0", + "sass": "1.88.0", "sass-lint": "1.13.1", - "ts-jest": "29.3.2", + "ts-jest": "29.3.3", "tslint": "5.20.1" } } From dbffc2c92197d091fc2850967f054a9ef677080d Mon Sep 17 00:00:00 2001 From: gabrielburnworth Date: Wed, 14 May 2025 14:14:18 -0700 Subject: [PATCH 2/3] change deadzone defaults --- db/migrate/20250514203443_change_deadzone_default.rb | 6 ++++++ db/structure.sql | 7 ++++--- frontend/__test_support__/fake_state/resources.ts | 4 ++-- frontend/settings/hardware_settings/default_values.ts | 4 ++-- 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20250514203443_change_deadzone_default.rb diff --git a/db/migrate/20250514203443_change_deadzone_default.rb b/db/migrate/20250514203443_change_deadzone_default.rb new file mode 100644 index 000000000..d8e89f32c --- /dev/null +++ b/db/migrate/20250514203443_change_deadzone_default.rb @@ -0,0 +1,6 @@ +class ChangeDeadzoneDefault < ActiveRecord::Migration[6.1] + def change + change_column_default(:firmware_configs, :movement_calibration_deadzone_x, from: 50, to: 250) + change_column_default(:firmware_configs, :movement_calibration_deadzone_y, from: 50, to: 250) + end +end diff --git a/db/structure.sql b/db/structure.sql index 8576fe8b4..948a6db75 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -716,8 +716,8 @@ CREATE TABLE public.firmware_configs ( movement_calibration_retry_x integer DEFAULT 1, movement_calibration_retry_y integer DEFAULT 1, movement_calibration_retry_z integer DEFAULT 1, - movement_calibration_deadzone_x integer DEFAULT 50, - movement_calibration_deadzone_y integer DEFAULT 50, + movement_calibration_deadzone_x integer DEFAULT 250, + movement_calibration_deadzone_y integer DEFAULT 250, movement_calibration_deadzone_z integer DEFAULT 250, movement_axis_stealth_x integer DEFAULT 1, movement_axis_stealth_y integer DEFAULT 1, @@ -3982,6 +3982,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20241203194030'), ('20241203211516'), ('20250221191831'), -('20250502201109'); +('20250502201109'), +('20250514203443'); diff --git a/frontend/__test_support__/fake_state/resources.ts b/frontend/__test_support__/fake_state/resources.ts index f63a482b5..5d23a96b9 100644 --- a/frontend/__test_support__/fake_state/resources.ts +++ b/frontend/__test_support__/fake_state/resources.ts @@ -429,8 +429,8 @@ export function fakeFirmwareConfig(): TaggedFirmwareConfig { movement_axis_stealth_x: 0, movement_axis_stealth_y: 0, movement_axis_stealth_z: 0, - movement_calibration_deadzone_x: 50, - movement_calibration_deadzone_y: 50, + movement_calibration_deadzone_x: 250, + movement_calibration_deadzone_y: 250, movement_calibration_deadzone_z: 250, movement_calibration_retry_x: 3, movement_calibration_retry_y: 3, diff --git a/frontend/settings/hardware_settings/default_values.ts b/frontend/settings/hardware_settings/default_values.ts index 12df6305c..7611257c4 100644 --- a/frontend/settings/hardware_settings/default_values.ts +++ b/frontend/settings/hardware_settings/default_values.ts @@ -33,8 +33,8 @@ const DEFAULT_FIRMWARE_CONFIG_VALUES: Record = movement_axis_stealth_x: 1, movement_axis_stealth_y: 1, movement_axis_stealth_z: 1, - movement_calibration_deadzone_x: 50, - movement_calibration_deadzone_y: 50, + movement_calibration_deadzone_x: 250, + movement_calibration_deadzone_y: 250, movement_calibration_deadzone_z: 250, movement_calibration_retry_x: 1, movement_calibration_retry_y: 1, From 7ebb26a3ab2d570649ef63b63e2f2231d35d20fc Mon Sep 17 00:00:00 2001 From: gabrielburnworth Date: Wed, 14 May 2025 14:40:16 -0700 Subject: [PATCH 3/3] limit click events when 3D objects are not visible --- frontend/three_d_garden/garden/__tests__/point_test.tsx | 1 + frontend/three_d_garden/garden/__tests__/weed_test.tsx | 1 + frontend/three_d_garden/garden/point.tsx | 3 ++- frontend/three_d_garden/garden/weed.tsx | 3 ++- frontend/three_d_garden/garden_model.tsx | 2 ++ 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/three_d_garden/garden/__tests__/point_test.tsx b/frontend/three_d_garden/garden/__tests__/point_test.tsx index 05a3d8fa2..2830285a0 100644 --- a/frontend/three_d_garden/garden/__tests__/point_test.tsx +++ b/frontend/three_d_garden/garden/__tests__/point_test.tsx @@ -16,6 +16,7 @@ describe("", () => { const fakeProps = (): PointProps => ({ config: clone(INITIAL), point: fakePoint(), + visible: true, }); it("renders", () => { diff --git a/frontend/three_d_garden/garden/__tests__/weed_test.tsx b/frontend/three_d_garden/garden/__tests__/weed_test.tsx index b70a08581..f50284035 100644 --- a/frontend/three_d_garden/garden/__tests__/weed_test.tsx +++ b/frontend/three_d_garden/garden/__tests__/weed_test.tsx @@ -12,6 +12,7 @@ describe("", () => { const fakeProps = (): WeedProps => ({ config: clone(INITIAL), weed: fakeWeed(), + visible: true, }); it("renders", () => { diff --git a/frontend/three_d_garden/garden/point.tsx b/frontend/three_d_garden/garden/point.tsx index 9cff3a74e..085679689 100644 --- a/frontend/three_d_garden/garden/point.tsx +++ b/frontend/three_d_garden/garden/point.tsx @@ -31,6 +31,7 @@ export interface PointProps { point: TaggedGenericPointer; config: Config; dispatch?: Function; + visible: boolean; } export const Point = (props: PointProps) => { @@ -46,7 +47,7 @@ export const Point = (props: PointProps) => { z: -config.soilHeight, }} onClick={() => { - if (point.body.id && !isUndefined(props.dispatch) && + if (point.body.id && !isUndefined(props.dispatch) && props.visible && !HOVER_OBJECT_MODES.includes(getMode())) { props.dispatch(setPanelOpen(true)); navigate(Path.points(point.body.id)); diff --git a/frontend/three_d_garden/garden/weed.tsx b/frontend/three_d_garden/garden/weed.tsx index c1573da12..dfe852175 100644 --- a/frontend/three_d_garden/garden/weed.tsx +++ b/frontend/three_d_garden/garden/weed.tsx @@ -18,6 +18,7 @@ export interface WeedProps { weed: TaggedWeedPointer; config: Config; dispatch?: Function; + visible: boolean; } export const Weed = (props: WeedProps) => { @@ -27,7 +28,7 @@ export const Weed = (props: WeedProps) => { pointName={"" + weed.body.id} alpha={1} onClick={() => { - if (weed.body.id && !isUndefined(props.dispatch) && + if (weed.body.id && !isUndefined(props.dispatch) && props.visible && !HOVER_OBJECT_MODES.includes(getMode())) { props.dispatch(setPanelOpen(true)); navigate(Path.weeds(weed.body.id)); diff --git a/frontend/three_d_garden/garden_model.tsx b/frontend/three_d_garden/garden_model.tsx index 0235e861c..8ec014bed 100644 --- a/frontend/three_d_garden/garden_model.tsx +++ b/frontend/three_d_garden/garden_model.tsx @@ -169,6 +169,7 @@ export const GardenModel = (props: GardenModelProps) => { {props.mapPoints?.map(point => )} @@ -177,6 +178,7 @@ export const GardenModel = (props: GardenModelProps) => { {props.weeds?.map(weed => )}