| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
base_radius: 70 → 50, ring_gap: 40 → 32
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
Ripple rings are now elliptical (2:1 horizontal-to-vertical ratio)
to match the rectangular shape of nodes. This spreads children wider
horizontally where nodes need more room, and keeps them tighter
vertically where nodes are slim.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Children are now placed in concentric rings around the expanded node
like ripples in water, instead of a single arc at a large radius.
Ring placement:
- base_radius=70, ring_gap=40, min_node_gap=45
- Each ring fits floor(arc_length / min_gap) nodes
- Inner rings fill first, outer rings hold more nodes
- Semi-circle for non-root, full circle for root
Push-away reduced from 200+4n to a fixed 80px since the tight
rings no longer need a large clearance.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
| |
Call fit_subtree(node) after layout completes in expand_node so the
view zooms to show the expanded node and all its new children.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
| |
Push distance: 400+6n → 200+4n
Arc radius: 200+4n → 120+2.5n
Jitter: 40 → 20
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
| |
Mark nodes with _was_pushed after the first push-away from parent.
On subsequent expand after collapse, the node stays in place instead
of being pushed further away each time.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
mark_has_deps was setting has_deps=false on ALL nodes not in the
check set, including previously collapsed nodes that have deps.
The click guard (has_deps !== false) then blocked re-expansion.
Fix: only set has_deps=false on nodes not yet checked (undefined).
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
| |
The breadcrumb is for navigation only — selecting a path segment
navigates the tree browser panel, it should not dim graph nodes.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extract ~2000-line GraphEngine class from duplicated code across
graph-debug-playground.js, graph.js, and minigraph.js. All three
consumers now share: QuadTree layout, viewport culling, text LOD,
context menu (collapse/re-expand/fit subtree/trace to root/pin),
compression fill, descendant dragging, overlap removal, loading pulse.
New features added to the shared engine:
- Compression slider: arrow beneath the gradient scale filters nodes
by compression ratio with smooth fade
- Edge-type node hiding: toggling off an edge type fades out nodes
that become unreachable from roots
- Graph search overlay (Ctrl+F / find button): highlights matches,
dims non-matching nodes, navigate with Enter/Shift+Enter
- Quick-filter pills: leaves, unresolved, large (top 20% by size)
- Breadcrumb path filter: clickable path segments dim non-matching
nodes, synced with the right-panel tree browser
- Improved node appearance: slimmer, rounder, border-based styling
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Connect the graph debug playground to live zenstore API data via
project/oplog URL parameters. Builds a path prefix tree from the
indexer as the entry point for navigating large oplogs (1M+ entries).
- dual-mode: no params = existing synthetic mode, with params = real data
- prefix tree built from indexer.enum_all(), shown as group nodes
- group nodes expand into sub-groups or individual entries
- entry nodes fetch deps via CBO API with legacy fallback
- dep IDs resolved via indexer.lookup_id() with hex fallback
- async expansion with loading pulse animation
- has_deps pre-check for children (same pattern as graph.js)
Still TODO: testing with live data, edge cases, polish.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
Adds list/tree/graph links to the section header of the oplog,
tree, and graph pages. Links are displayed in a row at the top
right, on the same line as the section heading, with the
border extending under them.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
| |
|
|
|
|
|
|
| |
Canvas-based force-directed graph for exploring package dependencies.
Nodes show short names with full path on hover tooltip (with size/dep info).
Supports pan, zoom, node drag, click-to-expand, double-click to promote
nodes to root, right-click to demote. Includes side panel with browsable
entry tree and filter. Linked from project page and entry detail page.
|
| |
|
|
|
| |
* implemented selective request logging for http.sys for consistency with asio
* fixed traversal of GetLogicalProcessorInformationEx to account for variable-sized records
* also adds CPU usage metrics
|
| |
|
| |
* convert ZEN_ASSERTs to exception to handle corrupt data gracefully
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Feature: Added `--security-config-path` option to zenserver to configure security settings
- Expects a path to a .json file
- Default is an empty path resulting in no extra security settings and legacy behavior
- Current support is a top level filter of incoming http requests restricted to the `password` type
- `password` type will check the `Authorization` header and match it to the selected authorization strategy
- Currently the security settings is very basic and configured to a fixed username+password at startup
{
"http" {
"root": {
"filter": {
"type": "password",
"config": {
"password": {
"username": "<username>",
"password": "<password>"
},
"protect-machine-local-requests": false,
"unprotected-uris": [
"/health/",
"/health/info",
"/health/version"
]
}
}
}
}
}
|
| |
|
|
|
|
|
|
| |
* `RwLock::WithSharedLock` and `RwLock::WithExclusiveLock` can now return a value (which is returned by the passed function)
* Comma-separated logger specification now correctly deals with commas
* `GetSystemMetrics` properly accounts for cores
* cpr response formatter passes arguments in the right order
* `HttpServerRequest::SetLogRequest` can be used to selectively log HTTP requests
|
| |
|
| |
also made sure log initialization calls it to ensure the console output format is retained even if the console logger was set up before logging is initialized
|
| | |
|
| | |
|
| |
|
| |
made logging config options from zenserver available in zen CLI
|
| |
|
|
|
| |
requests (#753)
* add IHttpRequestFilter to allow server implementation to filter/reject requests
|
| |
|
| |
* add IsLocalMachineRequest to HttpServerRequest
|
| |
|
| |
* add simple http client tests and fix run loop of http server to not rely on application quit
|
| |
|
|
|
| |
* add oplog snapshot function to allow reduction of held oplog locks
* release project lock when precaching each oplog
|
| |
|
| |
* Fix formatting of stat pages
|
| | |
|
| | |
|
| |
|
|
|
|
| |
mode (#745)
* only check file size for requested range in asio TransmitFileAsync in debug mode
* only do Transmit file for whole files
|
| |\
| |
| | |
Run Windows service as an interactive session, so we correctly respond to RequestApplicationExit when requested to stop by the service manager
|
| | |
| |
| |
| |
| |
| | |
respond to RequestApplicationExit when requested to stop by the service manager"
This reverts commit b380c1bac4b738f49cd412697e0a051402e6d171.
|
| | |
| |
| |
| | |
non-interactive sessions
|
| | |
| |
| |
| | |
RequestApplicationExit when requested to stop by the service manager
|
| | |
| |
| |
| | |
* replace http router AddPattern with AddMatcher
* fix scrub logging
|
| | |
| |
| |
| |
| | |
* implemented chunking for TransmitFile path, to ensure payloads exceeding the TransmitFile API limit of 4GB can be handled
* also fixes similar issue with memory path
|
| |\ \
| | |
| | | |
Restrict filesystem reads in snapshot to paths under project root
|
| | | | |
|
| | | |
| | |
| | |
| | | |
project root
|
| | | |
| | |
| | |
| | | |
out of loop
|
| | |/ |
|
| | |
| |
| | |
* reduce held locks while performing scrub operation
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
* reduce maximum size per chunk to read to reduce disk contention
* increase timeout before warning on slow shut down of zenserver
* reduce default window size for blockstore chunk iteration
|
| | |
| |
| | |
* don't do full cb-object validation on cache records when read from disk
|
| | | |
|
| | |
| |
| |
| | |
avoid integer vs float conversion issues (#735)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Feature: `zen builds download` now supports `--download-spec-path` to determine what content to download from a build
- The unstructured format expects one line per file relative to the root with '/' as a path delimiter
- The structured format uses JSon format and the `--download-spec-path` must have extension `.json` to enable structured input
{
"parts": {
"default" : {
"files": [
"foo/bar",
"baz.exe"
]
},
"symbols": {
"files": [
"baz.pdb"
]
}
}
}
|
| | |
| |
| |
| |
| |
| | |
* add ability to override scheduling mode in ParallelWork
* Don't increase buffering size when copying from local cache with --boost-worker-memory enabled
* Rework scheduling writes of downloaded data to reduce memory usage
|
| | |
| |
| |
| | |
- Feature: Added `--chunking-cache-path` option to `zen builds upload` and `zen builds diff`
- Path to cache for chunking information of scanned files. Default is empty resulting in no caching
|
| | | |
|