Skip to content

Release 0.9.2: batch segment assignment, refined review-queue filters, and CSV analytics export#5

Merged
Smartappli merged 1 commit intomainfrom
codex/update-to-version-0.9.2
Mar 16, 2026
Merged

Release 0.9.2: batch segment assignment, refined review-queue filters, and CSV analytics export#5
Smartappli merged 1 commit intomainfrom
codex/update-to-version-0.9.2

Conversation

@Smartappli
Copy link
Copy Markdown
Owner

@Smartappli Smartappli commented Mar 16, 2026

Motivation

  • Deliver the 0.9.2 feature set: add batch assignment for review segments, finer filtering in the review queue, and an analytics export for review segments.
  • Improve reviewer/editor workflows by enabling bulk updates to assignee/reviewer/status and by surfacing richer queue queries and exports for project-level oversight.

Description

  • Bumped the release metadata and docs to 0.9.2 by updating build_release_metadata, README.md, and CHANGELOG.md.
  • Implemented batch segment assignment via a new view segment_batch_assign (POST) that validates selected segments and project membership, supports selective updates for assignee, reviewer, and status, records an audit entry, and returns user messages in the session context; added corresponding route and session-player UI to select segments and apply batch changes.
  • Extended the review queue with backend filters (project id, status including open|todo|in_progress|done, assignee/reviewer shortcuts, and free-text search) and added a filter form and project selector to templates/tracker/review_queue.html.
  • Added CSV analytics export of all accessible review segments via review_queue_export_segment_analytics_csv and linked it from the review-queue UI; added the route and server-side CSV writer including project, session, segment, status, times, assignee, reviewer, and notes columns.
  • Added automated view tests covering batch assignment, review-queue filter behavior, and the CSV export endpoint in tracker/tests/test_views.py.

Testing

  • Ran python -m compileall tracker templates config successfully to validate Python syntax of modified modules and templates.
  • Attempted to run python manage.py test tracker.tests.test_views --verbosity 2 but the test run could not complete because Django is not installed in the execution environment (package installation via pip install -r requirements.txt failed due to network/proxy restrictions), so full unit test execution is pending in an environment with dependencies installed.
  • Added a new unit test test_segment_batch_assign_and_review_queue_filters_and_export which exercises batch assignment, review-queue filtering, and the CSV export endpoint and will run when dependencies are available.

Codex Task

Summary by CodeRabbit

  • New Features

    • Batch assignment of review segments is now available directly from the session player for improved workflow efficiency.
    • Enhanced review queue with granular filtering options including project, status, assignee, reviewer, and text search capabilities.
    • CSV export functionality for review segment analytics accessible from the review queue.
  • Chores

    • Updated product documentation and release notes for version 0.9.2.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 16, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

Version 0.9.2 introduces three new features: batch assignment of review segments from the session player, enhanced filtering in the review queue (by project, status, assignee, reviewer, and search text), and CSV export functionality for segment analytics. Documentation, templates, backend views, URLs, and tests are updated to support these features.

Changes

Cohort / File(s) Summary
Documentation & Version
CHANGELOG.md, README.md
Version bumped from 0.9.1 to 0.9.2 with new feature entries describing batch assignment, queue filters, and CSV export capabilities.
Batch Assignment UI
templates/tracker/session_player.html
Introduces batch assignment form wrapping segment table with assignee, reviewer, and status controls. Adds per-row checkboxes for segment selection and adjusts table structure based on review permissions.
Review Queue Filtering & Export UI
templates/tracker/review_queue.html
Adds filter toolbar with controls for queue, project, status, assignee, reviewer, and text search. Includes new CSV export link in header action for segment analytics.
Backend Endpoints & Logic
tracker/views.py
Implements review_queue_export_segment_analytics_csv endpoint for CSV export and segment_batch_assign for bulk segment updates. Enhances review_queue view with project, status, assignee, reviewer, and text query filtering. Adds audit logging for segment changes.
Routing
tracker/urls.py
Adds two new URL patterns: review-queue/export/segment-analytics.csv for CSV export and sessions/<int:pk>/segments/batch-assign/ for batch assignment.
Tests
tracker/tests/test_views.py
Comprehensive test method test_segment_batch_assign_and_review_queue_filters_and_export validating batch assignment, filter results, and CSV export endpoint behavior.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Client as Session Player UI
    participant Server as Backend
    participant DB as Database
    
    User->>Client: Select segments & set assignee/reviewer/status
    Client->>Client: Check "Apply" checkboxes
    User->>Client: Click apply
    Client->>Server: POST batch-assign with segment_ids, assignee, reviewer, status
    Server->>DB: Update selected segments
    DB-->>Server: Confirmation
    Server->>Server: Log audit entry
    Server-->>Client: Redirect to session
    Client-->>User: Show updated segments
Loading
sequenceDiagram
    actor User
    participant Client as Review Queue UI
    participant Server as Backend
    participant DB as Database
    
    User->>Client: Set filters (project, status, assignee, reviewer, search)
    User->>Client: Click "Apply filters"
    Client->>Server: GET review-queue with filter parameters
    Server->>DB: Query segments matching filters
    DB-->>Server: Filtered results
    Server->>Client: Render filtered review queue
    Client-->>User: Display filtered segments
    
    User->>Client: Click "Export CSV"
    Client->>Server: GET review-queue/export/segment-analytics.csv
    Server->>DB: Fetch all segment analytics
    DB-->>Server: Segment data
    Server->>Server: Generate CSV content
    Server-->>Client: CSV file (application/csv)
    Client-->>User: Download analytics.csv
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 With whiskers twitching, the rabbit's delight,
Segments now batch-assign with a single select-and-write!
Filters refine the review queue's flow,
CSV exports let analytics grow,
Version 0.9.2 hops into sight! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately and comprehensively summarizes the three main changes in the changeset: batch segment assignment, refined review-queue filters, and CSV analytics export, matching the version bump to 0.9.2.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-to-version-0.9.2
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can suggest fixes for GitHub Check annotations.

Configure the reviews.tools.github-checks setting to adjust the time to wait for GitHub Checks to complete.

@Smartappli Smartappli merged commit 661e2f7 into main Mar 16, 2026
0 of 19 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ae18274be1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +4883 to +4887
if status_value and status_value not in {
ObservationSegment.STATUS_TODO,
ObservationSegment.STATUS_IN_PROGRESS,
ObservationSegment.STATUS_DONE,
}:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require a status value when applying batch status updates

In segment_batch_assign, status validation only runs when status_value is truthy, so a request with set_status=1 and a missing/blank status bypasses validation and reaches the update loop, where item.status can be set to None/''. That can either raise a server error on save (NULL into a non-null field) or persist an invalid status outside STATUS_CHOICES, which corrupts review-queue and analytics semantics; validation should be keyed to update_status and reject blank values.

Useful? React with 👍 / 👎.

Comment on lines +4843 to +4850
item.title,
item.status,
item.start_seconds,
item.end_seconds,
item.duration_seconds,
item.assignee.username if item.assignee else '',
item.reviewer.username if item.reviewer else '',
item.notes,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Escape formula-like values in segment analytics CSV export

The CSV export writes user-controlled fields (item.title and item.notes) directly into cells, so values starting with =, +, -, or @ will be interpreted as formulas when opened in spreadsheet software. In shared projects this creates a CSV injection path (for example, exfiltration formulas) for anyone consuming the export, so these fields should be neutralized before writer.writerow.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant