Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3d379ff
update hook task
gabrielburnworth Sep 3, 2025
059808f
Merge pull request #1 from FarmBot/staging
ncnynl Sep 8, 2025
62abb2e
Update zh.json
ncnynl Sep 8, 2025
b8fbb18
add 3D point group order visual
gabrielburnworth Sep 11, 2025
e2cba06
improve point group ui
gabrielburnworth Sep 16, 2025
8705977
combine jobs and logs tabs
roryaronson Sep 17, 2025
a877dce
table height adjustments
roryaronson Sep 17, 2025
596b7be
add option to demo the app to login page
roryaronson Sep 17, 2025
d62cf06
minor style improvements
roryaronson Sep 17, 2025
6d7c94a
log filter menu fixes
roryaronson Sep 17, 2025
32c4685
dry up demo seed data selector
roryaronson Sep 17, 2025
bc93e18
dry up demoButton
roryaronson Sep 18, 2025
e63d8c8
add order number to farmbot info
roryaronson Sep 18, 2025
3c0b67c
better setup wizard icons and hierarchy
roryaronson Sep 18, 2025
10712a8
add setup wizard button to settings cog menu
roryaronson Sep 18, 2025
4ab3a88
add logout button to connectivity popup
roryaronson Sep 18, 2025
6a895fe
status ticker fix
roryaronson Sep 18, 2025
77dd317
move dark mode toggle to settings panel
roryaronson Sep 18, 2025
75cf2ac
move app version to settings panel
roryaronson Sep 18, 2025
bc3c0e9
remove account menu
roryaronson Sep 18, 2025
99ddb8d
update tests
roryaronson Sep 18, 2025
96fa1b0
fix <html> element does not have a [lang] attribute
roryaronson Sep 18, 2025
c580ae2
fix aria attributes
roryaronson Sep 18, 2025
646e1ba
add missing image alt texts
roryaronson Sep 18, 2025
35c1d7e
improve contrast
roryaronson Sep 18, 2025
a73bc70
skip to main content link
roryaronson Sep 18, 2025
5adff97
font swap fallbacks and font variables
roryaronson Sep 18, 2025
519baff
more font cleanup
roryaronson Sep 18, 2025
77c28d4
lint
roryaronson Sep 18, 2025
4ecbe59
fix test
roryaronson Sep 18, 2025
c7c4f7b
test undefined language
roryaronson Sep 18, 2025
d2b320a
add device name fallback test
roryaronson Sep 19, 2025
eaae6be
Merge pull request #2499 from FarmBot/codex-work
roryaronson Sep 19, 2025
86c9d8a
fix motor position and load visibility on demo accounts
gabrielburnworth Sep 23, 2025
c6c41f1
remove unused jobs panel tab state
gabrielburnworth Sep 23, 2025
3c41802
upgrade deps
gabrielburnworth Sep 23, 2025
ebbbbe3
Initial plan
Copilot Sep 23, 2025
dfa8a16
Increase demo account throttling to 50 requests per hour
Copilot Sep 23, 2025
4448740
add and update draco decoder files
gabrielburnworth Sep 24, 2025
55bb95e
fix src location of editor lua language
gabrielburnworth Sep 24, 2025
1c723c1
Delete spec/config/initializers/rack_attack_spec.rb
roryaronson Sep 24, 2025
ec07b07
Merge branch 'staging' into copilot/fix-bf625bd5-05b1-43bd-88c8-5fd10…
roryaronson Sep 24, 2025
db721cc
Merge pull request #2500 from FarmBot/copilot/fix-bf625bd5-05b1-43bd-…
roryaronson Sep 24, 2025
068015a
Merge branch 'staging' into staging
roryaronson Sep 24, 2025
0b37fbe
Merge pull request #2497 from ncnynl/staging
roryaronson Sep 24, 2025
0897f17
move soil height default from seeder to db
gabrielburnworth Sep 25, 2025
25ff4fb
adjust cards and fix box top buttons
gabrielburnworth Sep 26, 2025
03c9c4d
create and use account_seeded_at field
gabrielburnworth Oct 1, 2025
82575de
remove box LEDs from v1.8
gabrielburnworth Oct 3, 2025
38fb88b
make more configs available
gabrielburnworth Oct 3, 2025
b2a8645
upgrade deps
gabrielburnworth Oct 7, 2025
84b536d
add photos to 3D garden
gabrielburnworth Oct 31, 2025
025d5e3
upgrade deps
gabrielburnworth Oct 31, 2025
9ad2174
fix image highlight blinking issue
gabrielburnworth Oct 31, 2025
47572f5
fix image loading issue
gabrielburnworth Oct 31, 2025
b8b328b
fix release notification issue
gabrielburnworth Oct 31, 2025
b4c37bb
improve release notifications
gabrielburnworth Oct 31, 2025
cf8b6ba
upgrade deps (ruby)
gabrielburnworth Oct 31, 2025
ce54d31
fix mobile bed shadow
gabrielburnworth Oct 31, 2025
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
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.4.5
3.4.7
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 "~> 3.4.5"
ruby "~> 3.4.7"

