OdinShift - Developer Updates

Release Blog

OdinShift Beta Updates

What changed across the Beta release cycle

This page tracks the user-facing changes that have been pushed during the OdinShift beta cycle. Each post is written so agents and early testers can quickly understand what changed, why it matters, and what areas are worth testing.


Beta 3.2.8

Beta 3.2.8

Admin tools and schedule-based calendar sync

Beta 3.2.8 starts turning the Admin page into a practical backend workspace while moving calendar sync to the Schedule page, where agents naturally expect calendar-related tools to live.

What changed in Beta 3.2.8

  • Added an Admin backend overview with quick counts for users, pending accounts, jobs, shifts, and open reports.
  • Added a feedback and bug-report inbox with filters for type and status.
  • Added admin actions to mark feedback and bug reports as new, reviewed, or closed.
  • Surfaced reporter, page, viewport, browser, and screenshot details for bug review.
  • Moved Calendar Sync from Account to Schedule.
  • Kept the subscribed-calendar flow, including Generate, Subscribe on This Device, Copy Link, and Turn Off Sync.

Why it matters

As more testers use OdinShift, backend work needs to be fast and visible. Admins should be able to review bugs, see what needs attention, and manage routine account/report tasks without digging through phpMyAdmin.

What to test

  • Open Admin as an Admin or Global Admin and confirm the overview numbers load.
  • Submit feedback or a bug report, then confirm it appears in the Admin inbox.
  • Change a report status and confirm it stays updated after refresh.
  • Open Schedule and confirm calendar sync tools are available there instead of Account.

Beta 3.2.7

Beta 3.2.7

Subscribed calendar behavior

Beta 3.2.7 improves the calendar-sync flow so users are guided toward a true subscribed calendar instead of a one-time import of the current shift list.

What changed in Beta 3.2.7

  • Added a Subscribe on This Device button to the Account page.
  • Uses a webcal link so phones and calendar apps are prompted to add the feed as an ongoing subscription.
  • Added calendar-feed refresh hints requesting a 15-minute refresh interval where supported.
  • Added event update metadata so edited shifts are easier for subscribed calendars to recognize as changed.
  • Clarified Account page text so users know copying/opening the link as a file may only import a snapshot.

Why it matters

OdinShift already publishes a live feed of the user's shifts. The important part is making sure the calendar app subscribes to that feed instead of simply importing the shifts that exist at that moment.

What to test

  • Generate a calendar link from Account.
  • Tap Subscribe on This Device and add it as a subscribed calendar.
  • Create or edit a future shift, then confirm the subscribed calendar updates after the calendar app refreshes.

Beta 3.2.6

Beta 3.2.6

Calendar link and metrics hotfix

Beta 3.2.6 is a small stability update after live testing showed the calendar link button could fail without enough visible feedback, and anonymous metrics could create a console error if the optional metrics table was unavailable.

What changed in Beta 3.2.6

  • Added clearer Account page feedback while a private calendar link is being generated.
  • Shows a visible failure message in the calendar link box if the server does not return a usable link.
  • Prevents optional anonymous metrics logging from producing a user-facing server error.
  • Makes audit logging non-blocking so a missing audit table cannot break normal actions like calendar-link generation.
  • Bumped the service-worker cache so browsers pull the hotfix files after upload.

Why it matters

Calendar sync needs to feel obvious: either the link appears, or OdinShift tells the user what went wrong. This update also keeps background development metrics from distracting testers while we continue the beta.

What to test

  • Open Account and click Generate / Reset Link.
  • Confirm the button shows progress, then either fills the private calendar link or displays a clear error message.
  • Open the browser console and confirm the metrics endpoint no longer reports a 500 error.

Beta 3.2.5

Beta 3.2.5

Mobile shift actions, permissions, and calendar confidence

Beta 3.2.5 tightens the mobile Shifts experience after Android testing showed that action buttons could sit off-screen inside the wide table layout. This release also double-checks role write permissions and keeps the calendar-sync link generation fix in the upload package.

