From 762be79df6ad64c4004cf8b5bfde14cca83e4389 Mon Sep 17 00:00:00 2001 From: zontreck Date: Thu, 15 May 2025 23:14:41 -0700 Subject: [PATCH 01/28] php: Add a disclaimer about ai content --- server/php/timetrack.php | 1 + 1 file changed, 1 insertion(+) diff --git a/server/php/timetrack.php b/server/php/timetrack.php index 56cde70..f29d28c 100644 --- a/server/php/timetrack.php +++ b/server/php/timetrack.php @@ -10,6 +10,7 @@ $DB = get_DB("timetrack"); $jsx = json_decode(file_get_contents("php://input"), true); // Get operation information +// DISCLAIMER: All php code below this point is AI Generated switch($jsx['cmd']) { case "create": { // Get UUID from MySQL and insert into sessions table From 7c5e3360a523a4e7da06dc6053bff0737e30df2e Mon Sep 17 00:00:00 2001 From: zontreck Date: Fri, 16 May 2025 01:38:40 -0700 Subject: [PATCH 02/28] Make some changes to the PHP URL to make it channel specific --- latest-releases.json | 3 ++- lib/consts.dart | 6 ++++-- lib/data.dart | 21 ++++++++++++++++++--- lib/pages/HomePage.dart | 15 +++++++++++---- lib/pages/WorkData.dart | 3 +-- pubspec.yaml | 2 +- 6 files changed, 37 insertions(+), 13 deletions(-) diff --git a/latest-releases.json b/latest-releases.json index d84fd53..db193d0 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,3 +1,4 @@ { - "alpha": "1.0.0-dev.10" + "alpha": "1.0.0-dev.10", + "beta": "1.0.0-beta.1" } diff --git a/lib/consts.dart b/lib/consts.dart index 3ee858c..f3b09c9 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'dart:ui'; import 'package:dio/dio.dart'; import 'package:geolocator/geolocator.dart'; @@ -7,7 +6,10 @@ import 'package:geolocator/geolocator.dart'; class TTConsts { static get UPDATE_URL => "https://git.zontreck.com/AriasCreations/TimeTracker/raw/branch/main/latest-releases.json"; - static const VERSION = "1.0.0-dev.10"; + static get SESSION_SERVER => + "https://api.zontreck.com/timetrack/${UPDATE_CHANNEL}/timetrack.php"; + + static const VERSION = "1.0.0-beta.1"; static bool UPDATE_AVAILABLE = false; static UpdateChannel UPDATE_CHANNEL = UpdateChannel.alpha; diff --git a/lib/data.dart b/lib/data.dart index fdce05f..4bf36ff 100644 --- a/lib/data.dart +++ b/lib/data.dart @@ -3,6 +3,8 @@ import 'dart:convert'; import 'dart:math' as math; import 'dart:ui'; +import 'package:dio/dio.dart'; +import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; import 'package:libac_dart/nbt/Stream.dart'; import 'package:timetrack/consts.dart'; @@ -19,6 +21,7 @@ class SessionData { static List positions = []; static late StreamSubscription _listener; static Callbacks Calls = Callbacks(); + static String LastSessionID = ""; /// This flag is usually set when data is loaded from a saved state. Or when accessed using the Web version of the app. static bool IsReadOnly = false; @@ -185,10 +188,22 @@ class SessionData { Trips = []; positions = []; - // TODO: Upload to the server. + Dio dio = Dio(); + Map payload = {"cmd": "create", "data": saveData}; + + var reply = await dio.post( + TTConsts.SESSION_SERVER, + data: json.encode(payload), + ); + Map replyJs = json.decode(reply.data as String); + if (replyJs["status"] == "ok") { + print("Successful upload"); + LastSessionID = replyJs['session'] as String; + Calls.dispatch(); + } } - static String SaveData() { + static Map SaveData() { Map saveData = {}; List> _trips = []; @@ -204,7 +219,7 @@ class SessionData { saveData["trips"] = _trips; saveData["positions"] = _pos; - return json.encode(saveData); + return saveData; } void LoadData(String js) { diff --git a/lib/pages/HomePage.dart b/lib/pages/HomePage.dart index c63d778..c1b8e18 100644 --- a/lib/pages/HomePage.dart +++ b/lib/pages/HomePage.dart @@ -112,10 +112,17 @@ class _HomePageState extends State { body: SingleChildScrollView( child: Column( children: [ - Text( - "Hit engage when you are ready to go online and start tracking location data, and trips.", - style: TextStyle(fontSize: 18), - ), + if (!SessionData.IsOnTheClock) + Text( + "Hit engage when you are ready to go online and start tracking location data, and trips.", + style: TextStyle(fontSize: 18), + ), + + if (SessionData.LastSessionID.isNotEmpty) + Text( + "Session ID Code: ${SessionData.LastSessionID}", + style: TextStyle(fontSize: 18), + ), if (!SessionData.IsOnTheClock) Center( child: ElevatedButton( diff --git a/lib/pages/WorkData.dart b/lib/pages/WorkData.dart index eeac3fe..f99e551 100644 --- a/lib/pages/WorkData.dart +++ b/lib/pages/WorkData.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:libacflutter/Constants.dart'; -import 'package:timetrack/consts.dart'; import 'package:timetrack/data.dart'; class WorkDataPage extends StatefulWidget { @@ -70,7 +69,7 @@ class _WorkData extends State { ), SizedBox(height: 20), Text( - "Total Miles: ${SessionData.GetTotalMilesAsString()}", + "Total Estimated Miles: ${SessionData.GetTotalMilesAsString()}\n(Note: The miles displayed above may not be 100% accurate)", style: TextStyle(fontSize: 24), ), ], diff --git a/pubspec.yaml b/pubspec.yaml index 1eb0ca2..b42f1a3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.0-dev.10 +version: 1.0.0-beta.1 environment: sdk: ^3.7.2 From 37e56888425db6b4743b79805aabc24670de26aa Mon Sep 17 00:00:00 2001 From: zontreck Date: Fri, 16 May 2025 02:21:25 -0700 Subject: [PATCH 03/28] Add ability to tap to copy the session ID --- latest-releases.json | 2 +- lib/consts.dart | 2 +- lib/pages/HomePage.dart | 12 +++++++++--- pubspec.yaml | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/latest-releases.json b/latest-releases.json index db193d0..59e46f8 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.1" + "beta": "1.0.0-beta.2" } diff --git a/lib/consts.dart b/lib/consts.dart index f3b09c9..51df1d6 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -9,7 +9,7 @@ class TTConsts { static get SESSION_SERVER => "https://api.zontreck.com/timetrack/${UPDATE_CHANNEL}/timetrack.php"; - static const VERSION = "1.0.0-beta.1"; + static const VERSION = "1.0.0-beta.2"; static bool UPDATE_AVAILABLE = false; static UpdateChannel UPDATE_CHANNEL = UpdateChannel.alpha; diff --git a/lib/pages/HomePage.dart b/lib/pages/HomePage.dart index c1b8e18..9d9b7b9 100644 --- a/lib/pages/HomePage.dart +++ b/lib/pages/HomePage.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:libacflutter/Constants.dart'; import 'package:libacflutter/Prompt.dart'; import 'package:timetrack/consts.dart'; @@ -119,9 +120,14 @@ class _HomePageState extends State { ), if (SessionData.LastSessionID.isNotEmpty) - Text( - "Session ID Code: ${SessionData.LastSessionID}", - style: TextStyle(fontSize: 18), + ListTile( + title: Text("Session ID"), + subtitle: Text("${SessionData.LastSessionID} - Tap to copy"), + onTap: () { + Clipboard.setData( + ClipboardData(text: SessionData.LastSessionID), + ); + }, ), if (!SessionData.IsOnTheClock) Center( diff --git a/pubspec.yaml b/pubspec.yaml index b42f1a3..0781771 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.0-beta.1 +version: 1.0.0-beta.2 environment: sdk: ^3.7.2 From 0b83eaaf3c94e44257a698d4b73efc9478824b94 Mon Sep 17 00:00:00 2001 From: zontreck Date: Fri, 16 May 2025 10:09:41 -0700 Subject: [PATCH 04/28] Begin to add the web interface page --- latest-releases.json | 2 +- lib/consts.dart | 4 +- lib/data.dart | 20 +++++- lib/main.dart | 10 +++ lib/pages/MainApp.dart | 5 +- lib/pages/WebMainPage.dart | 128 +++++++++++++++++++++++++++++++++++++ pubspec.yaml | 2 +- 7 files changed, 165 insertions(+), 6 deletions(-) create mode 100644 lib/pages/WebMainPage.dart diff --git a/latest-releases.json b/latest-releases.json index 59e46f8..5922860 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.2" + "beta": "1.0.0-beta.3" } diff --git a/lib/consts.dart b/lib/consts.dart index 51df1d6..85c2227 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -9,10 +9,10 @@ class TTConsts { static get SESSION_SERVER => "https://api.zontreck.com/timetrack/${UPDATE_CHANNEL}/timetrack.php"; - static const VERSION = "1.0.0-beta.2"; + static const VERSION = "1.0.0-beta.3"; static bool UPDATE_AVAILABLE = false; - static UpdateChannel UPDATE_CHANNEL = UpdateChannel.alpha; + static UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta; static final LocationSettings LOCATION_SETTINGS = LocationSettings( accuracy: LocationAccuracy.bestForNavigation, distanceFilter: 15, diff --git a/lib/data.dart b/lib/data.dart index 4bf36ff..460585f 100644 --- a/lib/data.dart +++ b/lib/data.dart @@ -22,6 +22,7 @@ class SessionData { static late StreamSubscription _listener; static Callbacks Calls = Callbacks(); static String LastSessionID = ""; + static String DisplayError = ""; /// This flag is usually set when data is loaded from a saved state. Or when accessed using the Web version of the app. static bool IsReadOnly = false; @@ -222,8 +223,25 @@ class SessionData { return saveData; } - void LoadData(String js) { + static Future DownloadData() async { + Dio dio = Dio(); + Map payload = {"cmd": "get", "id": LastSessionID}; + + // Send the data, and get the response + var reply = await dio.post( + TTConsts.SESSION_SERVER, + data: json.encode(payload), + ); + + LoadData(reply.data as String); + } + + static void LoadData(String js) { Map _js = json.decode(js); + if (_js.containsKey("error")) { + LastSessionID = ""; + return; + } List> _trips = _js['trips'] as List>; List> _pos = diff --git a/lib/main.dart b/lib/main.dart index 3c1c510..fef79bc 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,9 +1,19 @@ import 'package:flutter/material.dart'; import 'package:timetrack/consts.dart'; +import 'package:timetrack/data.dart'; import 'package:timetrack/pages/MainApp.dart'; Future main() async { await TTConsts.checkUpdate(); + var sess = Uri.base.queryParameters["code"] ?? ""; + SessionData.LastSessionID = sess; + if (SessionData.LastSessionID.isNotEmpty) { + await SessionData.DownloadData(); + if (SessionData.LastSessionID.isEmpty) { + // Invalid session token + SessionData.DisplayError = "The URL and or session token is invalid"; + } + } runApp(MainApp()); } diff --git a/lib/pages/MainApp.dart b/lib/pages/MainApp.dart index 4a01ae0..087fd6f 100644 --- a/lib/pages/MainApp.dart +++ b/lib/pages/MainApp.dart @@ -1,7 +1,10 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:timetrack/pages/HomePage.dart'; import 'package:timetrack/pages/MapPage.dart'; import 'package:timetrack/pages/UpdateSettings.dart'; +import 'package:timetrack/pages/WebMainPage.dart'; import 'package:timetrack/pages/WorkData.dart'; class MainApp extends StatefulWidget { @@ -24,7 +27,7 @@ class MainAppState extends State { return MaterialApp( title: "Time Tracker", routes: { - "/": (ctx) => HomePage(), + "/": (ctx) => Platform.isAndroid ? HomePage() : WebMain(), "/upd": (ctx) => UpdateSettingsPage(), "/map": (ctx) => MapPage(), "/work": (ctx) => WorkDataPage(), diff --git a/lib/pages/WebMainPage.dart b/lib/pages/WebMainPage.dart new file mode 100644 index 0000000..41db49f --- /dev/null +++ b/lib/pages/WebMainPage.dart @@ -0,0 +1,128 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:libacflutter/Constants.dart'; +import 'package:timetrack/consts.dart'; +import 'package:timetrack/data.dart'; + +class WebMain extends StatefulWidget { + @override + State createState() { + return _WebMain(); + } +} + +class _WebMain extends State { + TextEditingController sessionIDController = TextEditingController(); + + @override + void didChangeDependencies() { + sessionIDController.text = SessionData.LastSessionID; + super.didChangeDependencies(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Time Tracker"), + backgroundColor: LibACFlutterConstants.TITLEBAR_COLOR, + ), + drawer: Drawer( + elevation: 8, + child: SingleChildScrollView( + child: Column( + children: [ + DrawerHeader( + child: Column( + children: [ + Text("Time Tracker"), + Text("Created by Tara Piccari"), + Text("Copyright 2025 - Present"), + Text("Version: ${TTConsts.VERSION}"), + ], + ), + ), + if (SessionData.IsReadOnly) + ListTile( + title: Text("Trip Map"), + leading: Icon(Icons.map), + subtitle: Text( + "View a map of the route\n(NOTE: This is not live, and reflects the current state as of the time the map is opened.)", + ), + onTap: () async { + await Navigator.pushNamed(context, "/map"); + }, + ), + if (SessionData.IsReadOnly) + ListTile( + title: Text("Work Data"), + subtitle: Text("View work data"), + leading: Icon(Icons.work_history), + onTap: () async { + // Open up the work data viewer and editor. + // Edit will be disabled for web or read only mode. + await Navigator.pushNamed(context, "/work"); + setState(() {}); + }, + ), + ], + ), + ), + ), + body: Padding( + padding: EdgeInsets.all(8), + child: SingleChildScrollView( + child: Column( + children: [ + // Start doing magic! + if (SessionData.DisplayError.isNotEmpty) + Text(SessionData.DisplayError, style: TextStyle(fontSize: 18)), + // Check what widgets need to be displayed. + if (SessionData.IsReadOnly) GetReadOnlyWidgets(), + if (!SessionData.IsReadOnly) GetLoadWidgets(), + ], + ), + ), + ), + ); + } + + Widget GetReadOnlyWidgets() { + return Column( + children: [ + Text( + "Use the top left menu to show the various pages for the data viewer.", + ), + ElevatedButton( + onPressed: () async { + SessionData.IsReadOnly = false; + SessionData.Trips = []; + SessionData.positions = []; + SessionData.DisplayError = ""; + }, + child: Text("Close Session"), + ), + ], + ); + } + + Widget GetLoadWidgets() { + return Column( + children: [ + // Present a text box for the session ID, and a button for loading. + ListTile(title: Text("Session ID")), + TextField( + controller: sessionIDController, + decoration: InputDecoration(border: OutlineInputBorder()), + ), + ElevatedButton( + onPressed: () async { + await SessionData.DownloadData(); + setState(() {}); + }, + child: Text("Load Session", style: TextStyle(fontSize: 18)), + ), + ], + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 0781771..dd244a5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.0-beta.2 +version: 1.0.0-beta.3 environment: sdk: ^3.7.2 From 9b50945e3b48978f707e64a2ac7b0d8771f4dec4 Mon Sep 17 00:00:00 2001 From: zontreck Date: Fri, 16 May 2025 11:46:33 -0700 Subject: [PATCH 05/28] ci: Add web build task for web.tgz --- Jenkinsfile | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 38ee14a..799743d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -44,5 +44,33 @@ pipeline { } } } + + stage("Build Web App") { + agent { + label 'linux' + } + + steps { + script { + sh ''' + #!/bin/bash + + flutter build web + + cd build/web + tar -cvf ../../web.tgz . + cd ../.. + ''' + } + } + + post { + always { + archiveArtifacts artifacts: "web.tgz" + + cleanWs() + } + } + } } } \ No newline at end of file From 26a768ecedf7e926ecef007a7d53de880d0ad552 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 00:34:30 -0700 Subject: [PATCH 06/28] Update latest-releases.json Signed-off-by: zontreck --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 5922860..26e721a 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.3" + "beta": "1.0.0-beta.4" } From 87beb6944f9d85d1d9cc2bf915917160ae13cec4 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 02:12:55 -0700 Subject: [PATCH 07/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 26e721a..bec9608 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.4" + "beta": "1.0.0-beta.6" } From 04f861a9b75898770560e69b062a1993ea4edc3d Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 02:34:40 -0700 Subject: [PATCH 08/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index bec9608..2434650 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.6" + "beta": "1.0.0-beta.7" } From 98294c7ee3ff76eeef879603b360d297a8610449 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 02:55:55 -0700 Subject: [PATCH 09/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 2434650..13e4f2b 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.7" + "beta": "1.0.0-beta.8" } From 0fcce433a5713f7c8550673448154804990fc084 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 12:23:00 -0700 Subject: [PATCH 10/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 13e4f2b..bdb8deb 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.8" + "beta": "1.0.0-beta.9" } From 727f43f943dc70ee22128e7acdbb62299fdedf2e Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 17 May 2025 12:36:52 -0700 Subject: [PATCH 11/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index bdb8deb..e5c841b 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.9" + "beta": "1.0.0-beta.10" } From 3a0858d3b57561547f7ca689782e9613e2cb751e Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 18 May 2025 10:38:29 -0700 Subject: [PATCH 12/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index e5c841b..abf80d5 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.10" + "beta": "1.0.0-beta.11" } From 39e32d9f5d3fd51844ff0a30af09211565ca41fe Mon Sep 17 00:00:00 2001 From: zontreck Date: Mon, 19 May 2025 01:55:47 -0700 Subject: [PATCH 13/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index abf80d5..3176b02 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.11" + "beta": "1.0.0-beta.12" } From 96055bb155b3a3c5e4765ee69a10bf199c3194ba Mon Sep 17 00:00:00 2001 From: zontreck Date: Tue, 20 May 2025 09:23:19 -0700 Subject: [PATCH 14/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 3176b02..ec79125 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.12" + "beta": "1.0.0-beta.13" } From d2a8e934c05a007968331ac31d64af5e525786b1 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 24 May 2025 19:21:01 -0700 Subject: [PATCH 15/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index ec79125..a3da9c0 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.13" + "beta": "1.0.0-beta.15" } From b22d907d68cf8eb90f328131a74da4deed0be061 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 01:25:20 -0700 Subject: [PATCH 16/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index a3da9c0..f9ef6e0 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.15" + "beta": "1.0.0-beta.16" } From a30911b56e87e97a7eb5a229525498e9c69aa174 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 12:56:37 -0700 Subject: [PATCH 17/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index f9ef6e0..99e9183 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.16" + "beta": "1.0.0-beta.17" } From 3fe877e12c6bf2344952614d6860f9b360c18480 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 13:34:12 -0700 Subject: [PATCH 18/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 99e9183..8f73add 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.17" + "beta": "1.0.0-beta.18" } From 72d94376e0736888122344ba3e6df61cff75f3d5 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 13:45:59 -0700 Subject: [PATCH 19/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 8f73add..23b56f5 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.18" + "beta": "1.0.0-beta.19" } From c1c4a6e128cfdc34883c4245987ced08324f48ad Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 15:01:27 -0700 Subject: [PATCH 20/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 23b56f5..ff09384 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.19" + "beta": "1.0.0-beta.23" } From 30159bd21778f75d43f0a62352771f66096c4d31 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 15:14:58 -0700 Subject: [PATCH 21/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index ff09384..ecd57d8 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.23" + "beta": "1.0.0-beta.24" } From 15b5efed49af9a41ccf5a4976810c358b8e23bdf Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 15:46:54 -0700 Subject: [PATCH 22/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index ecd57d8..8bb8fbd 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.24" + "beta": "1.0.0-beta.25" } From 6b430b163f7670216a12238bdc8d47bf36c2d7ae Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 16:15:34 -0700 Subject: [PATCH 23/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 8bb8fbd..cde9a31 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.25" + "beta": "1.0.0-beta.26" } From ed4599657cabf3d895b8a88ad20aa1219453ecf2 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sun, 25 May 2025 16:30:07 -0700 Subject: [PATCH 24/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index cde9a31..f26ba04 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.26" + "beta": "1.0.0-beta.27" } From ceb28c10544c8d0396e4b18585c9f1fdd09bb3b7 Mon Sep 17 00:00:00 2001 From: zontreck Date: Tue, 27 May 2025 13:58:07 -0700 Subject: [PATCH 25/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index f26ba04..5db9c13 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.27" + "beta": "1.0.0-beta.28" } From 2a5f141aa8fe6eacb866cc751dd41e1d2fe1075e Mon Sep 17 00:00:00 2001 From: zontreck Date: Fri, 6 Jun 2025 22:03:27 +0000 Subject: [PATCH 26/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 5db9c13..89e4d18 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.28" + "beta": "1.0.0-beta.29" } From f4f75da84786ea32da8956788d9f4cf924b03197 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 7 Jun 2025 22:45:29 +0000 Subject: [PATCH 27/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 89e4d18..0277040 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.29" + "beta": "1.0.0-beta.30" } From e3712d3f63447399987aab53609bf8a9cb043bcf Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 14 Jun 2025 02:08:41 +0000 Subject: [PATCH 28/28] Update latest-releases.json --- latest-releases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-releases.json b/latest-releases.json index 0277040..786bc62 100644 --- a/latest-releases.json +++ b/latest-releases.json @@ -1,4 +1,4 @@ { "alpha": "1.0.0-dev.10", - "beta": "1.0.0-beta.30" + "beta": "1.0.0-beta.31" }