Skip to content

Releases: Clon1998/contrail

Contrail 0.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 21:00
34e2c80

0.4.0 — 2026-11-02

Features

  • logs: Colour each task's tag in the log list
  • logs: Right-click a line for the actions of its details
  • logs: Count events of a window's unloaded part, per timeline bucket
  • aws: Count events per bin with one Logs Insights query
  • fake: Count demo events per bin
  • logs: The timeline shows the whole window, with unloaded parts counted

Fixes

  • ui: Keep long task definitions inside the change dialogs
  • logs: Find free text in field values, not only the message
  • logs: Stretch the timeline to now while the tail follows
  • logs: Jump to the top or bottom with Ctrl+Home and Ctrl+End

Documentation

  • Line context menu, Ctrl+Home/End, task colours, field search
  • The timeline's unloaded part and its Logs Insights counts

Tests

  • e2e: Pause the live tail before opening surrounding lines

Contrail 0.3.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 21:59
31d2361

0.3.0 — 2026-10-30

Features

  • logs: Show on the timeline where the rows on screen are
  • ecs: Open a service in the ECS console
  • ecs: Stop tasks and update services, apart from the read-only source
  • ecs: Commands for changes, refused unless the user allows them
  • ui: Stop picked tasks and update a service, after a confirmation
  • ui: The service's actions beside its tabs
  • ui: Service actions in a menu next to its name
  • logs: Clear the timeline focus on the timeline itself
  • logs: Count how documents ended per topic and consumer group
  • logs: Route health of a log view, as a command
  • ui: Route health on a service's Routes card (M18, evaluation)

Fixes

  • ui: One smooth shimmer across all skeletons

Performance

  • logs: Show the newest events first, load the rest in the background

Documentation

  • Plan opt-in changes to ECS (M22)
  • Read-only by default, changes with a setting and an IAM statement
  • rust-notes: Try_join! and one Arc behind two trait objects
  • plan: Route health built on the Routes card, without the route map

Tests

  • e2e: Apply the cleared search before expanding a row

Contrail 0.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 23:16
4d43d09

0.2.0 — 2026-10-27

Features

  • logs: Read the consumer group of status events
  • trace: The topics a document went through, per service
  • fake: Demo documents that pass through demo-edge
  • trace: Complete a document once every topic it reached was read
  • fake: Keep demo-edge's status events to its documents
  • ui: Build a trace's graph from its hops
  • ui: Targets next to their service in a trace's graph
  • ui: Draw a trace on the route graph
  • ecs: Every route of a cluster for its route map
  • prefs: Transformers entered by hand
  • ui: Build a cluster's route graph with its transformers
  • ui: Move a graph's starting nodes next to where they lead
  • ui: A cluster's route map in a tab of its own
  • logs: Shorten logger names like Spring Boot
  • logs: Wrap long messages with a toggle
  • logs: Keep the list's place when it's hidden and shown again
  • ecs: Show a service seen before right away
  • ui: A skeleton instead of a spinner while a service loads
  • routes: Read the topics a service uses from its startup lines
  • fake: The demo transformer logs its consumers and producers
  • ecs: Find a cluster's transformers from their startup lines
  • ui: Draw transformers found in their startup logs
  • ecs: Route settings on the cluster map, without secrets
  • ui: Follow routes through services and search their settings
  • ui: Lay out the route map with ELK
  • ui: The cluster route map on a zoomable canvas
  • ui: A structured route card on the route map
  • ui: Node details beside the route map, a short hover card
  • ui: Keep the selected node in view when its details open
  • ui: Move the route map back when the details close
  • ui: The route map comes back as it was after another tab
  • ui: Hide switched-off routes on the route map
  • ui: Step through the route map's search matches
  • ui: Export the route map as a PNG or SVG image
  • prefs: Search history and saved searches
  • logs: Recall earlier searches with the arrow keys
  • logs: Saved searches in the search bar
  • ui: Run saved searches from ⌘K
  • logs: Count a view's events over time for the timeline
  • logs: A timeline of events above the log list
  • auth: Log in to SSO without the AWS CLI
  • links: Links to a log view and to the CloudWatch console
  • links: Open contrail:// links and make console links
  • links: Open AWS console pages, and only those
  • ui: Share a view as a link or in the CloudWatch console
  • logs: Focus the list on a part of the window from the timeline
  • logs: Show the date with row times when events predate today
  • routes: Find in the route map with Ctrl/Cmd+F
  • routes: Find in a service's route graph with Ctrl/Cmd+F
  • ui: Show skeletons instead of spinners while content loads
  • profiles: Offer to log in where a call failed for an expired session
  • logs: Find the lines of the same stream around an event
  • logs: Show the lines of the same task around an expanded line
  • logs: Turn a service's deployments, stopped tasks and events into markers
  • logs: Show deployments, stopped tasks and service events between the lines
  • brand: New aircraft-and-log-trail logo
  • site: The full logo in the header and its log-line trails in the hero

Fixes

  • logs: Keep the list's place in the middle of a long view
  • ui: Centre one-line nodes on the route map vertically
  • ui: The disabled-routes toggle says what a click does
  • build: Pin rust-ini 0.21.1 for the deep-link plugin on Linux
  • ui: Match the route map's topics by kind, integration or Kafka
  • routes: Take transformer topics from the lines with Kafka names
  • e2e: Count focused rows in the fake's live updates
  • logs: Read the timeline drag start from a ref
  • routes: Tell integration and plain Kafka topics apart in a service's graph
  • logs: A slimmer timeline with thin bars

Documentation

  • plan: Milestones M9–M20 after v0.1.0
  • plan: Schedule grouping similar lines, drop environment compare
  • Record how a trace is drawn on the route graph
  • Record the cluster route map and its transformers
  • rust-notes: Optional slices as filters and a direction enum
  • plan: Log view polish, transformer topology and route map v2
  • site: Refresh screenshots with the wrap toggle
  • Record the log view polish and transformers from startup lines
  • Record route-following and settings on the route map
  • plan: Saved queries, timeline, SSO login and links next
  • Earlier and saved searches, and what that stores
  • site: Refresh screenshots with the saved searches button
  • The timeline, and refreshed screenshots
  • The built-in SSO login writes the CLI's token cache
  • The AWS CLI is optional now
  • rust-notes: Let chains
  • Sharing views as links and in the console
  • Today's features in the README and on the website
  • site: Refresh the app screenshots
  • Record that the timeline focuses the list instead of the window

Refactoring

  • ui: Move the route graph view into its own component
  • ui: Lay out graphs of any length in columns

Tests

  • e2e: Trace the recorded demo documents through their cluster
  • aws: Run the tests that write and start scripts one at a time
  • e2e: Clear the search before leaving it in the recall test
  • routes: A transformer's start as a parser fixture
  • routes: Neutral names in the transformer startup fixture
  • e2e: Remove two races behind retried CI failures
  • e2e: Scroll a live list again until the row shows

Build and CI

  • ui: Add React Flow and elkjs for the route map
  • Fail the UI flows when a test passes only on retry

Contrail 0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 17:34
6b2bd7f

0.1.0 — 2026-10-24

Features

  • app: Scaffold Nuxt SPA frontend with Nuxt UI
  • app: Add Tauri 2 desktop shell
  • ipc: Add hello-world greet command
  • core: Add profile model and AWS config parser
  • core: Derive SSO session status from the token cache
  • core: Define the AuthProvider trait
  • fake: Add fake auth provider for demo mode
  • aws: Read profiles and SSO tokens from the local AWS files
  • aws: Run aws sso login with CLI detection
  • aws: Add AwsAuth with sts GetCallerIdentity check
  • app: Wire auth commands and demo mode into Tauri
  • ui: Add profile store with session status and login flow
  • ui: Add profile bar with switcher, session badge and login
  • core: Add ECS domain model and EcsSource trait
  • fake: Add demo clusters, services and tasks
  • aws: Add AwsEcs for clusters, services and tasks
  • app: Add ECS commands
  • app: Persist preferences (profile, regions, favorites, recent)
  • ui: Remember the last profile and region overrides
  • ui: Add the cluster and service tree
  • core: Expose image tags of task definition containers
  • ui: Add the service overview
  • ui: Add the ⌘K service palette with recent services
  • Add app settings to the preferences
  • ui: Apply colour mode, accent and time zone
  • ui: Add the settings dialog
  • core: Parse ECS JSON, Spring Boot console and plain log lines
  • core: Add log events, the multi-line joiner and the ring buffer
  • core: Resolve log streams from task definitions
  • fake: Generate demo logs in the three production formats
  • aws: Backfill logs with FilterLogEvents
  • app: Open log views with a backfill
  • Add the default backfill window to the settings
  • ui: Add a Logs tab with a debug log list
  • Add UI size and log font size settings
  • ui: Rebuild the settings dialog on Frida's layout
  • app: Open log views for a single task
  • ui: Add ANSI, stack trace and JSON helpers for log rows
  • ui: Add the virtualized log viewer and task views
  • core: Prepare the joiner and buffer for live streaming
  • core: Add the live tail port
  • fake: Stream demo logs live
  • aws: Add the StartLiveTail adapter
  • aws: Read whole services by their stream prefix
  • app: Run live sessions for log views
  • Add live tail auto-pause settings
  • ui: Follow log views live with pause and auto-pause
  • core: Parse and evaluate search queries
  • core: Add incremental view filters
  • app: Filter log views
  • Save "hide noise" lists per service
  • ui: Search, filter and highlight log views
  • ui: Keep opened services in tabs
  • Export a log view as .log or .jsonl
  • ui: Keyboard shortcuts overview
  • ui: Explain a stopped live tail and offer a retry
  • Buffer size setting and remembered log columns
  • logs: Field mapping per service
  • ui: Filter the service tree by name
  • ui: Pick a task from a dropdown in the logs toolbar
  • logs: Time windows as last-N-minutes or a fixed range
  • ui: Custom time windows; longer windows open paused
  • ui: Newest-first order as a log setting
  • ui: Level chips: middle click for only this level, context menu
  • search: Regex mode for the search box
  • ui: Show only the role in the header, details on hover
  • ui: Keyboard shortcuts in the settings
  • ui: Tooltips on buttons and controls
  • ecs: Environment variables and secret references in the overview
  • logs: Read a time window newest first in growing slices
  • logs: Load the newest events first, older ones on demand
  • ui: Show the state of older events at the end of the log list
  • ecs: Show the image each task runs
  • ecs: Reveal secret values on request
  • logs: Recognise pipeline framework status events
  • ui: State badges, state chips and "show this document"
  • logs: Search one ID across several services
  • ui: Trace an ID across the services of a cluster
  • logs: Opt in to Logs Insights when tracing many services
  • ecs: Rebuild routing-framework routes from env vars
  • ui: Routes card with source, topic, targets and connected services
  • ui: Remember a service's view after its tab closes
  • ui: Let new live rows fade in briefly
  • app: In-app updates from the GitHub releases
  • updater: Add the update signing public key
  • site: Add a website like Frida's
  • site: Give the website its own look
  • site: New pages in the sidebar and an evaluation section
  • routes: Include route settings filled from secrets
  • ui: Compact route rows, details on click
  • ui: Open traces in a tab of their own
  • ui: Draw a service's routes as a graph
  • routes: Readers' consumer groups and one more step in the graph
  • routes: Name input and output services, siblings on the topic
  • ui: The service in its own route graph, next to its siblings
  • fake: Give demo API requests a shared trace ID
  • time: Read typed time windows like 15m, yesterday or 9-11
  • logs: Make the time picker a typed command palette
  • ecs: Look up task definitions by ARN
  • routes: Keep a cluster's topic scan for the session
  • search: Filter pipeline status events by topic
  • logs: Summarize the fields of a view's matching events
  • logs: Name the status prefix in the field summary
  • logs: Add a Fields panel with the values of the matching events

