Ensure BlueprintQueue queries create table if not exists before fetching data; fixes failing queue load by executing CREATE TABLE IF NOT EXISTS default.blueprint_queue prior to SELECT.
X-Lovable-Edit-ID: edt-d0df6bde-5ebd-40dc-8371-6e8697c2b6b6
Move queue into separate route after history and ensure it renders via QueuePage with BlueprintQueue component; align navigation to show Queue as its own tab after History and fix routing to reflect project structure.
X-Lovable-Edit-ID: edt-2dde670b-062c-4598-9f7f-a88cdbf9597d
Introduce a new blueprints queue tab in Jobs page with a simple ClickHouse-backed table for foremen to queue blueprints via Typesense search. Include removable CREATE TABLE IF NOT EXISTS in code comments and wire tab into Jobs page.
X-Lovable-Edit-ID: edt-a8530ab3-1481-4054-abe6-b87b14116543
Introduce a new compact BlueprintQueue tab to display a simple upcoming blueprints table.
- Adds a stopgap BlueprintQueue with ClickHouse data table instructions in comments.
- Includes Typesense-powered search to pick blueprints by name using a dropdown.
- Persist user input and selections via localStorage and integrate into the existing tab system.
X-Lovable-Edit-ID: edt-0964e7c4-7396-4f3e-aacc-55e17eb468b9
Enable character-based grouping in JobTimeline: new structure groups jobs by character name, sorts by start date, and updates rendering to show one row per character with headers. Adjusted visibility logic to compute visible jobs across all groups, replaced previous per-character grouping with flat rendering, and aligned time calculations accordingly.
X-Lovable-Edit-ID: edt-6f979440-f63f-4a3b-a86b-5e13d8ecb032
Allow panning the timeline via wheel/trackpad only when holding Shift, enabling page scroll otherwise; adjust time markers to show date when day changes and time otherwise, using trimmed ISO-like labels for markers.
X-Lovable-Edit-ID: edt-8ec78417-c9f2-4ed0-a464-5d42dd3b1d37
Enable continuous horizontal scrolling of the JobTimeline, switch to now-centered window, remove centerTime panning, refactor markers and rendering to use ISO8601 normalization, and adjust UI text and hooks accordingly.
X-Lovable-Edit-ID: edt-c4aa6481-f960-45b0-98b3-c18cdc37e2b0
Scope history tab to per-job rendering (not per-character),
add zoom and historic jobs to timeline, fix analytics query path,
and wiring to fetch timeline data with character filtering.
X-Lovable-Edit-ID: edt-50e00fcc-39be-4987-96f5-cfbe00f0bb64
Expose character selection in DashboardContext, plumb character filters into CompletedJobsAnalytics API, and update History page to use timeline. Add JobTimeline component to render a horizontal, real-time updated timeline and integrate with History.
X-Lovable-Edit-ID: edt-cf704711-3b0a-45c0-af74-be35e70da786
Resolve name resolution for product types and actions by fetching type names from Typesense instead of showing Type <ID> in Production and Insights tabs. Remove facility usage display to simplify metrics. Update components to asynchronously resolve type names and adjust rendering accordingly.
X-Lovable-Edit-ID: edt-00f48d02-5318-405d-8bd2-cd582caaa1a3
Refactor analytics to use string facilityId, convert to routes (/jobs, /metrics, /production, /insights, /history), and add transient All toggle for character filtering. Update production metrics rendering to handle numeric facilityId gracefully and ensure metrics are scoped to selected characters with an optional All view. Remove Index.tsx page in favor of route-based pages.
X-Lovable-Edit-ID: edt-aaffc053-c656-4358-9240-26950a3dd108
Add ActiveJobsMetrics, ProductionAnalytics, and PerformanceInsights integration; replace old tabbed dashboard with consolidated analytics, including ISK/time metrics and character/activity breakdowns. Update Index.tsx to wire new components.
X-Lovable-Edit-ID: edt-94e9d9e0-8515-426c-ba3c-f2978b46b128
Time left now omits zero units and uses fixed widths
Adjust calculateTimeRemaining to:
- Show only non-zero time units (days/hours/minutes/seconds) in order
- Use fixed width formatting: days as 3-wide, others as 2-wide, space-padded
- Support cases with only seconds, only minutes, etc.
X-Lovable-Edit-ID: edt-bcdaf396-6c86-485e-b8da-b6105cdac626
- Update calculateTimeRemaining to output fixed-width, printf-style time strings:
include days when present, with days: "Xd HHh MMm SSs" or "HHh MMm SSs" or "MMm SSs" or "SSs" as appropriate
- Ensure widths are consistent to prevent dancing columns and reserve space accordingly
X-Lovable-Edit-ID: edt-07201840-3eab-45ba-859c-91f91fcf2d0d
Widen time left column and enforce fixed-width, monospace numbers to prevent row dancing. Pad time values for consistent formatting and ensure the time string renders in a single line. Adjusted related column widths and styles across JobRow and JobsTable.
X-Lovable-Edit-ID: edt-388c9295-e2a8-4ffa-8120-1af151956614
- Pretty print ISO dates by removing T and Z, and adjust to static display
- Prevent time-left column from dancing by fixing column widths
- Adjust related components: JobRow and JobsTable styling to keep layout stable
X-Lovable-Edit-ID: edt-fdc2e645-81c0-4b8d-adbf-da08ea8c43e8
Implement analytics for historical completed jobs:
- Add API and UI components to render analytics grouped by character, product, and activity
- Integrate CompletedJobsAnalytics into Index page and display sections for historical data
- Minor UI tweaks to sizing and icons for analytics panels
X-Lovable-Edit-ID: edt-791890f8-21a7-421b-b1e3-2c11ae864561
Update countdown to show days, hours, minutes, seconds ticking every second; fix sorting logic to re-sort on header click; ensure active stats reflect only selected characters.
X-Lovable-Edit-ID: edt-a00c5c95-0b37-4d0f-b12e-cb6014979097
Move character selection and notification settings into a SettingsDialog, fix None behavior, and persist selections via localStorage. Ensure characters are shown in a menu, not inline, and align with first-load initialization logic to avoid auto-select overwriting None/All states.
X-Lovable-Edit-ID: edt-450880c3-90db-406c-8b51-bc87e1e31606