gem "rails", "~> 6"
gem "active_model_serializers"
Expand Down
75 changes: 38 additions & 37 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ GEM
amq-protocol (2.3.4)
base64 (0.3.0)
bcrypt (3.1.20)
benchmark (0.4.1)
bigdecimal (3.2.2)
benchmark (0.5.0)
bigdecimal (3.3.1)
builder (3.3.0)
bunny (2.24.0)
amq-protocol (~> 2.3)
Expand All @@ -81,7 +81,7 @@ GEM
climate_control (1.2.0)
coderay (1.1.3)
concurrent-ruby (1.3.5)
crack (1.0.0)
crack (1.0.1)
bigdecimal
rexml
crass (1.0.6)
Expand All @@ -91,7 +91,7 @@ GEM
activerecord (>= 5.a)
database_cleaner-core (~> 2.0)
database_cleaner-core (2.0.1)
date (3.4.1)
date (3.5.0)
declarative (0.0.20)
delayed_job (4.1.13)
activesupport (>= 3.0, < 9.0)
Expand All @@ -113,34 +113,34 @@ GEM
drb (2.2.3)
e2mmap (0.1.0)
erubi (1.13.1)
factory_bot (6.5.5)
factory_bot (6.5.6)
activesupport (>= 6.1.0)
factory_bot_rails (6.5.0)
factory_bot_rails (6.5.1)
factory_bot (~> 6.5)
railties (>= 6.1.0)
faker (3.5.2)
i18n (>= 1.8.11, < 2)
faraday (2.13.4)
faraday (2.14.0)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-follow_redirects (0.3.0)
faraday-follow_redirects (0.4.0)
faraday (>= 1, < 3)
faraday-net_http (3.4.1)
net-http (>= 0.5.0)
globalid (1.2.1)
globalid (1.3.0)
activesupport (>= 6.1)
google-apis-core (1.0.1)
google-apis-core (1.0.2)
addressable (~> 2.8, >= 2.8.7)
faraday (~> 2.13)
faraday-follow_redirects (~> 0.3)
googleauth (~> 1.14)
mini_mime (~> 1.1)
representable (~> 3.0)
retriable (~> 3.1)
google-apis-iamcredentials_v1 (0.24.0)
google-apis-iamcredentials_v1 (0.25.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-storage_v1 (0.56.0)
google-apis-storage_v1 (0.57.0)
google-apis-core (>= 0.15.0, < 2.a)
google-cloud-core (1.8.0)
google-cloud-env (>= 1.0, < 3.a)
Expand All @@ -159,19 +159,19 @@ GEM
googleauth (~> 1.9)
mini_mime (~> 1.0)
google-logging-utils (0.2.0)
googleauth (1.15.0)
googleauth (1.15.1)
faraday (>= 1.0, < 3.a)
google-cloud-env (~> 2.2)
google-logging-utils (~> 0.1)
jwt (>= 1.4, < 4.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
hashdiff (1.2.0)
hashdiff (1.2.1)
hashie (4.1.0)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.13.2)
json (2.15.2)
jsonapi-renderer (0.2.2)
jwt (3.1.2)
base64
Expand All @@ -196,22 +196,23 @@ GEM
loofah (2.24.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
mail (2.9.0)
logger
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
marcel (1.0.4)
marcel (1.1.0)
method_source (1.1.0)
mini_mime (1.1.5)
minitest (5.25.5)
minitest (5.26.0)
multi_json (1.17.0)
mutations (0.9.1)
activesupport
mutex_m (0.3.0)
net-http (0.6.0)
net-http (0.7.0)
uri
net-imap (0.5.10)
net-imap (0.5.12)
date
net-protocol
net-pop (0.1.2)
Expand All @@ -220,15 +221,15 @@ GEM
timeout
net-smtp (0.5.1)
net-protocol
nio4r (2.7.4)
nokogiri (1.18.9-aarch64-linux-gnu)
nio4r (2.7.5)
nokogiri (1.18.10-aarch64-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.9-x86_64-linux-gnu)
nokogiri (1.18.10-x86_64-linux-gnu)
racc (~> 1.4)
orm_adapter (0.5.0)
os (1.1.4)
ostruct (0.6.3)
passenger (6.0.27)
passenger (6.1.0)
rack (>= 1.6.13)
rackup (>= 1.0.1)
rake (>= 12.3.3)
Expand All @@ -247,8 +248,8 @@ GEM
hashie (~> 4.1)
multi_json (~> 1.15)
racc (1.8.1)
rack (2.2.17)
rack-attack (6.7.0)
rack (2.2.20)
rack-attack (6.8.0)
rack (>= 1.0, < 4)
rack-cors (2.0.2)
rack (>= 2.0.0)
Expand Down Expand Up @@ -290,7 +291,7 @@ GEM
method_source
rake (>= 12.2)
thor (~> 1.0)
rake (13.3.0)
rake (13.3.1)
rbtree (0.4.6)
redis (4.8.1)
representable (3.2.0)
Expand All @@ -303,18 +304,18 @@ GEM
actionpack (>= 5.2)
railties (>= 5.2)
retriable (3.1.2)
rexml (3.4.2)
rexml (3.4.4)
rollbar (3.6.2)
rspec (3.13.1)
rspec (3.13.2)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.5)
rspec-core (3.13.6)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.5)
rspec-mocks (3.13.7)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (6.1.5)
Expand All @@ -325,7 +326,7 @@ GEM
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-support (3.13.5)
rspec-support (3.13.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
scenic (1.9.0)
Expand Down Expand Up @@ -361,20 +362,20 @@ GEM
thor (1.4.0)
thwait (0.2.0)
e2mmap
timeout (0.4.3)
timeout (0.4.4)
trailblazer-option (0.1.2)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2025.2)
tzinfo (>= 1.0.0)
uber (0.1.0)
uri (1.0.3)
uri (1.1.0)
valid_url (0.0.4)
addressable
rails
warden (1.2.9)
rack (>= 2.0.9)
webmock (3.25.1)
webmock (3.26.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
Expand Down Expand Up @@ -438,7 +439,7 @@ DEPENDENCIES
webmock

RUBY VERSION
ruby 3.4.5p51
ruby 3.4.7p58

BUNDLED WITH
2.7.1
2.7.2
6 changes: 3 additions & 3 deletions app/models/alert.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class Alert < ApplicationRecord
belongs_to :device
DEFAULTS = [
SEED_DATA = { problem_tag: "api.seed_data.missing", priority: 400 },
DOCUMENTATION = { problem_tag: "api.documentation.unread", priority: 300 },
TOUR = { problem_tag: "api.tour.not_taken", priority: 200 },
SEED_DATA = { problem_tag: "api.seed_data.missing", priority: 200 },
DOCUMENTATION = { problem_tag: "api.documentation.unread", priority: 400 },
TOUR = { problem_tag: "api.tour.not_taken", priority: 300 },
USER = { problem_tag: "api.user.not_welcomed", priority: 100 },
BULLETIN = { problem_tag: "api.bulletin.unread", priority: 100 },
DEMO = { problem_tag: "api.demo_account.in_use", priority: 100 },
Expand Down
2 changes: 0 additions & 2 deletions app/mutations/devices/create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ class Create < Mutations::Command
def execute
merge_default_values
device = Device.create!({ name: "FarmBot" }.merge(inputs.except(:user)))
Alerts::Create.run!(Alert::SEED_DATA.merge(device: device))
Alerts::Create.run!(Alert::TOUR.merge(device: device))
Alerts::Create.run!(Alert::USER.merge(device: device))
Alerts::Create.run!(Alert::DOCUMENTATION.merge(device: device))

Expand Down
4 changes: 4 additions & 0 deletions app/mutations/devices/create_seed_data.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ class CreateSeedData < Mutations::Command
end

def execute
if device.account_seeded_at
return { done: "Device already has seed data." }
end
device.update(account_seeded_at: Time.now)
self.delay.run_seeds!
{ done: "Loading resources now." }
end
Expand Down
5 changes: 4 additions & 1 deletion app/mutations/devices/reset.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ def execute

def run_it
ActiveRecord::Base.transaction do
device.update!(name: "FarmBot", mounted_tool_id: nil)
device.update!(name: "FarmBot",
mounted_tool_id: nil,
setup_completed_at: nil,
account_seeded_at: nil)
device.folders.update_all(parent_id: nil)
Device::SINGULAR_RESOURCES.keys.map do |resource|
device.send(resource).destroy!
Expand Down
10 changes: 1 addition & 9 deletions app/mutations/devices/seeders/abstract_seeder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class AbstractSeeder
:settings_default_map_size_y,
:settings_device_name,
:settings_change_firmware_config_defaults,
:settings_soil_height,
:settings_firmware,
:settings_gantry_height,
:settings_hide_sensors,
Expand Down Expand Up @@ -86,9 +85,7 @@ def initialize(device)
@device = device
end

def settings_hide_sensors
device.web_app_config.update!(hide_sensors: false)
end
def settings_hide_sensors; end

def peripherals_lighting
add_peripheral(7, ToolNames::LIGHTING)
Expand Down Expand Up @@ -209,11 +206,6 @@ def settings_default_map_size_x; end
def settings_default_map_size_y; end
def settings_device_name; end
def settings_change_firmware_config_defaults; end
def settings_soil_height; end

def settings_soil_height
device.fbos_config.update!(soil_height: -500)
end

def settings_three_d; end

Expand Down
5 changes: 4 additions & 1 deletion app/mutations/devices/seeders/demo_account_seeder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ class DemoAccountSeeder < AbstractSeeder
"Genesis XL" => "Genesis_XL_Demo_Webcam.jpg",
"Genesis" => "Genesis_Demo_Webcam.jpg",
}
UNUSED_ALERTS = ["api.seed_data.missing", "api.user.not_welcomed"]
UNUSED_ALERTS = [
Alert::USER[:problem_tag],
]

def feed(product_line)
feed_name = ""
Expand Down Expand Up @@ -151,6 +153,7 @@ def marketing_bulletin
DEMO_ALERTS = [
Alert::DEMO,
Alert::BULLETIN.merge(slug: "buy-a-farmbot", priority: 9999),
Alert::TOUR,
]

DEMO_LOGS = [
Expand Down
1 change: 0 additions & 1 deletion app/mutations/devices/seeders/none.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ def sequences_grid; end
def sequences_dispense_water; end
def settings_default_map_size_x; end
def settings_default_map_size_y; end
def settings_soil_height; end
def settings_gantry_height; end
def settings_firmware; end
def settings_hide_sensors; end
Expand Down
1 change: 1 addition & 0 deletions app/mutations/devices/update.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class Update < Mutations::Command
string :timezone
string :fb_order_number, nils: true
string :setup_completed_at, nils: true
string :account_seeded_at, nils: true
integer :mounted_tool_id, nils: true
integer :ota_hour, nils: true
float :lat, nils: true
Expand Down
1 change: 1 addition & 0 deletions app/serializers/device_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class DeviceSerializer < ApplicationSerializer
:rpi,
:serial_number,
:setup_completed_at,
:account_seeded_at,
:throttled_at,
:throttled_until,
:timezone,
Expand Down
2 changes: 0 additions & 2 deletions app/views/dashboard/_common_assets.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,3 @@ window.process = {
<%= render "addons" %>
<%= javascript_include_tag *@js_assets %>
<meta content="width=device-width, initial-scale=1" name="viewport">
<link href="https://fonts.googleapis.com/css?family=Cabin:300,300i,400,400i,700,700i" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Inknut+Antiqua:300,300i,400,400i,700,700i" rel="stylesheet">
2 changes: 1 addition & 1 deletion app/views/dashboard/demo.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
bottom: 60px;
box-shadow: 0 0 15px rgba(0,0,0,0.4);
color: #fff;
font-family: "Cabin", sans-serif;
font-family: "Cabin", "Cabin Fallback", sans-serif;
font-size: 25px;
font-weight: bold;
padding: 15px 30px;
Expand Down
4 changes: 1 addition & 3 deletions app/views/layouts/dashboard.html.erb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="<%= I18n.locale %>">
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
<meta content="width=device-width, initial-scale=1" name="viewport">
Expand All @@ -18,8 +18,6 @@
text-align: center; width: 100%; padding-top: 10%; color: #434343; }
</style>
<%= stylesheet_link_tag *@css_assets %>
<link href="https://fonts.googleapis.com/css?family=Cabin:300,300i,400,400i,700,700i" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Inknut+Antiqua:300,300i,400,400i,700,700i" rel="stylesheet">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/images/favicon.png" type="image/png">
<% manifest_file =
Expand Down
Loading