Add 6 diagram shapes — Diamond, Parallelogram, Cylinder, Hexagon, RoundedRect, Triangle (v1.30.0)
Details
Adds UML/flowchart diagram shapes to the InfiniteCanvas with StreamGeometry
vector rendering, 0.7 opacity fills, configurable stroke colors, and centered
text labels.
Diamond: 4-point rotated square for decision nodes (default #FFDCB4 warm peach).
Parallelogram: 20% inset skewed rectangle for I/O operations (default #B4D2FF).
Cylinder: Rectangle body with elliptical top/bottom caps (15% height) for
database symbols (default #C8DCF0 slate blue).
Hexagon: Flat-top 6-point polygon with 25% left/right inset for preparation
steps (default #DCC8F0 soft purple).
RoundedRect: Pill-shaped rectangle with radius = min(h/2, w/4) for terminal
nodes (default #B4E6C8 mint green).
Triangle: 3-point upward-pointing triangle (default #FFC8C8 soft red).
Each shape has shape-specific click-create default dimensions and integrates
with the existing drop shadow, selection, resize, and connector anchor systems.
Render dispatch added to the main element type switch in InfiniteCanvasRendering.
Connector overhaul with smart routing, anchor visualization, and arrow modes (v1.29.0)
Details
Rewrites the InfiniteCanvas connector system with anchor-aware routing, visible
anchor points, configurable arrow directions, and connector selection support.
Connector rendering: Replace naive QuadraticBezier with anchor-aware CubicBezier
curves where control points extend outward from the anchor direction. Elbow
connectors now route orthogonally with perpendicular exit/entry margins and
at most two 90-degree turns instead of a simple midpoint split.
Arrow modes: New ArrowMode enum (Forward/None/Backward/Both) with direction-aware
arrow heads that correctly follow curved and elbow connector end tangents.
Connector color: Each connector can now specify a custom color, falling back to
the theme muted text brush.
Anchor visualization: Blue anchor dots (radius 5, hover radius 7) appear on all
element edges when the Connector tool is active, with hover tracking for visual
feedback during connector creation.
Connector selection: Click a connector in Select mode to highlight it with a
dashed overlay. Selected connectors can be deleted with Delete/Backspace.
Three new public methods (SetSelectedConnectorStyle, SetSelectedArrowMode,
SetSelectedConnectorColor) allow toolbar bindings to modify selected connectors.
Hit-testing: Style-aware connector hit tests dispatch to DistanceToLineSegment,
DistanceToElbowPath, or DistanceToCubicBezier based on connector style.
File splits: Extracted helpers to InfiniteCanvasHelpers.cs, tool-specific handlers
to InfiniteCanvasElementInteraction.cs, and anchor rendering to
InfiniteCanvasAnchorRendering.cs to stay within the 250-line modularity rule.
Model additions: ArrowMode enum, CanvasConnector.ArrowMode and Color properties,
6 new CanvasElementType constants (Diamond, Parallelogram, Cylinder, Hexagon,
RoundedRect, Triangle) and corresponding CanvasToolMode enum values as forward
declarations for the next commit.
Visual polish: 2px drop shadow offset on NoteCard, Rect, and Ellipse elements.
DefaultConnectorStyle, DefaultArrowMode, and DefaultConnectorColor StyledProperties
control defaults for newly created connectors.
Adaptive sync throttling via server rate-limit discovery (v1.11.0)
Details
Add RateLimitConfig type and get_rate_limits() API client method. On
startup the sync engine fetches the server's throttling config and uses
it to cap flush batches (25 entities/cycle) and insert inter-entity
delays (120ms). Overflow entities are re-queued for the next flush cycle.
This proactively prevents 429 rate limit errors during bulk syncs
instead of relying solely on reactive retry-with-backoff.
Add entity reference support to InfiniteCanvas (v1.28.0)
Details
Add cross-plugin entity reference drag-and-drop to the InfiniteCanvas
control. Introduces the privstack/entity-ref data format enabling any
plugin entity (tasks, contacts, events, etc.) to be dropped onto the
canvas as a reference card, then double-clicked to navigate back.
Changes:
- CanvasModels: add EntityReference type constant, EntityType/EntityId
fields on CanvasElement (additive, backward-compatible JSON)
- New EntityRefDropPayload model for drag format serialization
- New EntityRefStyle record for per-type badge colors and display names
- InfiniteCanvasControl: add EntityRefStyles styled property and
EntityReferenceClicked event alongside existing PageReferenceClicked
- InfiniteCanvasDragDrop: accept entity-ref format in OnDragOver/OnDrop,
deserialize payload and create entity_ref element with badge color
- InfiniteCanvasInteraction: handle entity-ref double-click navigation
before existing page-ref check
- Split InfiniteCanvasRendering.cs (361 lines) into two partials:
InfiniteCanvasRendering.cs keeps Render(), grid, empty state, creation
preview, and perf badge; InfiniteCanvasElementRendering.cs gets all
element-specific Draw methods plus new DrawEntityReference (rounded
card with colored badge circle, title, subtitle)
- New EntityDragHelper in UI.Adaptive/Helpers for plugins to create
entity-ref drag data without boilerplate
- Version bump: PrivStackSdkVersion 1.27.0 → 1.28.0
Add browser extension companion infrastructure (v1.30.0)
Details
Add IPC server using named pipes for secure local communication between the
desktop app and browser extensions via a native messaging bridge. Includes:
- Named pipe IPC server (IpcServer, IpcConnectionHandler, IpcMessageRouter)
with length-prefixed JSON protocol and constant-time auth token validation
- PrivStack.Bridge native messaging relay (C# AOT console app) that connects
browser extension stdin/stdout to desktop named pipe
- NativeMessagingRegistrar for auto-registering host manifests on Chrome,
Firefox, Edge, and Brave across macOS, Windows, and Linux
- BridgeAuthToken generation and storage in AppSettings
- Graph plugin integration: WebClip node type with filter checkbox,
data loading in GraphDataService, and persisted visibility toggle
- IPC message routing for clip.save, readlater, entity.search, snip.save,
transcribe.enqueue, history.batch_sync, and ping actions
- Version bump: 1.29.4 → 1.30.0
Get notified about new releases