What changed in Beta 3.2.5

  • Added a mobile-friendly Shifts layout so Edit and Delete actions are visible on phone screens without horizontal scrolling.
  • Enforced Audit as read-only while keeping Agent, Manager, Admin, and Global Admin write access for their visible records.
  • Tightened server-side write checks so Agents can only create shifts, payments, and incidents against jobs and shifts they are allowed to see.
  • Kept private calendar-feed generation in the release and added fallback handling so the link displays in the Account page textbox.
  • Bumped the service-worker cache so Android and iPhone browsers pull the updated mobile Shifts page and calendar-sync script.
  • Updated visible app labels and footer text to Beta 3.2.5.

Why it matters

Agents on phones should not have to sideways-scroll a wide data table to find critical actions. Edit and Delete are now presented in card controls on mobile, while the desktop table remains available on larger screens. The permission model also now matches the intended rule: Audit can read, and Agent or higher can write records they are allowed to see.

Tester notes

  • Open Shifts from a phone and confirm shift Edit/Delete buttons appear in the mobile shift cards.
  • Confirm an Agent account can edit and delete its own visible job and shift records.
  • Confirm an Audit account can view records but receives a read-only message if a write action is attempted.
  • Open Account, generate a private calendar link, and confirm the link appears in the textbox.
  • Subscribe to the generated calendar link from Apple Calendar, Outlook, or Google Calendar and confirm shifts appear.

Coming next

  • Optional reminders for upcoming shifts inside OdinShift and email notifications.
  • Pay-cycle and tax estimate improvements.
  • MFA planning and account-security hardening.
  • Later review of full Outlook/Google two-way calendar integration if testers need it.

Beta 3.2.4

Beta 3.2.4

Calendar sync, login branding, and release polish

Beta 3.2.4 added the first calendar-sync release and gave the sign-in screen a more polished OdinShift identity. This release also kept the live API configuration private so future upload packages can be pushed without rebuilding database credentials each time.

What changed in Beta 3.2.4

  • Added a Calendar Sync section to the Account page.
  • Added private per-user iCalendar feed links for personal shift schedules.
  • Added Generate / Reset Link, Copy Link, and Turn Off Sync controls.
  • Kept elevated users' calendar feeds personal by default, so admin accounts do not export every agent's shifts.
  • Included shift time, client name, job address, POC details, hourly rate, paid status, and job notes in subscribed events.
  • Added a safe token reset path so a calendar link can be invalidated if it is shared by mistake.
  • Updated the login page with OdinShift branding, logo artwork, and a cleaner sign-in layout.
  • Staged the live API config as a private local file so it does not need to be rebuilt for every release package.
  • Updated page footer labels and the service-worker cache to Beta 3.2.4.

Why it matters

Agents can keep OdinShift shifts beside the rest of their calendar on iPhone, iPad, Outlook, Google Calendar, and most other calendar apps that support iCalendar subscriptions. The login screen also feels like part of the same branded system instead of a plain utility page.

Tester notes

  • Open Account, generate a private calendar link, and copy it.
  • Subscribe to the link from Apple Calendar or Outlook and confirm your shifts appear.
  • Add or edit a future shift in OdinShift, then confirm the subscribed calendar refreshes after the calendar app updates.
  • Reset the calendar link and confirm the old link no longer works.
  • Turn off sync and confirm the feed stops loading.
  • Sign out and confirm the login page shows the updated branded layout.

Beta 3.2.3

Beta 3.2.3

Shift money metrics fix

Beta 3.2.3 fixed the money and shift-summary metrics after testing showed several values displaying as 0.00. This release focused on making the Shifts page calculations match the data now coming from the Hostinger API.

What changed in Beta 3.2.3

  • Fixed earned income calculations when shift rows provide hourly rate as a flat API field.
  • Fixed scheduled income calculations for future scheduled shifts.
  • Fixed average hourly rate calculations on the Shifts page.
  • Fixed estimated tax holdback calculations that depended on those income totals.
  • Clarified that scheduled income means future scheduled shift income.
  • Bumped the app cache so phones and browsers pull the corrected Shifts page.

Why it matters

The income metrics are only useful if users can trust them. This update makes the shift summary panel reflect real recorded work and future scheduled work instead of showing empty totals when the underlying shift data is present.

