Milestones 🌸#182
Conversation
[WIP] Modify buildPassed job to report failures without failing
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
…code-again [WIP] Refactor duplicated code for improved maintainability
…code-again-again [WIP] Refactor duplicated code in the codebase
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
* Initial plan * Add energy calculation functions with comprehensive tests Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
[WIP] Add audio framework to project
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
- Add session-scoped file content and AST parse caching in conftest.py - Update test_suite_validation.py to use cached fixtures (eliminated 22 file opens, 12 AST parses) - Update test_cross_file_consistency.py to use cached fixtures - Test runtime improved from 0.54s to 0.28s (~48% faster) - Estimated 10-50x improvement for larger test suites Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
- Rename ast_cache parameter to ast_tree_cache for clarity - Add comprehensive docstrings to helper functions - Simplify test_no_syntax_errors logic (avoid duplicate parsing) - Document repo_root scope change rationale Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
…rformance [WIP] Identify and suggest improvements for inefficient code
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
…audio-file Add documentation comments to `__all__` in audio.py
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
There was a problem hiding this comment.
6 issues found across 24 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="docs/iteration-email-setup.md">
<violation number="1" location="docs/iteration-email-setup.md:93">
P2: The documentation claims `:runner:`/`:hand:` shortcodes are supported, but the workflow only matches the Unicode emoji. This will cause shortcode-formatted tasks to be skipped. Update the docs to reflect Unicode-only support (or extend the workflow).</violation>
</file>
<file name=".github/workflows/iteration-status-emails.yml">
<violation number="1" location=".github/workflows/iteration-status-emails.yml:72">
P2: The `grep -c . || echo "0"` pattern double-prints `0` when there are no matches, so the count becomes `"0 0"`. This will report incorrect task counts in the email. Use `|| true` (or remove the `||` entirely) to avoid duplicating output.</violation>
</file>
<file name="src/symphonic_joules/energy.py">
<violation number="1" location="src/symphonic_joules/energy.py:91">
P2: Squaring integer PCM waveforms can overflow and produce incorrect intensity values. Cast to float before squaring to keep the intensity proxy accurate.</violation>
</file>
<file name="tests/workflows/test_iteration_status_emails_workflow.py">
<violation number="1" location="tests/workflows/test_iteration_status_emails_workflow.py:262">
P2: Reading markdown files with emoji using Path.read_text() without an explicit encoding can fail on non‑UTF‑8 locales (e.g., Windows cp1252). Specify UTF‑8 when reading the dashboard (and other emoji-bearing docs) to keep tests portable.</violation>
</file>
<file name="src/symphonic_joules/audio.py">
<violation number="1" location="src/symphonic_joules/audio.py:89">
P2: Handle channel-first arrays before calling sf.write. Librosa returns multi-channel audio as (channels, samples), but soundfile expects (samples, channels), so writing without transposing will produce incorrect output for stereo/ multichannel audio.</violation>
</file>
<file name="README.md">
<violation number="1" location="README.md:156">
P3: The README understates the test count (“190+ tests”). Current test suite has ~885 tests, so the documented count is inaccurate. Consider updating to a more accurate or resilient statement.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
|
||
| ### Supported Emoji Formats | ||
|
|
||
| Both Unicode emoji and GitHub shortcodes are supported: |
There was a problem hiding this comment.
P2: The documentation claims :runner:/:hand: shortcodes are supported, but the workflow only matches the Unicode emoji. This will cause shortcode-formatted tasks to be skipped. Update the docs to reflect Unicode-only support (or extend the workflow).
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/iteration-email-setup.md, line 93:
<comment>The documentation claims `:runner:`/`:hand:` shortcodes are supported, but the workflow only matches the Unicode emoji. This will cause shortcode-formatted tasks to be skipped. Update the docs to reflect Unicode-only support (or extend the workflow).</comment>
<file context>
@@ -0,0 +1,274 @@
+
+### Supported Emoji Formats
+
+Both Unicode emoji and GitHub shortcodes are supported:
+
+- In Progress: `🏃` or `:runner:`
</file context>
|
|
||
| def test_dashboard_has_content(self, dashboard_path): | ||
| """Verify the dashboard file has content.""" | ||
| content = dashboard_path.read_text() |
There was a problem hiding this comment.
P2: Reading markdown files with emoji using Path.read_text() without an explicit encoding can fail on non‑UTF‑8 locales (e.g., Windows cp1252). Specify UTF‑8 when reading the dashboard (and other emoji-bearing docs) to keep tests portable.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tests/workflows/test_iteration_status_emails_workflow.py, line 262:
<comment>Reading markdown files with emoji using Path.read_text() without an explicit encoding can fail on non‑UTF‑8 locales (e.g., Windows cp1252). Specify UTF‑8 when reading the dashboard (and other emoji-bearing docs) to keep tests portable.</comment>
<file context>
@@ -0,0 +1,398 @@
+
+ def test_dashboard_has_content(self, dashboard_path):
+ """Verify the dashboard file has content."""
+ content = dashboard_path.read_text()
+ assert len(content) > 0
+
</file context>
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
…ette-html Add Soft Systems Palette HTML reference
There was a problem hiding this comment.
Pull request overview
This PR expands Symphonic-Joules with new core audio/energy functionality and public API exports, alongside workflow/documentation additions for iteration status emails and markdown lint enforcement.
Changes:
- Add
audio+energymodules, export them from the package public API, and introduce new unit tests and dependency updates. - Add an iteration status email GitHub Actions workflow, with supporting dashboard/setup docs and workflow tests.
- Add markdown linting configuration + CI job, and adjust project docs/README plus some repo configuration (Pages deploy branch, VS Code settings).
Reviewed changes
Copilot reviewed 23 out of 25 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/workflows/test_iteration_status_emails_workflow.py | Adds workflow-level tests for the new iteration status email workflow. |
| tests/test_suite_validation.py | Refactors meta-tests to use cached file contents/AST for faster workflow-test validation. |
| tests/test_public_api_exports.py | Adds tests asserting top-level exports for the package API. |
| tests/test_integration_suite.py | Adds an integration check that blank.yml includes a markdown lint job. |
| tests/test_energy.py | Adds unit tests for new energy calculations and proxy analyses. |
| tests/test_cross_file_consistency.py | Updates cross-file meta-tests to reuse cached AST/content fixtures. |
| tests/test_audio.py | Adds unit tests for new audio I/O and processing helpers. |
| tests/requirements.txt | Extends test dependencies for new audio/energy tests. |
| tests/conftest.py | Adds session-scoped caches to reduce repeated I/O and AST parsing in meta-tests. |
| src/symphonic_joules/energy.py | Implements energy calculation helpers and exports them via __all__. |
| src/symphonic_joules/audio.py | Implements audio load/save and basic signal utilities and exports them via __all__. |
| src/symphonic_joules/init.py | Exposes audio/energy helpers from the top-level package via __all__. |
| requirements.txt | Adds runtime dependencies for audio processing. |
| docs/performance-improvements.md | Documents test suite performance optimizations and the caching approach. |
| docs/january-2026-progress.md | Adds the January 2026 iteration progress dashboard that the workflow parses. |
| docs/iteration-email-setup.md | Adds setup and usage docs for the iteration email notification workflow. |
| docs/architecture.md | Rewrites architecture documentation in a narrative/modular style. |
| assets/typing-header.svg | Adds an SVG header asset referenced by the README. |
| README.md | Major rewrite/expansion with diagrams, installation, testing, and roadmap content. |
| .vscode/settings.json | Updates VS Code GitHub PR extension ignored branch configuration. |
| .markdownlint.json | Adds markdownlint configuration (MD040 allowed languages, style rules). |
| .github/workflows/static.yml | Changes Pages deployment trigger branch to canary. |
| .github/workflows/iteration-status-emails.yml | Adds the new scheduled/triggered email notification workflow. |
| .github/workflows/blank.yml | Adds a new lint-markdown job to CI. |
| import numpy as np | ||
| import librosa | ||
| import soundfile as sf | ||
| from typing import Tuple, Dict, Any, Optional | ||
|
|
||
|
|
||
| def load_audio(path: str, sr: Optional[int] = None, mono: bool = True) -> Tuple[np.ndarray, int, Dict[str, Any]]: | ||
| """ | ||
| Load audio file and return waveform, sample rate, and metadata. | ||
|
|
There was a problem hiding this comment.
The PR description focuses on documentation and workflow/linting changes, but this PR also introduces substantial new runtime functionality (audio/energy modules, public API exports, and new unit tests) and updates dependencies. Please update the PR description (or split the PR) so reviewers and release notes accurately reflect the functional changes being shipped.
| { | ||
| "githubPullRequests.ignoredPullRequestBranches": [ | ||
| "Master" | ||
| "main" |
There was a problem hiding this comment.
This changes the ignored PR branch from Master to main, but the existing VS Code config tests still assert that Master is ignored and that main is not ignored (e.g., tests/test_vscode_config.py::test_master_branch_is_ignored and tests/test_vscode_configuration.py::test_no_main_branch_ignored). Either update those tests (and confirm the intended meaning of ignoredPullRequestBranches), or keep Master here to avoid breaking the test suite.
| "main" | |
| "Master" |
|
|
||
| ## Email Content Example | ||
|
|
||
| ``` |
There was a problem hiding this comment.
The email content example code fence is missing a language tag (it starts with just ```). With MD040 enabled in markdownlint, this will fail linting. Use an explicit tag like text/`plaintext` for this example.
| ``` | |
| ```text |
|
|
||
| ## 📁 Project Structure | ||
|
|
||
| ``` |
There was a problem hiding this comment.
This fenced block is missing a language tag (it starts with just ```). With MD040 enabled in markdownlint, this will fail linting. Add an explicit language like text/`plaintext` for the directory tree block.
| ``` | |
| ```text |
| 4. Do NOT use parentheses immediately after the emoji (e.g., `🏃 (text)` will be filtered out as a legend entry) | ||
| 5. Avoid using the emoji in headers (`##`) or legend sections | ||
|
|
||
| The workflow filters out: | ||
| - Markdown headers containing emoji | ||
| - Legend entries (lines with emoji followed by parentheses) |
There was a problem hiding this comment.
The formatting rules here don’t match the actual grep filters in .github/workflows/iteration-status-emails.yml. The workflow doesn’t generically exclude lines like 🏃 (text)—it only filters specific substrings like (runner/(hand and requires the line to start with a bullet (- 🏃 / - ✋). Consider updating these bullets to reflect the real matching rules so users don’t rely on incorrect constraints.
| 4. Do NOT use parentheses immediately after the emoji (e.g., `🏃 (text)` will be filtered out as a legend entry) | |
| 5. Avoid using the emoji in headers (`##`) or legend sections | |
| The workflow filters out: | |
| - Markdown headers containing emoji | |
| - Legend entries (lines with emoji followed by parentheses) | |
| 4. Avoid legend-style list items that start with `- 🏃` or `- ✋` and describe the emoji in parentheses (e.g., `- 🏃 In progress (runner)`, `- ✋ Needs review (hand)`) — these are treated as legend entries and ignored by the workflow. | |
| 5. Avoid using the emoji in headers (`##`) or legend sections | |
| The workflow filters out: | |
| - Markdown headers containing emoji | |
| - Legend entries that begin with `- 🏃` or `- ✋` and include legend text like `(runner` or `(hand)` |
| - Dashboard parsing logic | ||
| """ | ||
|
|
||
| import os |
There was a problem hiding this comment.
Import of 'os' is not used.
| import os |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
🎵🚀 Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
|
@JaclynCodes I've opened a new pull request, #184, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Misfit <218383634+JaclynCodes@users.noreply.github.com>
Co-authored-by: JaclynCodes <218383634+JaclynCodes@users.noreply.github.com>
Update README test count from 190+ to 800+
268d9a4
into
copilot/update-build-passed-job
This pull request introduces significant updates to the Symphonic-Joules project, focusing on architectural documentation, CI/CD workflow improvements, and code quality enforcement. The main highlights are a major rewrite of the architecture document to use a more narrative and modular style, the addition of new GitHub Actions workflows for status notifications and markdown linting, and configuration changes to support these workflows and improve maintainability.
Documentation overhaul:
docs/architecture.mdto use a metaphor-driven, modular, and persona-based style, introducing new sections such as the Harmonic Circuit (data flow), Fluidity Protocol (performance), Integrity (security), and detailed persona logic with YAML examples. The new document replaces traditional technical descriptions with a more narrative and recursive approach, while still providing technical guidance. [1] [2]Continuous Integration and Workflow enhancements:
.github/workflows/iteration-status-emails.yml, a new workflow that parses the January 2026 progress dashboard for task statuses and sends daily email notifications to team leads, triggered by file changes, schedule, or manual dispatch.lint-markdown) to.github/workflows/blank.ymlto enforce code block language tags and markdown style across all.mdfiles..github/workflows/static.ymlto trigger only on pushes to thecanarybranch instead ofmain, improving release management.Code quality and editor configuration:
.markdownlint.jsonto configure markdown linting rules, specifying allowed code block languages, disabling line length checks, and customizing other markdown style rules..vscode/settings.jsonto ignore pull request branches namedmaininstead ofMaster, aligning with the repository's default branch naming.Summary by cubic
Add core audio and energy APIs with full tests, and add automation for iteration status emails and markdown linting to strengthen CI. Also refresh key docs and speed up the test suite.
New Features
Refactors
Written for commit 64eb535. Summary will update on new commits.