Skip to content

chore(deps): Bump actions/checkout from 4 to 6#20

Closed
dependabot[bot] wants to merge 225 commits intomainfrom
dependabot/github_actions/actions/checkout-6
Closed

chore(deps): Bump actions/checkout from 4 to 6#20
dependabot[bot] wants to merge 225 commits intomainfrom
dependabot/github_actions/actions/checkout-6

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Mar 16, 2026

Bumps actions/checkout from 4 to 6.

Release notes

Sourced from actions/checkout's releases.

v6.0.0

What's Changed

Full Changelog: actions/checkout@v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

v5.0.1

What's Changed

Full Changelog: actions/checkout@v5...v5.0.1

v5.0.0

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: actions/checkout@v4...v5.0.0

v4.3.1

What's Changed

Full Changelog: actions/checkout@v4...v4.3.1

v4.3.0

What's Changed

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

liquid-releasing and others added 30 commits March 5, 2026 15:45
…er customization into three stages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix _detect_cycles to emit one cycle per complete oscillation (up→down pair)
rather than accumulating all phases into a single mega-cycle. This unblocks
pattern/phrase/BPM-transition detection for real funscripts.

Add ui/ layer with clean deployment-target separation:
- ui/common/: framework-agnostic WorkItem + Project models, 38 unit tests
- ui/streamlit/: 4-tab app (Assessment, Work Items, Edit, Export) with
  modular panels for assessment inspection and interactive section tagging

Rename test funscripts to .original.funscript convention and add
VictoriaOaks_stingy. Add output/ to .gitignore for build artifacts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix _detect_cycles in analyzer.py: was collapsing all phases into one
  mega-cycle; now correctly emits one cycle per up→down oscillation,
  enabling real phrase/BPM-transition detection across all three test scripts.

- Add ui/ layer with clean deployment-target separation:
    ui/common/   — framework-agnostic WorkItem + Project models, 38 unit tests
    ui/streamlit/ — 4-tab Streamlit app (Assessment, Work Items, Edit, Export)
      with modular panels for assessment inspection and interactive tagging

- Add output/ to .gitignore; rename test funscripts to .original.funscript
  convention; add VictoriaOaks_stingy test file.
- Remove references to removed config fields (performance_cycle_threshold,
  break_cycle_threshold) and removed output sections (auto_mode_windows,
  beat_windows)
- Document fixed cycle detection: one cycle = one complete oscillation
- Add real-world results table for all three test funscripts
- Update AnalyzerConfig table to current fields only
- Fix MD040/MD060/MD032 linter warnings (code block languages, table
  pipe spacing, blank lines around lists)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers test_analyzer, test_transformer, test_customizer, test_utils,
and the ui/common/tests suite. Includes per-class descriptions, how to
run, fixture notes, and accurate per-module test counts (114 total).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove outdated references (auto_mode_windows, beat_windows,
performance_cycle_threshold, old visualizer path). Document the
current five-stage analysis pipeline, Streamlit UI workflow
(analyze → review → tag → export → CLI transform/customize),
and updated project structure including ui/ layer. Note that
UI-integrated transform/customize is coming soon.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Extend _ConfigWindow tuple to carry per-window config overrides dict
- _load_ts_file() now captures optional "config" key from window JSON
- customize() uses _find_window() + _effective_config() to merge global
  CustomizerConfig with per-window overrides for both perf and break passes
- Final smoothing pass also uses per-window effective lpf values
- WorkItem.to_window_dict() now includes "config" when non-empty, so UI
  exports carry per-item config into the customizer's window JSON
- Update test_manual_perf_window_loaded to expect 3-tuple (s, e, {})

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Streamlit deprecated use_container_width=True on st.dataframe calls;
errors out after 2025-12-31. Replaced with width="stretch" in all
5 affected call sites across assessment.py and app.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ui/common/pipeline.py: run_pipeline() chains assess → transform →
  customize in one call, returning PipelineResult with all output paths
  and merged log lines; handles missing assessment with clear error
- suggested_updates/README.md: documents TransformerConfig fields,
  CLI and programmatic usage, and test coverage
- user_customization/README.md: documents window types, priority,
  window JSON format with optional "config" key, CustomizerConfig
  fields, and test coverage
