Skip to content

Onboarding: tell users who already pledged that their project stays as it was - #23

Draft
posthog[bot] wants to merge 2 commits into
mainfrom
posthog-self-driving/fixonboarding-tell-users-who-already-0e57b0
Draft

posthog[bot] wants to merge 2 commits into
mainfrom
posthog-self-driving/fixonboarding-tell-users-who-already-0e57b0

Conversation

@posthog

@posthog posthog Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Problem

  • A user who already has a project can sign a new pledge on /start. They see "Day 1 starts now." and a new deadline, and then land on their old project. Session recordings read this as lost data, but no data is lost.
  • ProjectsController#create keeps the first pledge on purpose (d5eb1d0), but its response did not say that it discarded the new pledge. So the commit step showed the normal success screen and went to /project.
  • Most of these users are signed out when they start. They sign in at the end of the pledge, so a redirect from /start for signed-in users would not reach them.

Origin

  • Replay Vision
  • First signal: 2026-10-07
  • Inbox report: open
  • Likely cause: d5eb1d0
  • Task started by: auto-start, after the report was rated P3 and ready to fix

Changes

  • The server keeps its behavior and now reports the outcome. When the user already has a project, the create response adds already_pledged: true and the kept project's title.
  • The commit step says what happened. It stays on /start and shows "You already have a project." with "It's "<title>", and it stays as you pledged it. This new pledge isn't saved." The "Open my project" button stays under it. Row A4 shows "Already pledged" in place of "Signed · done by ".
  • New event project_already_pledged goes to PostHog from the server on this branch. Then the count of discarded pledges can be measured. Before, the report could not count it.
  • A first pledge has no change: it saves and goes to /project.
flowchart LR
  A[Sign pledge on /start] --> B{Has a project?}
  B -- no --> C[Save, go to /project]
  B -- "yes (before)" --> D["'Day 1 starts now.' → old project"]
  B -- "yes (after)" --> E["'You already have a project.' + its title, stay on /start"]
Loading

Note

If the user also has a pending buddy invite, the server still pairs them, but the page no longer goes to /buddy on its own. The Buddy tab and /project show the pairing.

Testing

  • bin/rails test: 302 runs, 2 failures. Both failures also occur on main and do not touch this change (ProjectsControllerTest hours/leaderboard at line 292 and RewardTest pair week at line 96).
  • The updated controller test checks location, already_pledged and title for a user who already pledged.
  • bin/rubocop on the changed Ruby files: no offenses. node --check on the Stimulus controller passes. The repo has no JS test runner.
  • Manual check in headless Chromium on a dev server with mocked Hack Club Auth:
    • A user with a project signs in and the pledge signs itself from saved answers. The page stays on /start and shows the new message with the kept title.
    • The same flow for a user with no project saves the new project and goes to /project.
  • Skipped: bin/rails test:system, because the sandbox has no Chrome for Selenium.

Agent context

  • I rejected a redirect from /start to /project for signed-in users with a project. It misses the signed-out path above, and /start deliberately shows a signed pledge again to its signer after the save.
  • The pledge card still shows the date of the new pledge. The note says that this pledge is not saved, so the change does not hide the card.

Created with PostHog Desktop from this inbox report.

🤖 Generated with Claude Code

posthog Bot added 2 commits November 4, 2026 23:47
…mes the project you kept and that the new pledge isn't saved, instead of "Day 1 starts now."

The create response for someone who already pledged now carries already_pledged and the kept project's title. The commit step stays on /start and shows them, and the server sends a project_already_pledged event so the discarded pledges can be counted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 1bdc5cbf-9b8a-46e5-9bf6-1cffb086d7f6
… signed pledge can't be signed again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 1bdc5cbf-9b8a-46e5-9bf6-1cffb086d7f6

This branch has not been deployed

No deployments
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.

0 participants