Purple Log Architecture

Event Flow

Events, posted as JSON from various sources, append to a immutable log. Incrementally the log entries filter through category indexes, text filters and number-of-visible-entries filters. Finally the rendering layer merges the JSON records merge and generates HTML

SourcesDebuggerNetworkConsoleQuerypointspostMessage JSON
ChannelsBrowserInstrumentationJSON recv
LogEvent Logappend-only JSON array
Indexes*ResourcesConsoleLayout/Paintincremental array of log indexes
FilterFindAnythinginteractive (drop-down) and docked views
ViewportIndexViewport# rows rendered, can lock to bottom
Rendering*ResourcesConsoleLayout/Paintrow template expansion

User Interface

The UI can use the log views in different ways. The two simple ways to start are drop-down summary views for findAnything and table-like views to study or coordinate with editing.