diff --git a/docs.json b/docs.json
index a30ace3..f76b7ab 100644
--- a/docs.json
+++ b/docs.json
@@ -55,7 +55,10 @@
"staff/assignments/handgrading",
"staff/assignments/autograding",
"staff/assignments/rubrics",
- "staff/assignments/testing"
+ "staff/assignments/testing",
+ "staff/assignments/test-insights",
+ "staff/assignments/grading-status",
+ "staff/assignments/security-dashboard"
]
},
{
diff --git a/staff/assignments/autograding.mdx b/staff/assignments/autograding.mdx
index dde886a..60242d1 100644
--- a/staff/assignments/autograding.mdx
+++ b/staff/assignments/autograding.mdx
@@ -21,3 +21,27 @@ The autograder system uses an "overlay grader" architecture that allows flexible
Build system integration guides for common programming languages.
*Detailed documentation coming soon.*
+
+## Rerunning the Autograder
+
+When you need to regrade submissions (for example, after fixing a bug in the autograder), you can rerun the autograder on existing submissions:
+
+### Rerun Options
+
+When rerunning the autograder, you can:
+
+- **Reuse the same submission**: The autograder runs again on the existing submission without creating a new one
+- **Select grader version**: Choose which version of the grader to use for the rerun
+ - Use the latest grader commit
+ - Select a specific commit SHA
+ - Choose from recent grader versions
+
+### Launching a Rerun
+
+You can launch autograder reruns from multiple places:
+
+1. **From the assignment page**: Select submissions and click "Rerun Autograder"
+2. **From test insights**: Launch reruns directly from error groups (see [Test Insights Dashboard](/staff/assignments/test-insights))
+3. **From individual submissions**: Rerun the autograder for a single submission
+
+When launching from test insights, affected submissions are automatically preselected, streamlining the regrade workflow.
diff --git a/staff/assignments/grading-status.mdx b/staff/assignments/grading-status.mdx
new file mode 100644
index 0000000..285ac8b
--- /dev/null
+++ b/staff/assignments/grading-status.mdx
@@ -0,0 +1,48 @@
+---
+title: "Grading Status Dashboard"
+description: "Monitor grading progress and track completion across all assignments"
+icon: "clipboard-check"
+---
+
+# Grading Status Dashboard
+
+The grading status dashboard provides a comprehensive overview of grading progress across all assignments in your course.
+
+## Accessing the Dashboard
+
+Navigate to the **Grading Status** section from the course navigation menu to view the dashboard.
+
+## Dashboard Overview
+
+The dashboard displays key metrics for each assignment:
+
+- **Assignment name** and due date
+- **Total submissions** received
+- **Grading progress**: Number and percentage of submissions graded
+- **Ungraded submissions**: Count of submissions still awaiting grading
+- **Assigned graders**: Staff members assigned to grade the assignment
+
+## Monitoring Progress
+
+Use the dashboard to:
+
+- **Track completion rates**: See at a glance which assignments need attention
+- **Identify bottlenecks**: Spot assignments where grading is falling behind
+- **Monitor grader workload**: View which staff members are assigned to each assignment
+- **Plan grading sessions**: Prioritize assignments based on submission counts and deadlines
+
+## Status Indicators
+
+The dashboard uses visual indicators to show grading status:
+
+- **Complete**: All submissions have been graded
+- **In Progress**: Some submissions are graded, others are pending
+- **Not Started**: No submissions have been graded yet
+
+## Quick Actions
+
+From the dashboard, you can quickly navigate to:
+
+- Assignment grading interface
+- Bulk grading assignment tools
+- Individual submission reviews
diff --git a/staff/assignments/intro.mdx b/staff/assignments/intro.mdx
index 6278bec..ccec158 100644
--- a/staff/assignments/intro.mdx
+++ b/staff/assignments/intro.mdx
@@ -20,6 +20,17 @@ A **handout repository** is a repository that contains the starter code for an a
A **grader repository** is a repository that contains the code that will be used to grade the assignment. It is used to provide instructors with the necessary files to grade the assignment.
+### Syncing Handout Updates
+
+When you need to push updates from the handout repository to student repositories (for example, to fix a bug in starter code), Pawtograder provides a sync-to-handout feature. The system has been improved for better resilience:
+
+- **Automatic retry logic**: Failed syncs are automatically retried
+- **Conflict detection**: The system detects and reports merge conflicts
+- **Selective sync**: Choose which students receive the update
+- **Status tracking**: Monitor sync progress across all student repositories
+
+This ensures that updates reach all students reliably, even in cases of temporary network issues or repository conflicts.
+
## Individual and Group Assignments
Assignments can be individual, group-optional, or group-required.
diff --git a/staff/assignments/security-dashboard.mdx b/staff/assignments/security-dashboard.mdx
new file mode 100644
index 0000000..18e354a
--- /dev/null
+++ b/staff/assignments/security-dashboard.mdx
@@ -0,0 +1,60 @@
+---
+title: "Assignment Security Dashboard"
+description: "Monitor and detect potential academic integrity issues across student submissions"
+icon: "shield-check"
+---
+
+# Assignment Security Dashboard
+
+The assignment security dashboard helps you identify potential academic integrity concerns by analyzing patterns and anomalies across student submissions.
+
+## Accessing the Dashboard
+
+Navigate to an assignment and click the **Security** tab to view the security dashboard.
+
+## Security Checks
+
+The dashboard performs various security checks to flag potential issues:
+
+### Submission Patterns
+
+- **Unusual submission timing**: Identifies submissions made at suspicious times
+- **Rapid successive submissions**: Flags multiple submissions in quick succession
+- **Late submission patterns**: Highlights unusual late submission behavior
+
+### Code Analysis
+
+- **Similarity detection**: Identifies submissions with similar code structure
+- **Unusual code patterns**: Flags code that deviates significantly from expected patterns
+- **External resource usage**: Detects potential use of unauthorized external code
+
+## Reviewing Flagged Submissions
+
+For each flagged submission, you can:
+
+- View the specific security concern
+- Compare with other submissions
+- Review submission history and timing
+- Access the full submission for detailed investigation
+
+## Taking Action
+
+When you identify a potential integrity issue:
+
+1. **Review the evidence**: Examine the flagged submission and related data
+2. **Compare submissions**: Use the comparison tools to analyze similarities
+3. **Document findings**: Add notes to the submission for your records
+4. **Follow your policy**: Take appropriate action according to your course's academic integrity policy
+
+## Privacy and Fairness
+
+The security dashboard is designed to:
+
+- Assist in identifying potential issues, not make accusations
+- Provide evidence for manual review by instructors
+- Respect student privacy while maintaining academic integrity
+- Support fair and consistent enforcement of course policies
+
+
+Security flags are indicators for investigation, not proof of misconduct. Always conduct a thorough review before taking action.
+
diff --git a/staff/assignments/test-insights.mdx b/staff/assignments/test-insights.mdx
new file mode 100644
index 0000000..b5ac8e1
--- /dev/null
+++ b/staff/assignments/test-insights.mdx
@@ -0,0 +1,68 @@
+---
+title: "Test Insights Dashboard"
+description: "Track student performance and identify common errors across autograder test cases"
+icon: "chart-line"
+---
+
+# Test Insights Dashboard
+
+The test insights dashboard helps you understand how students are performing on autograder test cases, identify common errors, and take action to help struggling students.
+
+## Accessing Test Insights
+
+Navigate to an assignment and click the **Test Insights** tab to view the dashboard. The dashboard displays performance metrics for all autograder test cases.
+
+## Understanding Error Groups
+
+The dashboard groups students by the specific errors they're encountering in test cases. For each error group, you can see:
+
+- The specific error message or failure
+- Number of students affected
+- List of affected students
+- Test case details
+
+## Viewing Affected Students
+
+For each error group, you can:
+
+- View the list of students experiencing that specific error
+- Copy affected students' email addresses for bulk communication
+- Click through to individual student submissions
+
+This makes it easy to reach out to groups of students who are stuck on the same issue.
+
+## Launching Regrades
+
+When you identify an issue that requires regrading (such as a bug in the autograder), you can launch a regrade directly from the error explorer:
+
+
+
+Click on the error group you want to regrade from the test insights dashboard.
+
+
+
+Click the **Regrade** button to open the regrade dialog.
+
+
+
+In the regrade dialog, you can:
+- Choose to regrade using existing commits or enter a manual SHA
+- Select which submissions to regrade (preselected based on the error group)
+- Enable auto-promote to automatically update grades if the regrade improves scores
+
+
+
+Click **Start Regrade** to begin regrading the selected submissions.
+
+
+
+The affected submissions will be automatically preselected on the autograder page, streamlining the regrade workflow.
+
+## Use Cases
+
+The test insights dashboard is particularly useful for:
+
+- **Identifying autograder bugs**: Spot patterns in failures that indicate issues with test cases
+- **Finding common student mistakes**: See which concepts students are struggling with
+- **Targeted intervention**: Reach out to specific groups of students with tailored help
+- **Efficient regrading**: Quickly regrade submissions affected by autograder fixes
diff --git a/staff/discussion.mdx b/staff/discussion.mdx
index 8788f24..f7ba13f 100644
--- a/staff/discussion.mdx
+++ b/staff/discussion.mdx
@@ -63,3 +63,29 @@ This integration ensures students never miss updates on their help requests, eve
## Notifications
By default, users do not get notifications for new posts, but can optionally "watch" a post to receive notifications when the post is updated or receives a new reply. Interacting with a post (e.g. replying to it) will automatically watch the post.
+
+## Image Uploads
+
+Students and staff can upload images to posts and replies using drag-and-drop. Simply drag an image file from your computer into the post editor, and it will be automatically uploaded and embedded. This feature makes it easier for students to share:
+
+- Screenshots of errors or issues
+- Diagrams and visual explanations
+- Code output or terminal messages
+
+## Karma and Leaderboard
+
+Pawtograder includes a karma system to encourage helpful participation on the discussion board. Students earn karma when:
+
+- Their posts receive likes from other students or staff
+- Their answers are marked as helpful
+- They actively contribute to discussions
+
+### Configuring the Leaderboard
+
+Instructors can optionally enable a **leaderboard** to display top contributors. The leaderboard can be configured to:
+
+- Show or hide the leaderboard entirely
+- Set the number of top contributors to display
+- Customize the time period for ranking (e.g., all-time, this semester)
+
+The leaderboard feature is designed to be less cluttering and can be disabled if you prefer a simpler discussion board interface.
diff --git a/staff/office-hours/intro.mdx b/staff/office-hours/intro.mdx
index 43b2311..4f859e4 100644
--- a/staff/office-hours/intro.mdx
+++ b/staff/office-hours/intro.mdx
@@ -55,6 +55,15 @@ Staff can communicate with students through:
After the staff member has started the video chat, students can click the **Join Video Chat** button to join. The video chat window opens in a popup.
+#### Chat Reliability
+
+The chat system includes improved error handling to ensure messages aren't lost:
+
+- **Connection status**: The system monitors the connection and alerts users if disconnected
+- **Message preservation**: If a message fails to send (e.g., due to connection issues), it remains in the input box so users don't lose their typed content
+- **Automatic reconnection**: The chat automatically attempts to reconnect when the connection is restored
+- **Robust startup**: Improved chat initialization and refetch flow for more reliable connections
+
### Active Help Request Widget
When a student has an active help request, it follows them around the site. They'll see:
@@ -65,9 +74,68 @@ When a student has an active help request, it follows them around the site. They
This ensures students never miss updates, even while browsing the discussion board or other course pages.
+## Office Hours Scheduling and Status
+
+Instructors can configure office hours schedules to help students know when help is available. The system displays:
+
+- **Office Hours status card**: Shows whether office hours are currently active
+- **Per-queue cards**: Display status and wait times for each queue
+- **Weekly queue schedule**: Calendar view with live "Happening now" highlights
+- **Demo queues**: Create demonstration queues for testing and training
+
+Students can view the schedule to see when different queues are available and plan when to request help.
+
+## Queue Management
+
+### Queue Ordering
+
+Queues are displayed in ordinal-based order, allowing you to control the sequence in which queues appear to students. This is useful for prioritizing certain types of help or organizing queues by location or topic.
+
+### Course-Level Office Hours Description
+
+Add a course-level description for office hours that appears at the top of the office hours page. Use this to:
+
+- Explain your office hours policies
+- Provide guidelines for requesting help
+- Link to additional resources
+
+## Enhanced Notifications
+
+The office hours system includes comprehensive notification support to ensure students never miss updates:
+
+### Browser Notifications
+
+Students receive browser notifications when:
+
+- A staff member assigns to help them
+- Their queue position changes significantly
+- A video chat is started
+
+Students can test notifications and will see permission warnings if browser notifications are blocked.
+
+### Visual Indicators
+
+- **Title notifications**: The page title updates with status changes
+- **Sound notifications**: Optional audio alerts for important updates
+- **Favicon changes**: The browser tab icon updates to show active status
+
+### Message Notifications
+
+The chat system includes notification hooks that trigger when:
+
+- Staff sends a message
+- The help request status changes
+- Video chat invitations are sent
+
## Resolving Requests
-A help request can be marked as "Resolved" by either a staff member or a student.
+A help request can be marked as "Resolved" by either a staff member or a student. When students resolve their own requests, they can select a resolution status:
+
+- **Resolved**: Question was answered or problem was solved
+- **Resolved - No longer needed**: Student figured it out or no longer needs help
+- **Resolved - Unanswered**: Closing the request without getting needed help
+
+This feedback helps you understand the effectiveness of office hours and identify areas for improvement.
## Feedback and Analytics
diff --git a/students/discussion-board.mdx b/students/discussion-board.mdx
index ec37e9b..60f446a 100644
--- a/students/discussion-board.mdx
+++ b/students/discussion-board.mdx
@@ -82,3 +82,23 @@ Each post displays helpful metadata:
- **Answered badge**: Indicates questions that have been resolved
Replies are threaded, allowing for organized conversations. Use the Markdown editor to format your responses with code blocks, links, images, and more.
+
+## Uploading Images
+
+You can add images to your posts and replies using drag-and-drop:
+
+1. **Drag an image file** from your computer directly into the post editor
+2. **Drop the file** anywhere in the text area
+3. The image will be automatically uploaded and embedded in your post
+
+This makes it easy to share screenshots, diagrams, error messages, or any visual content that helps explain your question or contribution.
+
+## Earning Karma
+
+Pawtograder includes a karma system to recognize helpful contributions to the discussion board. You earn karma when:
+
+- Other students or staff like your posts
+- Your answers are marked as helpful
+- You actively participate in discussions
+
+Karma is displayed on your profile and helps identify active, helpful community members. Instructors may also configure a **leaderboard** to showcase top contributors, though this feature is optional and can be disabled.
diff --git a/students/office-hours.mdx b/students/office-hours.mdx
index 9e6e241..b6eac55 100644
--- a/students/office-hours.mdx
+++ b/students/office-hours.mdx
@@ -14,6 +14,46 @@ Students are encouraged to make public requests for help, so that other students
Instructors can create multiple office hours queues to provide different types of help. For example, if a class is coordinated across multiple campuses, there may be in-person help queues per-campus, and a cross-network virtual help queue.
+### Office Hours Status and Schedule
+
+The office hours page displays helpful information about queue availability:
+
+- **Office Hours status card**: Shows whether office hours are currently active
+- **Per-queue cards**: Display the current status and estimated wait time for each queue
+- **Weekly schedule**: View a calendar showing when each queue is available, with live "Happening now" highlights for active sessions
+
+Use the schedule to plan when to request help and choose the best queue for your needs.
+
+## Get Help Button
+
+A persistent **Get Help** button appears throughout the site, making it easy to request help from anywhere in the course. Click this button to:
+
+- Open the help request drawer
+- View your active help requests
+- Check office hours status and schedules
+
+## Notifications
+
+Pawtograder includes comprehensive notifications to ensure you never miss updates about your help request:
+
+### Browser Notifications
+
+You'll receive browser notifications when:
+
+- A staff member assigns to help you
+- Your position in the queue changes
+- A video chat is started
+
+
+Make sure to allow browser notifications when prompted. You can test notifications from the office hours page to ensure they're working properly.
+
+
+### Visual and Audio Alerts
+
+- **Page title updates**: The browser tab title shows your current status
+- **Sound notifications**: Optional audio alerts for important updates
+- **Favicon changes**: The tab icon updates to indicate active help requests
+
## Viewing Open and Solved Help Requests
Particularly when there are many students asking for help at once, it is likely that multiple students have a sufficiently similar question that they could both benefit from the same answer. If someone else already asked a question similar to yours, and you can see that they are about to be helped, you can join that discussion, rather than asking your own question at the end of the queue.
@@ -94,4 +134,21 @@ Your help request will show different statuses:
- **In Progress**: A staff member is actively helping you
- **Resolved**: Your request has been marked as complete
+## Resolving Your Help Request
+
+When you're ready to close your help request, you can resolve it yourself from either:
+
+- The **floating banner** that appears at the top of the page when you have an active request
+- The **main chat view** in the office hours interface
+
+When resolving a request, you'll be asked to select a resolution status:
+
+- **Resolved**: Your question was answered or problem was solved
+- **Resolved - No longer needed**: You figured it out on your own or no longer need help
+- **Resolved - Unanswered**: You're closing the request but didn't get the help you needed
+
+This helps course staff understand how effective office hours are and identify areas for improvement.
+
+## Providing Feedback
+
After receiving help, you can provide feedback on the assistance you received. This feedback is visible only to instructors and helps improve the office hours experience.