Fixes

  • ui: Match profile search by substring instead of fuzzy
  • ui: Use status colour tokens readable in light mode
  • ci: Install Tauri system packages with apt again
  • Commit the plain-text parser fixtures
  • Tell missing IAM permissions apart from expired logins
  • ui: Close tabs on middle mousedown
  • ui: Keep rows on screen during live updates
  • aws: Report only the root cause of credential failures
  • ui: Offer a login when AWS rejects a session that looks valid
  • aws: Run aws sso login without a console window on Windows
  • ui: Keep the service overview within its width
  • ui: Use the app's checkbox for the search options
  • logs: Find correlation IDs under any prefix in the column
  • logs: Fall back to traceId fields in the correlation column
  • logs: Show new live rows without a placeholder flash
  • ui: Keep slow row fetches instead of dropping them on live updates
  • ui: Plain tooltips for every live tail state
  • ui: Switch to the new search's rows without a placeholder flash
  • trace: Show no outcome for a plain trace ID

Performance

  • ui: Prefetch log rows around the viewport

Documentation

  • Add project plan and agent guide
  • plan: Use synthetic fixtures for committed parser tests
  • Add README, Rust notes and decision log
  • plan: Adopt Frida's repository layout
  • plan: Switch the frontend stack to Frida's
  • Merge milestones into main and push to trigger CI
  • Document M1 (Rust notes, decisions, demo mode, login)
  • Document M2 (navigation, preferences, IAM policy, Rust notes)
  • plan: Persist preferences as typed JSON, not plugin-store
  • Document the M4 log viewer
  • Record decisions for M5–M8 (release, Live Tail pausing, updater)
  • Document M5 live tail (Rust notes, decisions, plan, README)
  • Document M6 search (syntax reference, Rust notes, decisions)
  • Document M7 (tabs, export, field mapping, decisions, Rust notes)
  • Hand-off notes (state of M7/M8 and next steps)
  • Record that a locally valid SSO session can be rejected
  • Mention the service filter and the task picker in the README
  • plan: Pipeline framework tracing and a route view as later ideas
  • Record the Playwright container for CI
  • Updates setup, public release steps and history audit
  • Update the hand-off notes
  • plan: Use invented service names in the log format notes
  • Point the history audit to the gitignored cleanup brief
  • Describe the website and its screenshots
  • Security & privacy, teams, FAQ, SECURITY.md and issue templates
  • Shorter readme in Frida's layout, user guide and development docs
  • Website evaluation pages in the decisions log
  • Describe the compact route rows
  • Trace tabs and route rows in the user guide and decisions
  • The route graph in the user guide and decisions
  • Consumer groups and connected services in the route graph
  • Input and output services in the route graph
  • The service's place in its route graph
  • guide: Drop the route view section
  • guide: Drop the play symbol and the pipeline status note
  • teams: List correlationId fields as trace IDs
  • site: Add a step-by-step tracing guide
  • Keep the status-event framework out of the public docs
  • Install, first run, demo mode, screenshots and known limitations
  • Describe updates and releases as set up

Refactoring

  • Move the desktop app under app/ like Frida
  • ui: Replace Nuxt with Frida's React stack
  • core: Serialize session timestamps via a Timestamp newtype
  • core: Share one error type for AWS-backed sources
  • core: Keep Prefs fields required in TypeScript
  • core: Type log field values for TypeScript
  • ui: Use the view's profile for noise lists and mappings
  • ui: Use the shadcn CLI's context menu component
  • ui: Two-column service overview with cards
  • ui: Share the is-typing check for single-key shortcuts

Tests

  • e2e: Add Playwright UI flows with the fake backend
  • ui: Record demo ECS data for the fake backend
  • e2e: Cover ECS navigation, palette and favorites
  • e2e: Cover the settings dialog
  • core: Add synthetic log fixtures for the parsers
  • app: Cover opening log views in demo mode
  • e2e: Cover the Logs tab; document M3
  • e2e: Cover the log viewer, task views and 100k lines
  • e2e: Cover live tailing, pause/resume and follow mode
  • app: Check a demo view goes live and grows
  • core: Property tests for the query language
  • e2e: Cover the main query types and search features
  • ui: Count levels correctly in the fake backend's live ...
Read more