Tester notes

  • Open the Shifts page and confirm earned income is no longer stuck at 0.00 when completed shifts exist.
  • Confirm future shifts appear in scheduled income instead of earned income.
  • Confirm average hourly rate changes when shifts have different pay rates.
  • Confirm the estimated tax holdback updates when income totals are present.
  • Hard-refresh the app on mobile if old cached numbers still appear.

Coming next

  • Cleaner admin review screens for feedback and bug reports.
  • More complete tax estimate settings and pay-cycle controls.
  • Security hardening, including MFA planning.
  • Calendar export and sync planning, starting with a private calendar feed.

Beta 3.2.2

Beta 3.2.2

Feedback screenshots and restored delete controls

Beta 3.2.2 improved the support loop for early testers. Bug reports can now include a screenshot of the current app page, and the app restored practical delete controls for records that were entered by mistake during testing.

What changed in Beta 3.2.2

  • Added an optional app-page screenshot checkbox to feedback and bug report forms.
  • Defaulted the screenshot checkbox on so most bug reports include useful visual context.
  • Kept bug reports tied to the submitting account so admins can follow up when needed.
  • Added an anonymous option for general feedback.
  • Added Admin viewing for feedback and bug reports, including attached screenshots.
  • Restored visible delete controls for recent shifts.
  • Restored job delete controls from the selected job detail area.

Why it matters

Screenshots make it much easier to understand what a tester saw, especially when an issue happens on a phone. Restored delete controls also let users clean up bad test data without needing database help.

Tester notes

  • Submit a bug report with the screenshot option checked.
  • Submit general feedback with the anonymous option selected.
  • Open feedback reports from Admin and confirm screenshots display.
  • Delete a recent test shift and confirm it is removed.
  • Delete a test job and confirm related screens refresh cleanly.

Beta 3.2.1

Beta 3.2.1

Project cleanup, update blog, and anonymous app metrics

Beta 3.2.1 cleaned up how OdinShift is packaged and introduced this Developer Updates page. It also added basic anonymous usage metrics so future improvements can be guided by how the app is actually used, without collecting sensitive work details.

What changed in Beta 3.2.1

  • Added the Developer Updates page for tester-friendly release notes.
  • Added anonymous app-use metrics for page views and basic app events.
  • Kept metrics intentionally limited to app-improvement data only.
  • Stored anonymous browser hash, page path, viewport size, device class, display mode, theme, event type, and timestamp.
  • Excluded names, emails, user IDs, job IDs, shift notes, incident details, addresses, and full page URLs from the metrics payload.
  • Cleaned old duplicate root-level files so the project has clearer active and release-ready folders.
  • Documented the difference between the active production source and versioned upload folders.
  • Improved the release workflow for safer full-folder Hostinger uploads.

Why it matters

Cleaner release folders make it easier to push updates without accidentally mixing old and new files. The anonymous metrics give the project a way to learn which screens matter most while respecting the private nature of job and shift records.

Tester notes

  • Open the Developer Updates page from the app navigation.
  • Confirm normal pages still load after the cleanup.
  • Confirm the upload-ready folder contains the web files needed for Hostinger.
  • Confirm metrics do not expose account details or job/shift content.

Beta 3.2

Beta 3.2

User experience, profile, and job-detail expansion

Beta 3.2 was a larger usability release. It focused on making OdinShift feel more like a daily-use web app: better account tools, cleaner job details, profile improvements, early metrics, and easier ways for testers to send feedback.

What changed in Beta 3.2

  • Added self-service password reset so users can regain access without direct admin help.
  • Added the first built-in feedback and bug report tools.
  • Added job address fields to the job form.
  • Added map links so job addresses can open in a phone's preferred map app.
  • Added editing support for more job and shift details.
  • Added worked shift count and scheduled shift count to help users understand their workload.
  • Added average hourly rate reporting.
  • Separated earned income from scheduled income so completed work and future work are not blended together.
  • Added tax preference placeholders to prepare for better pay-cycle and tax-estimate features.
  • Improved profile-photo handling so account images can be more useful.
  • Added theme preference options for system, dark, and light mode.
  • Made the branded header/logo act more like a home shortcut.
  • Added cleaner branded formatting for system emails.

Why it matters

This release made the beta easier to live with day to day. Users gained more control over their account, more useful job records, better phone navigation, and a direct path to report problems while they are still fresh.

Tester notes

  • Reset a password from the sign-in flow.
  • Add a job address and open it in a maps app.
  • Upload a profile photo and confirm it saves cleanly.
  • Change theme preference from the Account page.
  • Submit feedback and a bug report from a phone browser.

Beta 3.1.1

Beta 3.1.1

Early tester fixes and admin perspective control

Beta 3.1.1 cleaned up issues discovered once the app started seeing real beta use. The biggest change was keeping an elevated user's personal jobs and shifts separate from the other agents they are allowed to manage.

What changed in Beta 3.1.1

  • Changed elevated accounts so their normal app view starts with their own data, not every agent's data mixed together.
  • Added an agent perspective selector for Manager, Admin, and Global Admin users.
  • Kept the perspective selector available for support, review, and management work.
  • Added the ability to delete shifts from the Shifts page.
  • Improved job creation handling when two agents create similar jobs that could otherwise collide behind the scenes.
  • Improved server error responses so vague "Invalid Server Response" messages are less common.
  • Made API failures easier to inspect when a job or shift fails to save.

Why it matters

Admin visibility is useful, but it should not make personal tracking messy. This release restored the feeling that each user has their own work view while still allowing higher roles to step into another agent's perspective when needed.

Tester notes

  • Sign in as an elevated user and confirm the default view shows your own data.
  • Switch to another agent perspective and confirm that agent's data is visible for review.
  • Create two similar jobs under different agents and confirm both can save correctly.
  • Delete a test shift and confirm it disappears from the schedule and shift list.

Beta 3.1

Beta 3.1

Self-service account requests with approval review

Beta 3.1 introduced the first complete account-request flow. New users can create their own account request, verify their email, and wait for review instead of needing an admin to build the account manually.

What changed in Beta 3.1

  • Added a public Create Account flow from the sign-in screen.
  • Collected basic account details needed to identify and support a new agent.
  • Defaulted all new accounts to Agent access unless someone with higher access changes it.
  • Blocked common disposable email domains so account requests are tied to more reliable email addresses.
  • Added email verification before a new account can be reviewed.
  • Added pending-account notifications for Manager, Admin, and Global Admin users.
  • Allowed users above Agent level to approve new account requests.
  • Sent an approval email once the new account is ready to use.

Why it matters

This release made early access realistic. Agents can request access without a manual database change, but the app still keeps the door controlled so unapproved users cannot immediately access jobs, shifts, or reports.

Tester notes

  • Create a test account from the public sign-in page.
  • Verify the test email and confirm the account remains pending until review.
  • Approve the account from an elevated user account.
  • Confirm the new user can sign in only after approval.

Beta 3.0

Beta 3.0

Foundation rebuild for the Hostinger web app

Beta 3.0 was the foundation release for the current web-app direction. The goal was to move OdinShift away from the prototype phase and into a cleaner Hostinger-hosted structure that could support real users, safer releases, and future manager/admin tools.

What changed in Beta 3.0

  • Started the move away from direct browser-side database access and toward a Hostinger PHP/MySQL backend.
  • Created the first app API structure for sign-in, session checks, jobs, shifts, incidents, profiles, and roles.
  • Added a protected config pattern so database credentials stay out of public upload packages.
  • Built the first Hostinger-ready database shape for users, jobs, job assignments, job shifts, incidents, people involved, and vehicles.
  • Added database health checks and setup checks to make failed deployments easier to diagnose.
  • Created the first clean upload-folder workflow so the live site can be replaced with a prepared release package.
  • Kept the future iOS plan in mind by treating the web app as the primary product with a future companion app using the same database.

Why it matters

This version was less about flashy features and more about giving OdinShift a safer spine. By putting the database behind an API, future role rules, account approvals, manager tools, and mobile-app access become much easier to control.

Tester notes

  • Sign in and confirm the main Jobs, Shifts, Incidents, and Reports pages load.
  • Confirm newly entered jobs and shifts save to the Hostinger database.
  • Confirm private config files are not included in upload folders meant for public hosting.