Session 131, Step 9: Prevent stale userStoryId reuse across generated workflow steps- AIM-2445 Prevent stale userStoryId reuse across generated workflow steps
- AIM-2445 Keep processing status synchronized when switching projects mid-step
- Refresh linked story titles immediately when poller sees updates
- Clear stale processing state when Wf S2 finds no matching inputs
Session 124, Step 2: Workflow S4 check-in message must prefix newly created issues with final acronym-number- AIM-2428 Workflow S4 check-in message must prefix newly created issues with final acronym-number
- AIM-2429 Mark linked user story executed immediately after output processing and lock it from reuse/edit
- AIM-2430 Block Workflow S3 cancel when linked story is already in Workflow S4 processing
- Fail output validation when input step.userStoryId is missing from output step.userStoryId
Session 121, Step 3: Add affiliate ledger side detail panel with simplified list mode- AIM-2427 Add affiliate ledger side detail panel with simplified list mode
- AIM-2425 Affiliate-credit purchase must not create or use Creem cache checkout artifacts
- AIM-2426 Prevent affiliates from applying their own discount code to their own purchases
- AIM-2427 Stop showing linked user story as processing after cancel or after processed output import
Session 121, Step 2: Allow paying purchases with available affiliate credit- AIM-2425 Allow paying purchases with available affiliate credit
- AIM-2427 Add affiliate ledger side detail panel with simplified list mode
Session 121, Step 1: Nullify IssueIsProcessingSince when processing stops (cancel or output processed)- AIM-2252 Nullify IssueIsProcessingSince when processing stops (cancel or output processed)
- AIM-2423 Allow paying purchases with available affiliate credit
- Show affiliate-credit purchases correctly in affiliate ledger and row details
- Add affiliate ledger side detail panel with simplified list mode
Session 127, Step 35: Stop documentation session from staying in Processing state- AIM-2335 Stop documentation session from staying in Processing state
- AIM-2423 Fix .aim-status-more-menu actions not reacting to clicks
Session 127, Step 34: Fix non-reactive status menu actions- AIM-2335 Stop documentation session from staying in Processing state
- AIM-2423 Fix .aim-status-more-menu actions not reacting to clicks
Session 127, Step 33: Prevent workflow issue-list scrolling while editing long note text- AIM-2411 Prevent workflow issue-list scrolling while editing long note text
- AIM-2412 Video tutorials area and navigation integration
- AIM-2413 Create database schema for video sections and videos
- AIM-2414 Enable master-user management of video sections and videos
- AIM-2415 Implement video tutorials page layout and playback behavior
- Update footer resources and homepage content links fo...
Session 127, Step 30: AffiliateLedger row not created when discount code applied to purchase - AIM-2401 AffiliateLedger row not created when discount code applied to purchase - AIM-2407 Workflow session info should reset or restore per project - Review Results must resolve workflow session name immediately - Improve sign-in prompt contrast and typography in auth form - Prevent workflow issue-li...Session 127, Step 31: AffiliateLedger row not created when discount code applied to purchase
- AIM-2401 AffiliateLedger row not created when discount code applied to purchase
- AIM-2408 Workflow session info should reset or restore per project
- AIM-2411 Prevent workflow issue-list scrolling while editing long note text
- AIM-2408 Affiliate Summary tab payout-eligible message must reflect actua...
Session 127, Step 29: AffiliateLedger row not created when discount code applied to purchase- AIM-2401 AffiliateLedger row not created when discount code applied to purchase
Session 127, Step 28: Creem discount code fails with 'cannot be applied to product' on reuse- AIM-2407 Creem discount code fails with 'cannot be applied to product' on reuse
Session 127, Step 25: AffiliateLedger row not created when discount code applied to purchase - AIM-2401 AffiliateLedger row not created when discount code applied to purchaseSession 127, Step 26: AffiliateLedger row not created when discount code applied to purchase
- AIM-2401 AffiliateLedger row not created when discount code applied to purchase
Session 127, Step 27: AffiliateLedger row not created when discount code applied to purchase
- AIM-2401 AffiliateLedger row not created when discount code applied to purchase
Session 127, Step 24: Creem discount code fails with 'cannot be applied to product' on reuse- Creem discount code fails with 'cannot be applied to product' on reuse
Session 127, Step 23: AffiliateLedger row not created when discount code applied to purchase- AIM-2400 AffiliateLedger row not created when discount code applied to purchase
- AffiliateNickname uniqueness: check against other nicknames and discount codes
- Discount code uniqueness: additionally check against AffiliateNickname fields
- Add UI for AffiliateDiscountCode.RDCIsDefault on /affiliate pages with single-default enforcement
- Rename table AffilianteDiscountCode to AffiliateDisc...
Session 130, Step 2: Show discount code and percentage in Creem checkout; renewal at full price- AIM-2392 Show discount code and percentage in Creem checkout; renewal at full price
Session 130, Step 1: Google OAuth authentication setup- AIM-2391 Google OAuth authentication setup
- Configure Google OAuth in Program.cs
- Create Google OAuth manual setup guide (markdown)
- Email service: appsettings restructure and SMTP implementation
- Restructure Email settings in appsettings.json
- Implement central IEmailService with SmtpEmailService
- Wire all /Pages/Account pages to send real emails
Session 99, Step 6: Audible processing signal does not start when user is editing a user story- AIM-2378 Audible processing signal does not start when user is editing a user story
- AIM-2379 Always ask for confirmation when pressing Escape or Cancel in textarea editing
- Move `Details` tab to second-last position (after `Your ledger`) in /affiliate
- Auto-switch to Details tab after user is saved as Affiliate
- Fix `Preferred payout currency` dropdown: options invisible due to CSS color...
Session 99, Step 5: Add payment processor fee settings to GetAffiliateProgramSettingsAsync and dynamically compute example values in GetTerms- AIM-2375 Add payment processor fee settings to GetAffiliateProgramSettingsAsync and dynamically compute example values in GetTerms
- AIM-2376 Add payment processor fee values to affiliate terms bullet list in loadTerms
Session 99, Step 2: Affiliate portal menu availability and label/title changes- AIM-1757 Affiliate portal menu availability and label/title changes
- AIM-1758 Affiliates page spacing and contrast fixes
- AIM-2361 Wf S4: fa-shoe-prints icons not updated after Process button click
- AIM-2362 Process button click: save selected session as last manually selected
- AIM-2363 Documentation session shows 'Processing...' label after processing completes
- Documentation/recurring ...
Docs: Update Aisman.Docs from help source (session 96 step 25)- Implement AIM-2529: update documentation project help pages from latest help source
- Add processed-help-file note to workflow-guide.md
- Append outputFiles entry for session 96/step 25 to .aisman/outputs/settings/catalog.json
- Create .aisman/outputs/000_096-25.json recording session metadata and processing start time
Files: .aisman/outputs/000_096-25.json, .aisman/outputs/settings/catalog....
Session 129, Step 4: #checkoutPane shows 1× monthly price instead of prorated total for seat add-ons- AIM-2359 #checkoutPane shows 1× monthly price instead of prorated total for seat add-ons
Session 129, Step 2: Add-on seats: use per-month-if-yearly price when subscription is yearly - AIM-2357 Add-on seats: use per-month-if-yearly price when subscription is yearlySession 129, Step 3: Add-on seats: use per-month-if-yearly price when subscription is yearly
- AIM-2357 Add-on seats: use per-month-if-yearly price when subscription is yearly
- #checkoutPane shows 1× monthly price instead of prorated total for seat add-ons
Session 128, Step 1: Add-on seat prices for yearly org subscription must be pro-rated to remaining months - Add-on seat prices for yearly org subscription must be pro-rated to remaining months - All prices passed to Creem must be ex-tax - Org subscription: user-entered seat count not saved to SubscriptionFeatureValue - Personal subscription upgrade does not calculate pro-rata price differenceSession 129, Step 1: Add-on seats: use per-month-if-yearly price when subscription is yearly
- Add-on seats: use per-month-if-yearly price when subscription is yearly
- Add-on seats: cap months-remaining calculation at 12
Session 127, Step 24: Show subscribed seats and programmer count for per-programmer feature- AIM-2352 Show subscribed seats and programmer count for per-programmer feature
Session 127, Step 22: Make the sign-in button show an in-progress disabled state immediately - AIM-2354 Make the sign-in button show an in-progress disabled state immediately - AIM-2352 Show subscribed seats and programmer count for per-programmer feature - AIM-2353 Persist per-programmer seats and charge pro-rata add-on seats - AIM-2355 Fix per-programmer feature visibility and addon list refreshSession 127, Step 23: Show subscribed seats and programmer count for per-programmer feature
- AIM-2352 Show subscribed seats and programmer count for per-programmer feature
- AIM-2357 Prevent cross-project sessions in Individually loaded list
Session 127, Step 20: Persist organization subscriptions on the selected organization - AIM-2349 Persist organization subscriptions on the selected organizationSession 127, Step 21: Persist organization subscriptions on the selected organization
- AIM-2349 Persist organization subscriptions on the selected organization
Session 127, Step 19: Persist organization subscriptions on the selected organization- AIM-2349 Persist organization subscriptions on the selected organization
- AIM-2351 Show active subscription expiry date on pricing tier
- AIM-2352 Show subscribed seats and programmer count for per-programmer feature
Session 127, Step 18: Persist organization subscriptions on the selected organization- AIM-2349 Persist organization subscriptions on the selected organization
- AIM-2350 Create invoice and invoice items when Creem payment is saved
- AIM-2351 Show active subscription expiry date on pricing tier
- AIM-2352 Show subscribed seats and programmer count for per-programmer feature
- AIM-2353 Persist per-programmer seats and charge pro-rata add-on seats
- Add seat data type in feature ...
Session 127, Step 17: Workflow Step 4 audible completion signal settings integration- AIM-2345 Workflow Step 4 audible completion signal settings integration
- AIM-2349 Persist organization subscriptions on the selected organization
- AIM-2350 Create invoice and invoice items when Creem payment is saved
- AIM-2349 Show active subscription expiry date on pricing tier
- AIM-2350 Show subscribed seats and programmer count for per-programmer feature
- Persist per-programmer seats ...
Session 127, Step 11: Creem checkout return must persist purchase and refresh subscription state- AIM-2342 Creem checkout return must persist purchase and refresh subscription state