2026-02-05 - 2026-08-05
Overview
12 Releases published by 1 user
Published
v1.5.0
v1.5.0
Published
v1.4.1
v1.4.1
Published
v1.4.0
v1.4.0
Published
v1.3.0
v1.3.0
Published
v1.2.4
v1.2.4
Published
v1.2.3
v1.2.3
Published
v1.2.2
v1.2.2
Published
v1.2.1
v1.2.1
Published
v1.2.0
v1.2.0
Published
v1.1.1
v1.1.1
Published
v1.1.0
v1.1.0
Published
v1.0.0
v1.0.0
98 Pull requests merged by 2 users
Merged
#169 Bump version to 1.5.1
Merged
#168 Show a recurring lesson's policy acceptances and intake answers on every week of it
Merged
#166 Let the account holder edit their own details on the profile page
Merged
#164 Ask some registration questions of students only, and require them of students without requiring them of the account holder
Merged
#162 Bump version to 1.4.2
Merged
#161 Editable policy name, one-page signup with adult birth year, group classes in upcoming lessons, and booking cleanup on user delete
Merged
#160 Bump version to 1.4.1
Merged
#159 Ask who the signup is for, and ask each student the studio's questions
Merged
#158 Return to a bookable calendar after a booking is confirmed
Merged
#156 Add an account block showing who is signed in
Merged
#157 Fix main: two signup fixtures use a now-rejected password
Merged
#155 Validate signup email and password strength
Merged
#154 Require a name and birth year for every student
Merged
#153 Collect a birth year instead of a full date of birth
Merged
#152 Say "student" and "profile" in the UI, not "child" and "family"
Merged
#151 Stop upcoming lesson rows rendering on top of each other
Merged
#141 Trim CLAUDE.md to what the codebase can't tell you
Merged
#140 Bump version to 1.3.1
Merged
#139 Let parents register once and book for their children
Merged
#138 Bump version to 1.2.5
Merged
#137 Stop the availability form failing in silence
Merged
#134 Link a signed-in visitor to the configured continue page
Merged
#136 Add the changelog entry missed by #135
Merged
#135 Stop the upcoming-lessons row collapsing onto itself
Merged
#129 Bump version to 1.2.4
Merged
#128 View a policy version's content, and make policy text readable
Merged
#125 Show price cadence on the front end and require a pay agreement at booking
Merged
#123 Bump version to 1.2.3
Merged
#120 Collapse the lesson-type filter behind a Show Only button
Merged
#122 Let offering managers read the offerings catalogue
Merged
#118 Filter booking calendar slots by available lesson type
Merged
#116 Send students to a chosen page when registration succeeds
Merged
#113 Omit the class description when the group block shows a single class
Merged
#112 Bump version to 1.2.2
Merged
#111 Fix field-length saves, student wp-admin access, and empty instructor picker
Merged
#110 Bump version to 1.2.1
Merged
#109 Fix invite sign-in, add customizable invite-only text, repair account questions
Merged
#108 Add group-class withdrawal deadline and kind-aware offering form
Merged
#107 Credit students for cancelled paid lessons
Merged
#106 Consolidate changelog into 1.2.0 section ahead of release
Merged
#105 Add weekly and monthly scheduled billing for offerings
Merged
#104 Show booked lesson info on upcoming lists and add admin booking detail
Merged
#103 Group-class enrolment deadline with instructor late-enrolment override
Merged
#102 Bump version to 1.1.2
Merged
#101 Show the Enable auto-updates toggle for the self-updater
Merged
#100 Bump version to 1.1.1
Merged
#99 Group-class scheduling, instructor assignment, and details/invite management
Merged
#98 Group-class scheduling, instructor assignment, and details/invite management
Merged
#97 Add CHANGELOG and publish it as release notes; auto-open next-version bump PR
Merged
#96 Add invite-only group classes
Merged
#95 Add instructor group-class roster view under My Lessons
Merged
#94 Cancellation cutoff: limit how close to a lesson a student can cancel
Merged
#92 Point plugin metadata links at Unsupervised and Gitea
Merged
#91 Studio-defined account-registration questions
Merged
#89 Bump version to 1.0.0 for the first stable release
Merged
#88 Bump plugin version so the us_invites schema migration actually runs
Merged
#86 Hide the My Lessons menu for users who already see Scheduler
Merged
#84 Default the availability admin page to the week view
Merged
#83 Add multi-use group invite links with expiry and auto-approval on email confirmation
Merged
#82 Lock the registration email to the invite only when the invite is redeemable
Merged
#81 Charge weekly reservations for every claimed occurrence and confirm the whole series
Merged
#80 Default lessons to a week view on the booking page and in wp-admin
Merged
#75 Student detail: history sections and admin actions (cancel, withdraw, edit account)
Merged
#74 Update README and group-classes doc to reflect shipped Stripe payments
Merged
#68 Show a sign-in link instead of the registration form after email confirmation
Merged
#66 Auto-update the plugin from tagged Gitea releases
Merged
#64 Open student registration with email confirmation and admin approval
Merged
#62 Show enrolment status on the student group classes page
Merged
#60 Group class term dates, single-class embed mode, and offering editing
Merged
#58 Bulk delete availability slots from the admin list view
Merged
#56 Require an offering on every lesson booking, with a student-facing picker
Merged
#54 Skip payment step for unpriced bookings, confirm them immediately, show students their lessons
Merged
#52 Block options for login/booking link targets with optional auto-redirect
Merged
#50 Split availability windows into bookable lesson-length slots; weekly calendar views; 12-hour times
Merged
#48 Replace Slot ID column in lessons list with the lesson's date/time
Merged
#46 Upgrade PHPStan to 2.x and raise analysis level from 6 to 10
Merged
#45 Gutenberg dynamic-block wrappers for shortcodes with editor previews
Merged
#43 Security fixes: CSV injection, policy body output, invite token hashing, slot datetime validation
Merged
#38 Security hardening: booking auth, offering exposure, payments, invites (#31–#37)
Merged
#30 Add Instructors admin page (create + per-capability access)
Merged
#29 Make WP admins instructors too, with an Access toggle page
Merged
#28 Add live Stripe card charges (PaymentIntent + Elements + webhook)
Merged
#27 Add HST/tax support and payment reporting with HST aggregation
Merged
#26 Group the studio admin sidebar into three sections
Merged
#25 Add payments foundation (e-transfer/comp, Stripe config, receipts, e-transfer email)
Merged
#24 Add student administration view (studio-admin)
Merged
#23 Add README and student-administration feature spec
Merged
#21 Add group-class enrolment (year commitment, capacity, registration gate)
Merged
#20 Add lesson booking registration flow (offering, questions, policies)
Merged
#19 Invite links: page selector + auto-redirect for stray tokens
Merged
#18 Add account registration with signup policy acceptance
Merged
#17 Extend availability (durations, weekly recurrence, calendar); price offerings in dollars
Merged
#15 Add Policies domain (drafting, versioning, tracked acceptance)
Merged
#14 Fix CI artifact double-zip so the plugin installs directly
Merged
#13 Grant studio-admin caps to administrators; re-gate Scheduler; mark 1.0.0-rc.1
Merged
#12 Add plugin zip build task and CI release artifact
Merged
#11 Add Registration Questions domain (per-offering intake forms)
Merged
#10 Add Offerings domain and studio-admin capabilities
70 Issues closed from 1 user
Closed
#167 Recurring lesson occurrences show no policy acceptances or intake answers
Closed
#165 Profile page: let the account holder edit their own details, not just their students'
Closed
#163 Registration questions: ask some of students only, and require them of students without requiring them of the account holder
Closed
#146 Registration questions are not captured when someone registers for themselves
Closed
#145 Registration: replace the parent/guardian checkbox with a three-way "who are you registering?" choice
Closed
#143 Booking block: after a confirmed booking, return to a bookable state
Closed
#142 Add an account block showing who is signed in, with a sign out button
Closed
#150 Registration: validate email and password strength before allowing submit
Closed
#148 Name and birth year should be required fields at registration
Closed
#147 Collect birth year instead of full date of birth
Closed
#144 UI copy: replace "child" with "student" and "family" with "profile"
Closed
#149 Upcoming lesson text overlaps itself in the booking block
Closed
#132 Parent/guardian accounts: register once, book for one or more students
Closed
#130 Availability: adding a window shorter than the lesson length fails silently
Closed
#131 Registration page: link signed-in visitors to the configured redirect page
Closed
#133 Upcoming lessons panel: details and actions render on top of each other
Closed
#127 Policy text is unreadable at acceptance when written without HTML
Closed
#126 Policies admin: view a version's content, and edit it into a new draft
Closed
#124 Show price cadence on the front end and confirm the amount before booking
Closed
#119 Collapse the lesson-type filter behind a Show Only button
Closed
#121 Group class picker in the page editor is empty for admins (403 from /offerings)
Closed
#117 Filter booking calendar slots by available lesson type
Closed
#115 Redirect to a chosen page when registration succeeds
Closed
#114 Group Classes block: option to show one class, without repeating its description
Closed
#71 Group classes: instructor enrolment views under My Lessons
Closed
#93 Cancellation cutoff: limit how close to a lesson a student can cancel
Closed
#90 Studio-defined account-registration questions (signup step two + admin review)
Closed
#87 Invite creation broken: us_invites schema migration never ran (missing USC_VERSION bump)
Closed
#85 Hide the My Lessons menu for users who already see Scheduler
Closed
#77 Group invite link with expiry: confirm email, skip admin approval
Closed
#78 Personal invite link: email field must be prefilled and unchangeable
Closed
#79 Recurring weekly bookings only charge for the first week and only confirm the first lesson
Closed
#76 Default to week view for lessons on the front end and in wp-admin
Closed
#70 Student administration: cancel/edit actions from the admin view
Closed
#69 Student detail: policy-acceptance history, intake answers & payment history
Closed
#73 Docs: README still marks Payments partial — Stripe card charge is implemented
Closed
#67 Show a sign-in link instead of the registration form after email confirmation
Closed
#65 Auto-update the plugin from tagged Gitea releases
Closed
#63 Allow students to self-sign-up with email confirmation and admin approval
Closed
#61 Show enrolment status on the student group classes page instead of the Enrol button
Closed
#59 Group class dates, single-class embed mode, and offering editing
Closed
#57 Bulk delete availability slots from the list view
Closed
#55 Students can book generic slots for free — booking must require an offering
Closed
#53 Unpriced bookings error at payment step, free lessons stuck pending, students can't see their sessions
Closed
#51 Block options: choose login/booking link targets, optional auto-redirect
Closed
#49 Booking page shows availability windows as single giant slots; add weekly calendar views and 12-hour times
Closed
#47 Admin lessons list shows raw Slot ID instead of the lesson's date/time
Closed
#44 Gutenberg dynamic block wrappers for shortcodes with editor previews
Closed
#37 Invites never expire (no TTL on pending tokens)
Closed
#36 Stripe secret key reflected into admin settings HTML / stored plaintext
Closed
#34 Instructor can attach a slot to an offering they don't own
Closed
#35 Unbounded weekly reservation lets one student lock an instructor's whole series
Closed
#33 TOCTOU race allows double-booking a slot (non-transactional)
Closed
#32 Info disclosure: public /offerings endpoint leaks etransfer_email
Closed
#42 Validate availability slot datetimes (REST and admin form)
Closed
#40 Sanitize policy bodies at output in PolicyEndpoint::index (defense-in-depth)
Closed
#39 CSV formula injection in payments export via student display names
Closed
#41 Store invite tokens hashed at rest
Closed
#31 Payment bypass: booking trusts client-supplied offering_id (no slot match)
Closed
#9 Studio Admin role & instructor management
Closed
#22 Student administration view (studio-admin)
Closed
#16 Account registration with signup policy acceptance
Closed
#8 Payment reporting: monthly per-instructor view + CSV export
Closed
#7 Payments: Stripe processing, e-transfer/comp overrides & receipts
Closed
#6 Policies: drafting, versioning & tracked acceptance
Closed
#5 Registration questions (per-offering intake forms)
Closed
#4 Group classes (year-commitment enrolment)
Closed
#3 Lesson booking: unified registration flow (single/weekly, questions, policy, payment)
Closed
#2 Availability: lesson durations, weekly-recurring windows & public calendar
Closed
#1 Offerings catalog (private-lesson types & group classes)
71 Issues created by 1 user
Opened
#1 Offerings catalog (private-lesson types & group classes)
Opened
#2 Availability: lesson durations, weekly-recurring windows & public calendar
Opened
#3 Lesson booking: unified registration flow (single/weekly, questions, policy, payment)
Opened
#6 Policies: drafting, versioning & tracked acceptance
Opened
#4 Group classes (year-commitment enrolment)
Opened
#5 Registration questions (per-offering intake forms)
Opened
#7 Payments: Stripe processing, e-transfer/comp overrides & receipts
Opened
#8 Payment reporting: monthly per-instructor view + CSV export
Opened
#9 Studio Admin role & instructor management
Opened
#16 Account registration with signup policy acceptance
Opened
#22 Student administration view (studio-admin)
Opened
#31 Payment bypass: booking trusts client-supplied offering_id (no slot match)
Opened
#32 Info disclosure: public /offerings endpoint leaks etransfer_email
Opened
#33 TOCTOU race allows double-booking a slot (non-transactional)
Opened
#34 Instructor can attach a slot to an offering they don't own
Opened
#35 Unbounded weekly reservation lets one student lock an instructor's whole series
Opened
#36 Stripe secret key reflected into admin settings HTML / stored plaintext
Opened
#37 Invites never expire (no TTL on pending tokens)
Opened
#39 CSV formula injection in payments export via student display names
Opened
#40 Sanitize policy bodies at output in PolicyEndpoint::index (defense-in-depth)
Opened
#41 Store invite tokens hashed at rest
Opened
#42 Validate availability slot datetimes (REST and admin form)
Opened
#44 Gutenberg dynamic block wrappers for shortcodes with editor previews
Opened
#47 Admin lessons list shows raw Slot ID instead of the lesson's date/time
Opened
#49 Booking page shows availability windows as single giant slots; add weekly calendar views and 12-hour times
Opened
#51 Block options: choose login/booking link targets, optional auto-redirect
Opened
#53 Unpriced bookings error at payment step, free lessons stuck pending, students can't see their sessions
Opened
#55 Students can book generic slots for free — booking must require an offering
Opened
#57 Bulk delete availability slots from the list view
Opened
#59 Group class dates, single-class embed mode, and offering editing
Opened
#61 Show enrolment status on the student group classes page instead of the Enrol button
Opened
#63 Allow students to self-sign-up with email confirmation and admin approval
Opened
#65 Auto-update the plugin from tagged Gitea releases
Opened
#67 Show a sign-in link instead of the registration form after email confirmation
Opened
#69 Student detail: policy-acceptance history, intake answers & payment history
Opened
#70 Student administration: cancel/edit actions from the admin view
Opened
#71 Group classes: instructor enrolment views under My Lessons
Opened
#72 Payments: admin refund flow (refunded status is unreachable)
Opened
#73 Docs: README still marks Payments partial — Stripe card charge is implemented
Opened
#76 Default to week view for lessons on the front end and in wp-admin
Opened
#77 Group invite link with expiry: confirm email, skip admin approval
Opened
#78 Personal invite link: email field must be prefilled and unchangeable
Opened
#79 Recurring weekly bookings only charge for the first week and only confirm the first lesson
Opened
#85 Hide the My Lessons menu for users who already see Scheduler
Opened
#87 Invite creation broken: us_invites schema migration never ran (missing USC_VERSION bump)
Opened
#90 Studio-defined account-registration questions (signup step two + admin review)
Opened
#93 Cancellation cutoff: limit how close to a lesson a student can cancel
Opened
#114 Group Classes block: option to show one class, without repeating its description
Opened
#115 Redirect to a chosen page when registration succeeds
Opened
#117 Filter booking calendar slots by available lesson type
Opened
#119 Collapse the lesson-type filter behind a Show Only button
Opened
#121 Group class picker in the page editor is empty for admins (403 from /offerings)
Opened
#124 Show price cadence on the front end and confirm the amount before booking
Opened
#126 Policies admin: view a version's content, and edit it into a new draft
Opened
#127 Policy text is unreadable at acceptance when written without HTML
Opened
#130 Availability: adding a window shorter than the lesson length fails silently
Opened
#132 Parent/guardian accounts: register once, book for one or more students
Opened
#131 Registration page: link signed-in visitors to the configured redirect page
Opened
#133 Upcoming lessons panel: details and actions render on top of each other
Opened
#142 Add an account block showing who is signed in, with a sign out button
Opened
#143 Booking block: after a confirmed booking, return to a bookable state
Opened
#144 UI copy: replace "child" with "student" and "family" with "profile"
Opened
#145 Registration: replace the parent/guardian checkbox with a three-way "who are you registering?" choice
Opened
#146 Registration questions are not captured when someone registers for themselves
Opened
#147 Collect birth year instead of full date of birth
Opened
#148 Name and birth year should be required fields at registration
Opened
#150 Registration: validate email and password strength before allowing submit
Opened
#149 Upcoming lesson text overlaps itself in the booking block
Opened
#163 Registration questions: ask some of students only, and require them of students without requiring them of the account holder
Opened
#165 Profile page: let the account holder edit their own details, not just their students'
Opened
#167 Recurring lesson occurrences show no policy acceptances or intake answers