Skip to content

Initial codebase migration to public repository#1

Merged
jcallaham merged 11 commits into
mainfrom
initial-code-dump
Jan 22, 2026
Merged

Initial codebase migration to public repository#1
jcallaham merged 11 commits into
mainfrom
initial-code-dump

Conversation

@jcallaham

@jcallaham jcallaham commented Jan 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Initial migration of the Lynx project to a public repository. This PR includes the complete working codebase for Lynx, a lightweight block diagram GUI for control systems, along with SpecKit, an integrated feature specification workflow toolkit.

Project Components

Lynx - Block Diagram Widget

Interactive Jupyter widget for creating and editing control system block diagrams using drag-and-drop:

  • Core Blocks: Gain, Transfer Function, State Space, Sum Junction, I/O Markers
  • LaTeX Rendering: KaTeX-based rendering with auto-scaling and custom LaTeX support
  • Visual Features: Simulink-style port markers, editable orthogonal routing, block resizing, theme switching
  • Python Integration: Export to python-control for analysis and simulation
  • Persistence: Git-friendly JSON format with Pydantic schemas

SpecKit - Feature Development Workflow

Claude Code skills for structured feature development (.claude/commands/speckit.*.md):

  • /speckit.specify - Create feature specifications
  • /speckit.plan - Generate implementation plans
  • /speckit.tasks - Break down into actionable tasks
  • /speckit.implement - Execute task lists
  • Plus additional tools for clarification, analysis, and GitHub issue generation

Project Status

Features Implemented:

  • 15 fully implemented features (001-015)
  • 1 partially implemented (016 - documentation infrastructure complete, testing/deployment pending)

Test Suite:

  • Python: 407 tests
  • Frontend: 310 tests
  • Total: 717 tests

Test Coverage:

  • Python: 82% overall (key modules: diagram.py 93%, conversion 72-95%, blocks 80-100%)
  • Frontend: Comprehensive coverage across all block types and components

Tech Stack:

  • Backend: Python 3.11+, anywidget, Pydantic
  • Frontend: TypeScript 5.9, React 19.2, React Flow 11.11, Tailwind CSS v4
  • Package Management: UV (Python), npm (JavaScript)

Implemented Features (001-015)

  1. Core Jupyter Widget - Block library with drag-and-drop interface
  2. LaTeX Block Rendering - KaTeX rendering with custom LaTeX support
  3. Simulink-Style Port Markers - Connection-aware triangular markers
  4. Editable Orthogonal Routing - Interactive edge waypoint editing
  5. Hideable Block Labels - Toggle block label visibility
  6. Connection Labels - Label edges for signal identification
  7. Block Resizing - Interactive corner handle resizing
  8. Static Diagram Rendering - Export diagrams to PNG/SVG
  9. Collapsible Block Library - Expandable block palette
  10. Switchable Themes - Light/dark mode support
  11. Sum Quadrant Configuration - Click quadrants to configure signs
  12. Python-Control Export - Export diagrams to python-control objects
  13. Editable Block Labels - Double-click to edit block labels
  14. IOMarker LaTeX Rendering - Automatic index display with Simulink-style renumbering
  15. Intelligent Drag Detection - 5-pixel threshold for click vs drag

Changes in This PR

  • Complete codebase with all 15 fully implemented features
  • Added Jupyter kernel installation instructions to dev/DEV.md
  • Project infrastructure: UV environment, testing configuration, CI setup
  • Comprehensive documentation in CLAUDE.md and feature specs (16 total)

Test Plan

# Python tests (407 tests)
uv run pytest --cov=lynx

# Frontend tests (310 tests)
cd js && npm test -- --run

# Build verification
./build.sh

jcallaham and others added 11 commits January 22, 2026 05:28
- Update test counts: 407 Python + 310 frontend = 717 total tests
- Update coverage: 22% overall (key modules 72-100%)
- Add comprehensive Project Status section
- Update feature count: 15 fully implemented, 1 partial
- Correct all outdated test count references throughout document

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jcallaham jcallaham merged commit 84c8721 into main Jan 22, 2026
7 checks passed
@jcallaham jcallaham deleted the initial-code-dump branch January 22, 2026 11:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant