Migrate docs/literate ScenarioResult plot recipe into CellularSheavesPlots extension#59
Draft
Copilot wants to merge 3 commits into
Draft
Migrate docs/literate ScenarioResult plot recipe into CellularSheavesPlots extension#59Copilot wants to merge 3 commits into
Copilot wants to merge 3 commits into
Conversation
* Add documentation for single integrator target tracking using TrackingDSL * Refactor Multi-Agent Tracking Module and Introduce Quadratic Cost Utilities - Split the MultiAgentTracking.jl file into multiple files for better organization: - Targets.jl: Contains the BobbingTarget struct and trajectory generation function. - TrackingProblems.jl: Defines TrackingEdge and TrackingProblem structs along with sheaf construction and trajectory extraction functions. - ScenarioResults.jl: Defines the ScenarioResult struct and its display methods. - QuadraticCosts.jl: Introduces utilities for building and solving quadratic control costs on the tracking sheaf. - Implemented build_control_cost_matrix to create a global quadratic cost matrix for agent controls. - Added solve_quadratic_on_basis to optimize control inputs while respecting Laplacian constraints. - Updated run_scenario to incorporate optional quadratic cost handling. - Added unit tests for quadratic cost utilities to ensure correctness of cost matrix construction and optimization. * Add Quadratic Costs module and update documentation * Update documentation for single-integrator target tracking and configure makedocs for production * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix QuadraticCosts test imports, docstring, docs pages, and image paths * Update module path for QuadraticCosts in documentation * correct residual for the optimal trajectory --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #59 +/- ##
==========================================
- Coverage 78.46% 77.02% -1.45%
==========================================
Files 29 29
Lines 2392 2437 +45
==========================================
Hits 1877 1877
- Misses 515 560 +45 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Copilot
AI
changed the title
[WIP] Migrate /docs/literate examples to new package extension
Migrate docs/literate ScenarioResult plot recipe into CellularSheavesPlots extension
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Centralizes custom plotting logic into the
CellularSheavesPlotsweak-dependency extension rather than defining it inline in literate examples. All literate files that callusing Plotsalready trigger the extension automatically via Julia's weak-dependency mechanism — no further changes needed there.Changes
ext/CellularSheavesPlots.jl: ImportsScenarioResultfromCellularSheaves.ControlSheaves.MultiAgentTrackingand adds the@recipeforScenarioResult(two-panely(t)/z(t)figure). Usessr.y_col/sr.z_colstored on the struct in place of the inlineIDX_Y/IDX_Zconstants.docs/literate/control/multi_quadrotor_target_tracking.jl: Removes the inline## Plot Recipesection. Adds a comment at theusing Plotscall noting that the extension provides the recipe.Other literate files (
nullspace.jl,trajectory_sheaf.jl,sheaf_laplacian_benchmarks.jl, control examples) use only standardplot/plot!/spycalls with no custom types or recipes, so they require no changes.Original prompt
Let's migrate all the /docs/literate examples to use the new package extension and make sure the docs build still succeeds.
[Chronological Review: The conversation began with a request to discuss a refactoring plan for the plotting code in the CellularSheaves.jl project. The user aimed to centralize plotting logic into a new extension called CellularSheavesPlots. The user then provided several attachments, including documentation and scripts related to plotting. The user specified that certain plots in the plotter and figure generation scripts should remain unchanged during the initial refactor phase. The user requested an updated plan reflecting these constraints and initiated the implementation in the cloud. The conversation progressed to migrating documentation examples to utilize the new package extension while ensuring the documentation builds successfully.][Intent Mapping:
[Technical Inventory:
[Code Archaeology:
[Progress Assessment:
[Context Validation: All critical information for continuation is captured, including the need to update the refactoring plan and migrate documentation examples while ensuring the build succeeds.]
[Recent Commands Analysis:
1. Conversation Overview: - Primary Objectives: User aims to centralize plotting logic into the CellularSheavesPlots extension, while ensuring certain existing plots remain unchanged during the initial phase. - Session Context: The conversation flowed from discussing the refactoring plan to specifying which plots to exclude from changes, requesting an updated plan, and initiating implementation in the cloud. - User Intent Evolution: The user started with a broad goal of refactoring, then narrowed focus to specific files and their roles in the project, culminating in a request to migrate documentation examples.- Technical Foundation:
- Core Technology: Julia programming language.
- Framework/Library: Plots.jl for plotting.
- Architectural Pattern: Refactoring to create a new extension for centralized plotting.
- Environment Detail: The project is hosted on GitHub, with a focus on documentation and examples related to the CellularSheaves.jl package.
- Codebase Status:
- File: 001_plotting_refactor_plan.md:
- Purpose: Outlines the plan for refactoring plotting logic.
- Current State: Initial plan created; awaiting updates based on user feedback.
- File: single_integrator_target_tracking.md:
- Purpose: Contains examples of plots that need to be updated.
- Current State: Pe...
Created from VS Code.