- tests/test_integration.py: 9 end-to-end tests covering the full
  assess → transform → customize chain, run_pipeline() correctness,
  per-item config round-trip through the pipeline, and error handling

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When the assessment yields ≤ 1 phrase for content longer than 10 minutes
(e.g. a uniform-tempo script with no BPM transitions), Project._init_work_items()
now falls back to splitting the duration into 5-minute neutral windows instead
of producing a single unusable work item.

- work_items.py: add items_from_time_windows(duration_ms, window_ms, bpm)
- project.py: _init_work_items() applies fallback for long single-phrase content
- test_work_items.py: 7 new tests for items_from_time_windows
- tests/README.md: update test count to 130 total

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…I.md

- pipeline subcommand: assess -> transform -> customize in one shot,
  with --output-dir, --perf/--break/--raw/--beats, --transformer-config,
  --customizer-config flags
- config --analyzer: dumps default AnalyzerConfig to JSON alongside the
  existing --customizer and transformer (default) options
- test command: now discovers both tests/ and ui/common/tests/ so
  `python cli.py test` runs all 130 tests
- CLI.md: full reference covering pipeline, each individual step,
  visualization, config dump, window JSON format, and test commands

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
test_cli.py covers every CLI subcommand via subprocess:
- TestCliAssess: exit code, output JSON, default path, summary, config flag
- TestCliTransform: exit code, valid funscript, positions in range, config flag
- TestCliCustomize: exit code, valid funscript, perf window, missing file ok
- TestCliPipeline: exit code, all three outputs, positions, perf window, summaries
- TestCliConfig: transformer/customizer/analyzer dump and config round-trip

Removed recursive TestCliTest class (calling `cli.py test` from within
the test suite it discovers would spawn processes exponentially).

Updated tests/README.md and CLI.md to reflect 151 total tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes all 7 items from the pipeline-integration work order:

1. Per-item config architecture — extend window JSON with optional
   "config" key; customizer merges global + per-window overrides via
   _find_window() + _effective_config()
2. Streamlit use_container_width deprecation — replaced with width="stretch"
3. ui/common/pipeline.py — run_pipeline() orchestrates all three stages
4. Module READMEs — suggested_updates/ and user_customization/ documented
5. End-to-end integration tests — 9 tests covering the full chain
6. Uniform-tempo fallback — 5-minute time-window segmentation for
   single-phrase content longer than 10 minutes
7. CLI — pipeline subcommand, config --analyzer flag, full test suite
   discovery, CLI.md reference, 21 subprocess-based CLI tests

Total: 151 tests (85 core + 21 CLI + 45 UI-layer), all passing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gator

New modules:
- visualizations/chart_data.py: pure data layer; computes velocity and
  amplitude colour series, annotation bands for all 5 assessment types,
  slice helpers for zoom windows
- visualizations/funscript_chart.py: reusable Plotly-based FunscriptChart;
  renders colour-coded motion line, background annotation bands, selection
  highlight with outside-selection dimming, BPM transition markers
- ui/common/view_state.py: ViewState dataclass — shared zoom window,
  selection range, colour mode, annotation toggles across all panels
- ui/streamlit/panels/viewer.py: three-panel viewer (Original / Proposed /
  Committed) with sync; display options toolbar, timestamp-entry zoom
  controls, Plotly box-select -> selection, Commit button triggers re-assess
- ui/streamlit/panels/assessment_nav.py: tabbed navigator for phases,
  cycles, patterns, phrases, BPM transitions; Focus button zooms viewer
  to that item

Wired into app.py as a new first tab ("Viewer"); adds ViewState and
proposed_actions to session state; commit path re-runs full assessment.

Tests:
- tests/test_chart_data.py: 26 tests for chart data computation and helpers
- ui/common/tests/test_view_state.py: 15 tests for ViewState logic

plotly>=5.18 added to requirements.txt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…x chart rendering

- Stack Original/Proposed/Committed charts vertically for easy pattern comparison
- Remove Phases and Cycles from annotation toolbar (not useful at this zoom level)
- Default show_cycles to False in ViewState
- Display options expander now defaults to open so controls are visible
- Wrap st.plotly_chart in try/except to handle use_container_width deprecation in newer Streamlit

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename viewer tab to "Phrase Selector"; move assessment navigator to own tab
- Phrase Selector takes full page width (no right-column split)
- Chart uses dragmode=pan so drag scrolls left/right naturally
- Scroll ◀/▶ buttons shift the zoom window by 1/3 of its span
- Per-segment coloured lines (blue->red velocity / amplitude heatmap)
- Human-readable MM:SS x-axis via explicit tickvals/ticktext
- Phrase boxes: bordered vrects always shown; selected phrase highlighted gold
- Click a chart point -> selects enclosing phrase
- Phrase info panel: Start / End / Duration / BPM / Pattern / Cycles metrics
- Phrase editor placeholder shown when a phrase is selected
- show_transitions defaults to False (no toolbar toggle; future auto-apply)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…view fallback

- Threshold 600 covers typical zoomed-phrase density (~250 points in 60s)
- Full-view fallback now uses coloured markers (size 4) instead of grey line,
  preserving the velocity/amplitude heatmap at all zoom levels

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Problem: Timeline1 produced 34 phrases (P1=86s, P34=63s, 32 tiny 1-7s fragments).
Root cause: phrases grouped only by cycle direction label, ignoring stroke depth.

Fixes:
- Cycle now stores amplitude_range (max_pos - min_pos of actions in that cycle)
- _detect_phrases tracks running-average amplitude per phrase; breaks when a
  cycle deviates by more than amplitude_tolerance (default 0.30) from the avg
- _merge_short_phrases post-pass merges any phrase < min_phrase_duration_ms
  (default 20s) into its shortest neighbour
- AnalyzerConfig gains amplitude_tolerance and min_phrase_duration_ms params
- Streamlit sidebar exposes both as interactive controls:
    Min phrase length slider (5-60s)
    Amplitude sensitivity select (low/medium/high)

Timeline1 result: 34 phrases -> 7 (default) or ~9 (high sensitivity, min=15s)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
liquid-releasing and others added 25 commits March 13, 2026 06:10
- docs/guide/00-overview/index.md: placeholder + writing brief for workflow overview page (mermaid diagram, why you care, worked example TBD)
- docs/guide/00-overview/concepts.md: definitions for phrase, cycle, pattern, transform, behavioral tags; mermaid concept hierarchy
- docs/guide/01-getting-started/install.md: full tutorial — download, extract, launch, confirm; all 3 OS; troubleshooting table
- docs/guide/01-getting-started/your-first-funscript.md: full tutorial — load file, watch analysis, read chart, scroll phrase list
- docs/guide/_journey-map.md: canonical 8-node task-based journey map reference (one snippet per page)

Page template: journey breadcrumb (top) + overview + why + prerequisites + steps + you should see + what you did + troubleshooting + next step + you might be wondering + related concepts + journey map footer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Strip inline troubleshooting tables from install.md and your-first-funscript.md
- Replace with single redirect line to dedicated troubleshooting page
- docs/guide/troubleshooting/install.md: 8 questions in natural user language, each with example search phrasings; ends with contribution invite
- docs/guide/troubleshooting/loading-a-script.md: 6 questions covering file-not-found, one phrase, blank chart, frozen analysis, phrases:0, wrong numbers
- Pattern: questions written how a frustrated user thinks, not how a manual reads; help assistant as escalation; "you're helping the next person by asking"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docs/art/generate_charts.py: generates doc chart PNGs from test funscripts + assessment JSON; run at release time, not CI
- docs/art/README.md: documents when to run, how to add new charts, caption file format, generated vs screenshot asset inventory
- docs/guide/media/your-first-funscript--phrase-overview.png: full waveform with 34 phrase bounding boxes color-coded by BPM
- docs/guide/media/reading-assessment--phrase-detail.png: phrase 28 close-up (2:00-2:07, 14 cycles, 125 BPM)
- *.caption.md sidecar files for Carta image ingestion / visual RAG

Caption files carry: image path, source page, task node, type, search tags, LLM-generated description.
Pattern: every PNG ships with a .caption.md that makes it queryable by the help assistant.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace TODO screenshot placeholder with generated PNG.
Add callout note connecting the color legend to the actual chart.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add motion-intensity heatmap strip (Turbo colorscale) above the main
  chart with white phrase-boundary markers; margins aligned to chart
- Move Phrase detection settings expander into Phrase Selector tab
  (above heatmap, collapsed by default); sidebar now reads from session state
- Fix click-to-select: point clicks on the Plotly chart now find the
  enclosing phrase and open the Phrase Editor (was box-drag only)
