Public: anyone can read this; the crew can change it.

One link for the agent's bio and email signature: a public page listing every home the agent has for sale, in their brand #139

opened this

Check · Review · Land · Live — Its check is red. Next: builder, its check is red.

Ready to land

This adds a public agent page at `/agents/:slug` that lists every Active and Coming soon home the agent has for sale. I ran only five test files, not the full suite, and all 55 tests in them pass. Those were the new agent-page tests plus the hostile, a11y, speed and more-homes suites. The type check could not run, because the repo has no `tsconfig.json` and `tsc` just printed its help. `scripts/ga…

11 files · +307 −27

stopped serving, but the check failed deploy 12379f1

Check faileddeploy 12379f1

Website spec: 3 findings, 4 the edge owns (report only)

Look

1 page beside main · 0 new to this pull

main

at 957b843 ·

this pull

In the dark

main

at 957b843 ·

this pull

at 12379f1 ·

opened this

This adds a public agent page at /agents/:slug that lists every Active and Coming soon home the agent has for sale. I ran only five test files, not the full suite, and all 55 tests in them pass. Those were the new agent-page tests plus the hostile, a11y, speed and more-homes suites. The type check could not run, because the repo has no tsconfig.json and tsc just printed its help. scripts/gate.ts doesn't exist in this repo.

  • The page: each home shows its hero photo with alt text, address, price, beds/baths and a link to /homes/:id. The header has the agent's name, brokerage, license, phone, email and headshot, in the agent's palette. There is no Listing Launch header or footer. It carries link-preview meta, like the property page.
  • Which homes appear: only homes that are Active or Coming soon and have an approved MLS description. Under contract, Sold, Withdrawn and Expired listings, and homes with no approved description, are left off. The page shows no description text, only facts and the hero photo.
  • How an agent is identified: the slug is the agent's name plus eight hex digits of a SHA-256 digest of the account id, name and license. It is stable, can't be guessed from a listing id, and never shows the account id. An unknown or malformed slug gets a 404, and another agent's homes never appear.
  • Where it's linked: each listing page has a "Your page of homes" row with a Copy button, and the property page's "More homes from" section links to "See all homes from …". The copy-button announcement now reads "Copied the link", because the button is shared with the property link.
  • Shared query: I moved the "which homes are public" query out of src/morehomes.ts so the agent page and the "more homes" section use the same one.
  • Sample data: Morgan Reyes already has two public sample homes, Alder Lane and the second Portland home. I added a README step that says to open the Alder Lane listing and follow "Your page of homes".
  • Tests: the new src/agenthomes.test.ts covers listing contents, brand, slug privacy, 404s, the links and the sample agent's page. The hostile-listing and a11y suites now include this page.

I didn't change contract.json, and no permission cell is loosened. The page only shows what the property page already shows publicly.

To try it, open /listings/1 and follow "Your page of homes" to the sample agent's page.

🤖 Generated with Claude Code

Closes #137

commented

This adds a public agent page at /agents/:slug that lists every Active and Coming soon home the agent has for sale. I ran only five test files, not the full suite, and all 55 tests in them pass. Those were the new agent-page tests plus the hostile, a11y, speed and more-homes suites. The type check could not run, because the repo has no tsconfig.json and tsc just printed its help. scripts/gate.ts doesn't exist in this repo.

  • The page: each home shows its hero photo with alt text, address, price, beds/baths and a link to /homes/:id. The header has the agent's name, brokerage, license, phone, email and headshot, in the agent's palette. There is no Listing Launch header or footer. It carries link-preview meta, like the property page.
  • Which homes appear: only homes that are Active or Coming soon and have an approved MLS description. Under contract, Sold, Withdrawn and Expired listings, and homes with no approved description, are left off. The page shows no description text, only facts and the hero photo.
  • How an agent is identified: the slug is the agent's name plus eight hex digits of a SHA-256 digest of the account id, name and license. It is stable, can't be guessed from a listing id, and never shows the account id. An unknown or malformed slug gets a 404, and another agent's homes never appear.
  • Where it's linked: each listing page has a "Your page of homes" row with a Copy button, and the property page's "More homes from" section links to "See all homes from …". The copy-button announcement now reads "Copied the link", because the button is shared with the property link.
  • Shared query: I moved the "which homes are public" query out of src/morehomes.ts so the agent page and the "more homes" section use the same one.
  • Sample data: Morgan Reyes already has two public sample homes, Alder Lane and the second Portland home. I added a README step that says to open the Alder Lane listing and follow "Your page of homes".
  • Tests: the new src/agenthomes.test.ts covers listing contents, brand, slug privacy, 404s, the links and the sample agent's page. The hostile-listing and a11y suites now include this page.

I didn't change contract.json, and no permission cell is loosened. The page only shows what the property page already shows publicly.

To try it, open /listings/1 and follow "Your page of homes" to the sample agent's page.

🤖 Generated with Claude Code

commented

The README was the one real failure, and I've fixed it and pushed. The tablet failures didn't reproduce here, so I don't know whether the next deploy will pass them.

  • README (fixed): the "Try it in five minutes" section may not contain the word "header", and my new paragraph said "no tool header or footer". I reworded it to "no tool bar or footer". src/walkthrough.test.ts, which holds that rule, now passes.
  • Tablet tests (not reproduced): "a post adds a visitor…" and "a bad email shows in place…" passed in every run here. "the screen answers fast" failed once in a full local run with 2 failures (the other was an install test the sandbox can't run) and passed in three repeat runs. I don't know why, and I changed nothing for them. That 50 ms check looks like a timing flake under load, but I haven't confirmed it. Nothing I changed touches the tablet screen.

The bun test run before this fix hit the README failure plus those two sandbox-only failures. I didn't run the full suite after the fix. After it, src/tablet.test.ts, src/walkthrough.test.ts and src/agenthomes.test.ts pass together.

commented

The two remaining failures are in src/tablet.test.ts, which my change doesn't touch, and I couldn't reproduce them, so I changed nothing and pushed nothing. I don't know why they fail in the deploy.

The two failing tests are "a bad email shows in place and keeps the name; no open house still signs in" and "the screen answers fast". On the previous deploy, a third tablet test, "a post adds a visitor…", also failed. The set changes between deploys, which points to flakiness.

  • What I tried: I ran src/tablet.test.ts alone, ran it 12 times in parallel to put the machine under load, and ran it with FORGE_APP_URL and FORGE_APP_DATA set. I also ran the full bun test twice. It passed every time, apart from the install-check test the sandbox can't run.
  • Why I think my change isn't the cause: the tablet pages and code don't use src/agenthomes.ts, the agent-page route or the new "Your page of homes" row. I also found no rate limit, listing cap or shared state in the code those tests exercise.
  • What I can't see: the deploy log shows only the failing test names, not the assertion or error. Without it I'd be guessing at a fix.

The README failure from the earlier deploy is fixed and in the pushed branch (12379f1).

If you can send the assertion message for those two tests, I'll fix them. A person could also re-run the check on 12379f1 to see whether they fail again. If they fail on main's own check too, they are an existing flake, and the 50 ms bound in "the screen answers fast" is the likeliest cause.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs