Commit graph

136 commits

Author SHA1 Message Date
fd315326b4 Stop chart pointerdown from eating Duplicate on the context menu.
The menu sits inside the chart element, so pointerdown bubbled into
pan/tool capture and the Duplicate click never ran.
2026-08-28 15:20:32 -05:00
a057341bbf Put Duplicate on the drawings list; do not require a time under the click.
The handler never ran — no event, no POST. Right-click in empty time
also hid the menu. List button uses the selected trendline.
2026-08-28 15:17:19 -05:00
c1d508cb4f Duplicate a line even when 10 source bars would pass the horizon.
Prod never saw POST /api/lines: the browser aborted the shift. Clamp to
the last owned source slot so Duplicate still creates a copy.
2026-08-28 15:01:47 -05:00
6f03560e74 Default confluence zone alerts off; Config can turn them back on.
Armed drawings and DMA bells still fire. The pref lives in user_prefs
so pushes follow it, not a display checkbox.
2026-08-27 17:09:23 -05:00
3626795e03 Say why Duplicate did nothing.
It aborted on unresolved geometry, a failed 10-bar shift, or HTTP
error with only a console.error.
2026-08-27 02:26:02 -05:00
a1567fe82a Restore the live-price animation default.
Off in Config is per-browser; do not change the default for that.
2026-08-26 03:46:02 -05:00
168352872e Default live-price animation off.
The overlay still costs a few percent. LWC LargeDashed marks the line
without it.
2026-08-26 03:45:37 -05:00
25c2714850 Use larger CSS triangles for the live-price ends.
Same plot overlay, no extra axis width.
2026-08-26 03:42:21 -05:00
a16a1d0e6e Do not widen the price scale for the live-price arrows.
← sits on the plot, just left of the label. After-the-digits needs
space we should not take from candles.
2026-08-26 03:41:38 -05:00
b28c0ff75f Widen the price scale so 7687.00 ← fits after the label.
The axis was sized to the digits; there was no leftover strip.
2026-08-26 03:40:42 -05:00
e1e0e40c10 Keep the live-price ← just inside the chart, after the label.
The plot overlay cannot reach the axis; this one sits on #chart.
2026-08-26 03:39:56 -05:00
bcc86fbfd2 Put live-price arrows on the plot: → left, ← right.
The last arrow sat off the right edge of the chart.
2026-08-26 03:35:52 -05:00
54d7f880af Mark live price with a left arrow after the axis label.
The scale-wide frame sat too far right and barely read.
2026-08-26 03:33:43 -05:00
20d02fc3d2 Use LWC LargeDashed for the live price line.
Custom overlay dash was the wrong place to spend. LWC already paints
that line with the last candle.
2026-08-26 03:30:50 -05:00
8108f2dea3 Draw the live price as a dash-dot ray across the plot.
LWC keeps the axis label only. The overlay uses a 14-4-2-4 dash so it
does not look like a trendline.
2026-08-26 03:29:30 -05:00
5708150ba3 Show the live-price frame: keyframes were fading from opacity 0. 2026-08-26 03:28:14 -05:00
c784f9ed12 Pulse a frame around the live price label, not the whole plot.
Opacity on a ~50x20 box can use the compositor. The old full-width
gradient could not.
2026-08-26 03:26:26 -05:00
111d367224 Animate the live-price cue with transform only.
background-position on a full-width gradient was ~15% CPU. The dash
stays put; only a small shine translates.
2026-08-26 03:25:30 -05:00
f7fbee1187 Coalesce forming 1m ticks to one candle update per frame.
Schwab can print many times a frame; only the last OHLC is visible.
2026-08-26 03:22:22 -05:00
fe4e6b1ae8 Send only the live candle on a forming 1m tick.
Future calendars and HTF geometry wait until that timeframe advances.
The quote paints the header directly so Vue does not rerender the page
at 4 Hz.
2026-08-26 03:19:26 -05:00
60ffaf4657 Stop rebuilding the 1m time scale on every forming tick.
Identical future_times are now a no-op, and HTF ticks only resync lines
when a source bar is actually appended. Document the slotted-hole kink.
2026-08-26 03:12:00 -05:00
f5ba154c98 Count short tape holes in source index so 1m lines stay straight.
Prod already owned the empty 1m slots; source index still treated the
bars on either side as adjacent. Also post a geometry SNAPDBG on ?diag=1.
2026-08-26 03:04:52 -05:00
c28b0ce535 potential 1m fix 2026-08-26 02:27:32 -05:00
eb18de9bb9 Do not put off-window trendline times on the shared scale.
Sampling every source-TF timestamp pulled months of 30m/1d history
onto the 1m chart and dropped the lines. Clip samples to the displayed
window and never hand Lightweight Charts a null value.
2026-08-26 02:01:45 -05:00
becbc0e0b4 Sample trendlines on their own timeframe and hit-test the painted line.
1m was putting a point on every bar for 30m/1d lines, which kinked at
tape holes and made hover/select miss. Clicks that were eaten by the
vertical pan gesture now select on pointer-up.
2026-08-26 01:55:47 -05:00
c2ad2e8d7d Stop rebuilding chart overlays on every live tick.
Ticks were force-redrawing trendline overlays and, in diagnostic mode,
sampling canvas pixels. That maxed CPU. Also document production log
and capture access for agents.
2026-08-26 01:36:17 -05:00
e94bd3d3d2 Keep both drawing-visibility rules when hiding manual levels
Resolves a conflict between hide_finer_trendlines and upstream's
drawingVisible helper. They gate on different prefs — hideLowerTfDrawings
versus hide_finer_trendlines — so both apply rather than one replacing
the other.
2026-08-26 06:14:59 +00:00
5468bbec60 fix future drawing interactions 2026-08-25 05:41:55 -05:00
90fc77df92 fix canonical future geometry 2026-08-25 05:03:42 -05:00
cb81672a37 trendline fix and just 2026-08-25 04:00:52 -05:00
693d0873f8 diag delay so we can solve trendline slope problem 2026-08-24 01:43:35 -05:00
01acdce045 slope calc fix 2026-08-24 01:02:51 -05:00
18585e42cd trendline selection issue 2026-08-23 23:25:55 -05:00
eaf118ef8b drawings from higher timeframes to lower fixes 2026-08-23 21:37:19 -05:00
913eec34ea lower time frame trendlines blocked from dma chart 2026-08-23 21:10:09 -05:00
7c5f0a7627 large timeframes dashed 2026-08-23 18:27:08 -05:00
dae60fdf67 undo 2026-08-21 03:10:31 +00:00
6e69b7337a current bar fix and ma features 2026-08-20 23:15:34 +00:00
92a9d4b3d3 snapping 2026-08-20 16:07:19 +00:00
fbb469de57 fib fixes 2026-08-19 09:51:21 +00:00
b932fa2d75 fib label 2026-08-19 09:43:08 +00:00
ac2943f248 fib look and feel tweaks 2026-08-19 09:33:18 +00:00
1c3a852a03 better fib left start 2026-08-19 09:29:48 +00:00
5f39144dc8 fib width fix 2026-08-19 09:17:23 +00:00
58a64c1eeb fib levels 2026-08-19 09:09:47 +00:00
08cff3ce53 enable symbols and comments in the future whitespace 2026-08-19 08:36:31 +00:00
44cec38750 slope in tooltip 2026-08-19 05:30:16 +00:00
cc25871032 Keep the Schwab token alive, and reconnect from the header
The live socket never made a REST call, so the seven-day refresh
token expired while the chart still looked fine. A deploy then
could not log in. Ping user preferences every six hours, and when
the grant is already dead offer a one-click reconnect that writes
the token on the existing callback.
2026-08-18 10:11:02 +00:00
d9a272760b Add a Drawings layer toggle that hides lines and comments 2026-08-18 09:53:33 +00:00
1ee2a96fc0 more performance 2026-08-17 01:03:28 -05:00