- Rename phrase table section to "Funscript Selection Details"
- Add troubleshooting docs: media-player, transforms, export, index

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Phrase Editor: 3-state Device Safety control (Off / Fix errors / Fix all)
  on by default; applies Performance transform to preview and Accept chain
- Export: removed Show original overlay; cleaned up device-aware UI noise;
  device-aware fix lives in Run Full Pipeline expander (Stage 1/2 + fix)
- Halve Tempo moved to top of Structural category (default selection)
- Quality gate now informational-only with pointer to fix locations

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Phrase Editor: replace 3-state select_slider with single "Enforce device
  safety" checkbox (on by default); preview updates live
- Export pipeline: remove Stage 2 / Window Customizer; device-aware fix
  reduced to two checkboxes (errors / warnings) with auto velocity cap
- Quality gate is now informational only — no Fix All button
- Cleans up dead _ds_vel session state key

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace single download button with Device / Estim tabs
- Device tab: "Apply device safety" checkbox + Performance cap at 200 pos/s
  applied to all phrases with velocity issues on download
- Estim tab: clean funscript (no mechanical cap) + note pointing to
  funscript-tools for multi-channel alpha/beta/pulse/volume generation
- Add _build_download_bytes_device() for device-safe export path
- Output filenames: {name}.device.funscript / {name}.estim.funscript

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Delete internal commercial planning docs (roadmap-multiuser, architecture-web).
Strip "paid SaaS tier", "web mode", "local mode" framing from code comments
and internal docs. Functional code unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove video/audio binaries from tracking (mp4, mp3, wmv).
Add test_media_private/, ml_video_examples binaries, test_videos/
to gitignore. Files remain on disk, not in repo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- cli.py _coerce: fix float parsing (int("1.3") raised ValueError,
  bypassing float() — now tries float() first)
- app.py: inject demo/examples/*.funscript into sidebar selectbox
  always visible as 📋 entries below recents; disappear if deleted

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AI voiceover + screen-record using BBB demo funscript.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes malformed raw-list funscripts. Replaces with:
  demo/big_buck_bunny.raw.funscript    — 2211 actions, 16 phrases,
                                         all 8 behavioral tags present
  demo/big_buck_bunny.forged.funscript — same structure, each issue fixed

Updates _DEMO_FILES path in app.py to match new location.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both folders contain private or generated content that should not
be tracked. Demo funscripts will be generated at first launch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
demo/generate_demo.py: generates big_buck_bunny.raw/forged.funscript
on demand. ensure_demo_files() called once per session on startup —
silent no-op if files already exist, never blocks launch on failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- pyproject.toml: version source of truth (0.0.10), ruff config
- .github/workflows/ci.yml: lint (ruff) + test on every push/PR to main
- .github/workflows/release.yml: Windows now builds NSIS installer
  (FunscriptForge-v{VERSION}-win.exe) instead of zip; version extracted
  from pyproject.toml; release artifacts use versioned filenames
- .github/workflows/docs.yml: MkDocs Material → GitHub Pages on docs change
- installer/funscriptforge.nsi: NSIS script; installs to Program Files,
  adds Start Menu + Desktop shortcuts, proper Add/Remove Programs entry
- mkdocs.yml: MkDocs Material config wired to existing docs/guide/ tree

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- release.yml: add test gate job (lint + unit + integration) that all
  platform builds depend on; redundant per-build test steps removed
- CONTRIBUTING.md: dev setup, SSH-not-HTTPS, secrets handling, branch
  conventions, release flow with Mermaid diagram, local build instructions,
  multi-identity git config, open source author credits table with
  license compatibility notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bot, GAPS.md

- release.yml: NSIS now runs via Push-Location installer/ (was running
  from repo root, OutFile path was wrong); macOS and Linux artifacts now
  include version in filename (FunscriptForge-vX.Y.Z-*); release job
  version extraction replaced fragile xargs with direct echo
- .github/dependabot.yml: weekly updates for pip + GitHub Actions
- .env.example: documents FUNSCRIPT_PLUGINS_ENABLED and launcher-set vars
- GAPS.md: gap analysis per spec 01 — implemented vs deferred vs required
  before alpha; pre-alpha checklist (RELEASES_PAT, branch protection, first
  full pipeline run)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Mar 16, 2026

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Mar 18, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/github_actions/actions/checkout-6 branch March 18, 2026 02:48
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.

2 participants