Changelog
- 34cc0f7 Fix HTTP 431 for long Explorer URLs
- 06c5f9d Merge branch 'main' into develop
- 3437218 build(nix): add a dev shell pinned to the CI toolchain
- 972837b chore(release): Prepare v2.6.0
- b86628f chore(release): Prepare v2.7.0
- 72100c0 ci(bun): bump Bun to 1.4.4
- 091bb99 ci(clickhouse): install the side-effect test function
- c7520c4 docs(changelog): fold the two Changed sections into one
- 69eddfb docs(cli): add time macros to the agent skill reference
- 2a59bb7 docs(clickhouse): say a query racing a version change fails once
- d554094 docs(clickhouse): state what two server versions behind one address get
- 2db601b docs(collections): describe pins, managed links and the upgrade report
- a07e1c4 docs(contributing): replace stale pnpm and layout notes
- 7f19b14 docs(dashboards): describe tabs and free panel sizes
- 74928b1 docs(dashboards): list every stored feature for API clients
- 5e7a477 docs(rfcs): add restricted source access and dashboards v2
- d0d6b98 docs(skill): sync the repo skill copy with the CLI's variable notes
- cc8c307 feat(cli): add --interval and --var to logchef sql
- d85ed7c feat(clickhouse): allow opt-in Recent activity on View sources
- a4f0090 feat(clickhouse): keep a query's own LIMIT and prove truncation
- 55529b0 feat(dashboards)!: require revisions for atomic saves
- b8c784b feat(dashboards): accept tabs and free grid sizes in schema 2
- 24c7d0c feat(dashboards): add exact typed frames and stat reducers
- 044bfc1 feat(dashboards): add stat comparisons and sparklines
- 8b4ed0a feat(dashboards): add tabs with lazy execution and free panel sizes
- 6de45a1 feat(dashboards): add thresholds and table formatting
- 7e147b7 feat(dashboards): apply the client schema contract on reads and writes
- baf789d feat(dashboards): build SQL result stats with number formats
- b4d6838 feat(dashboards): build result charts with stored column roles
- aee1c6f feat(dashboards): fetch one frame per panel query
- eb59a55 feat(dashboards): let a panel pick its interval and pin its range
- 1d742ad feat(dashboards): render charts from typed result columns
- 9e36dde feat(dashboards): render stats and tables from frames
- 7c52391 feat(dashboards): store panel intervals, ranges and the panel_time feature
- 3b7bbe6 feat(dashboards): validate result chart roles and options
- 0b9afbc feat(dashboards): validate result stats and number formats
- c6e61f8 feat(editor): complete and check queries as you type
- f3ab849 feat(explore): fit more log rows and give each control one home
- 2396442 feat(explore): keep the results table readable on wide sources
- dec2624 feat(explore): make results easier to read and filter
- 75354d3 feat(explorer): run macro queries in SQL mode
- 706e470 feat(frontend): show a result's truncation state
- 058630d feat(frontend): speak dashboard panel schema 2
- 4471849 feat(library): show link kinds and let creators delegate edit
- 8f40a28 feat(mcp): pass timezone, interval and variables to queries
- 5fe7280 feat(models): add dashboard panel blob schema 2
- d4d910a feat(palette): jump anywhere, run scoped searches and ask Chef with Cmd+K
- 4c0c913 feat(query): render macros from request inputs and validate timezones
- 185b2b4 feat(saved-queries): reserve the __ prefix for built-in macros
- 8bb25b3 feat(sources): put activity first in source inspection
- 5fd8de9 feat(store): derive dashboard list columns on every write
- 3373ada feat(template): expand built-in time macros in the scanner walk
- 31c00ce feat(variables): add date-only day template values
- ca70f73 feat(victorialogs): probe for a cut result past the request limit
- c83c907 fix(cli): honor saved inputs and preserve time instants
- 555abdc fix(cli): ignore time macros inside SQL comments
- 04bb161 fix(cli): keep limit_source and truncation in JSON stats
- dcb14e8 fix(cli): resolve saved defaults and preserve calendar time bounds
- e01b079 fix(cli): scan SQL like the server and keep added conditions live
- 07bf12c fix(cli): send RFC3339 bounds for native saved queries
- 4669775 fix(cli): send empty multiselect overrides as lists
- 539eba5 fix(cli): send typed saved query variables to the server
- ceae2b4 fix(clickhouse): cap a set operation as a whole
- 27d7339 fix(clickhouse): check unsent overflow modes after rows are released
- ff23b5d fix(clickhouse): count every SETTINGS name that can cut a result
- 25978f4 fix(clickhouse): count the user's profile limits in a result's truncation
- 933127a fix(clickhouse): fail a statement once when its server changes version
- 4ca8ee8 fix(clickhouse): handle EXCEPT right after a select list
- 20a618f fix(clickhouse): harden View activity limits and source edits
- eb605b6 fix(clickhouse): narrow the statement resend after a reconnect
- d0b45ef fix(clickhouse): never probe past a source's max_result_rows
- 0ca82d4 fix(clickhouse): read server capabilities again after a reconnect
- a1760f2 fix(clickhouse): report a break limit the result stayed under as complete
- 9a1e393 fix(clickhouse): report silent break limits as unknown
- 111cc46 fix(clickhouse): send every limit that can cut a result
- d592657 fix(clickhouse): send result overrides with Logchef's own queries
- e8461b3 fix(clickhouse): share a fresh server value with a late caller
- d94ad95 fix(collections): lock and recheck the caller in link writes
- 25b8552 fix(collections): recheck link authority and batch report editors
- 11cf29b fix(collections): split links into pins and managed links
- 6bcab1f fix(core): leave the request limit out of a compiled LogchefQL query
- 4e5e2e9 fix(dashboards): Draw bar value labels without outlines
- e899da7 fix(dashboards): address chart accessibility and label regressions
- 00a2ffb fix(dashboards): address stat comparison review findings
- 7d5cd3e fix(dashboards): clarify chart colors and time axes
- c19eed1 fix(dashboards): close schema 2 review gaps
- de985d6 fix(dashboards): correct chart labels and interactions
- 1893ef9 fix(dashboards): correct result frame previews and stat semantics
- 6bd31e8 fix(dashboards): distinguish the read-only reload notice
- a9f0bfd fix(dashboards): drop a discarded draft only after the leave settles
- a9a43f7 fix(dashboards): explain encoded payload size limits
- f901cac fix(dashboards): give unsupported panels their own read-only text
- 626a8e7 fix(dashboards): hide stale chart readouts and harden label colours
- b92275e fix(dashboards): ignore a second Discard confirm
- 9af8e93 fix(dashboards): keep draft panel runs when a conflicted discard fails
- a5c2829 fix(dashboards): keep sparkline messages outside the chart image
- 7fe3809 fix(dashboards): keep the tab URL still while discarding to leave
- 0f7894e fix(dashboards): leave without rerunning and keep viz-only discards quiet
- 4f2ea6a fix(dashboards): match backend bucket grids and date wire values
- 6eeee29 fix(dashboards): match time rules against the shown timestamp
- d5222e9 fix(dashboards): preserve and verify panel presentation options
- 543e4f0 fix(dashboards): preserve drafts when conflict actions fail
- 04c5554 fix(dashboards): preserve tab history and restored panel results
- 5e607a5 fix(dashboards): reconcile tab results and preserve tab history
- b436765 fix(dashboards): refuse to duplicate a dashboard this client cannot keep
- 5ce31ae fix(dashboards): render result charts efficiently with Unovis
- 2110be9 fix(dashboards): resolve edit conflicts without losing drafts
- 96f6c7d fix(dashboards): validate stat roles on empty result frames
- 99d5d90 fix(datasource): keep alerts and live tail off cut results
- 75412e3 fix(datasource): never send a stored password to a new host
- 4acb55f fix(explore): open the time range picker again
- a83431d fix(frontend): retain end-only windowed truncation stats
- 77e7b72 fix(frontend): show a byte cut on an empty dashboard panel
- bd377a3 fix(frontend): show the panel truncation chip in the header
- 1ce322f fix(sources): keep stored secrets on the endpoint they were saved for
- 67f0c39 fix(ui): give admin, account and source pages one layout
- 805f743 fix(variables): address date-only variable review findings
- eb4d5d9 fix(variables): align day defaults with display timezone
- 6f11229 fix(variables): seed date defaults through the shared wall-clock helper
- 8de3785 fix(variables): use display timezone for calendar and datetime seeds
- e872cdf fix(victorialogs): report truncation on windowed pages
- 0fd3af6 fix: adapt phase 14 to the develop baseline
- ec19a7b perf(dashboards): format a rule's cell only when a time rule reads it
- da2e5b1 perf: keep the editor out of page startup and cache assets for good
- ee1cefd refactor(datasource): move the stored-password rule out of UpdateSource
- 91f0d30 refactor(query): drop the timezone check CompileLogchefQL repeats
- b705388 refactor(template): fix the lint findings in the macro code
- 444ddba style(cli): format the trailing comment test
- 96fd0e9 style(test): group the store import with the module imports
- 7e2653c test(cli): serve query stats from the shared fake source route
- 11e4245 test(clickhouse): check the INSERT ran once before its error text
- bd092d9 test(clickhouse): close the progress probe's rows on success
- c4990e6 test(clickhouse): keep a SELECT that reported progress from a resend
- 705e83d test(clickhouse): run each source row cap case as a subtest
- a9d802a test(collections): arm the demoting store instead of swapping it
- ec167c2 test(dashboards): cover the panel_time client feature and windowed runs
- 934e803 test(dashboards): keep the free-width panel clear of the rules table
- 31af9a9 test(dashboards): pin negative stacked area labels below zero
- a06644b test(dashboards): pin the stored-row rule for tabs and free grid
- 6298cd3 test(dashboards): read truncation stats from the frame panel state
- 9c91874 test(dashboards): wait for chart ticks and adapt tab tests to develop
- 6e28db4 test(query): check bucket alignment across a daylight-saving change
- 4f61a2e test(query): cover the source's macro inputs and a stored macro name
- b22019a test(victorialogs): check each windowed page's truncation live