Unify Builder and Thing sharing audiences - #683
Conversation
🧹 Develop S3 preview removedThe PR-specific alias and every workflow-created develop deployment were removed when this PR closed. The ordinary generated Vercel Preview remains available on the shared development runtime. |
# Conflicts: # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/GRAPH_REPORT.md # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/cost.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/graph.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/manifest.json
🤖 Lopu detected an out-of-date PR branchStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 07:12 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
🤖 Lopu detected an out-of-date PR branchStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 07:40 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
🤖 Lopu detected an out-of-date PR branchStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 08:09 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
|
Lopu review — PR #683 @ Both red checks are explained, and both are fixed at their cause. Changes are staged in my review worktree for the trusted publisher. 1. Unit tests — a real defect in this PR ✅ fixed
In ...(savedAclPresent ? { linkKey } : linkKey ? { linkKey } : {})When a save carries an The branch wasn't pointless: const { linkKey: _supersededLinkKey, ...carried } = prev?.page || {};
...
...carried,
...(linkKey ? { linkKey } : {})All three behaviours survive: a saved key is adopted, a save carrying an 2. CodeQL — not an alert, and not a controller bug ✅ addressed at its causeThe check reads
Both configurations analysed fine for What did come from this PR is the slowdown that widened the gap:
No CodeQL alerts are open on this head, so nothing was dismissed and no disposition was recorded. 3. Graphify snapshot retention ✅ fixed (and the cause of #2)The That's the exact case Your fresher snapshot is kept, develop's superseded one is dropped (~56 MB), and the documented one-snapshot invariant is restored. Pruning is branch-local and safe by the doc's own statement — develop keeps its snapshot on its own ref. On the feature itselfThe hidden-link bearer-key path is the risky part and it reads as sound. Two non-blocking notes:
ValidationRan against the edited source (worktree has no
— Lopu |
Lopu repository reviewLopu reviewed this PR against develop as Thingtime's principal PR and repository manager. Using Claude Opus 5. Lopu made justified improvements and pushed 71f8589 to codex/unified-builder-thing-sharing. Lopu review — PR #683 · Unify Builder and Thing sharing audiences
What I comparedFull head against the target base (61 files; ~+3.6k/−455 lines of source, the
Check state
CodeQL: the trusted snapshot for this head is empty ( Change I made
This PR adds That matters more than a normal missing-glob: Added the glob to ValidationThe worktree has no
26/26 green. No other file in the worktree is modified. FindingsSecurity and correctness — no blocking issues foundThe risky parts of this change are handled correctly, and I verified each
Non-blocking — for the author to decideUsernames outside the ACL character class can't be granted. The grammar predates this PR, but the picker is what first makes it reachable I did not change this. The two plausible fixes are both product calls, not Two smaller notes, neither worth a change:
VerdictThe audience unification is well constructed: one grammar, enforced in one |
# Conflicts: # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/GRAPH_REPORT.md # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/cost.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/graph.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/manifest.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/GRAPH_REPORT.md # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/cost.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/graph.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/manifest.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/GRAPH_REPORT.md # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/cost.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/graph.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/manifest.json
# Conflicts: # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/GRAPH_REPORT.md # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/cost.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/graph.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/manifest.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/GRAPH_REPORT.md # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/cost.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/graph.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/manifest.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/GRAPH_REPORT.md # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/cost.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/graph.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/manifest.json
# Conflicts: # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/GRAPH_REPORT.md # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/cost.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/graph.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/manifest.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/GRAPH_REPORT.md # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/cost.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/graph.json # graphify-out/snapshots/v1/95196e45522305972af04a7d90d027c390f414a90a389d94a64a808fe5811acf/9f49f42aa2f34f739cf9264021eafd8ce58936c4a812cc88d2e247da6cd4f63e/manifest.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/GRAPH_REPORT.md # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/cost.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/graph.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/manifest.json
# Conflicts: # remix/app/components/Builder/useWebpage.ts
🤖 Lopu detected merge conflictsStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 09:55 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
🤖 Lopu live PR updateStatus: ✅ Lopu finished — this PR is closed or merged Current phase: The resolver branch work is complete Estimated completion: Done — no further active-work ETA. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
Technical run details — optional; this comment is the human-facing source of truth. |
# Conflicts: # graphify-out/snapshots/v1/1c9a192e14eb662267aa0a284184c5def31608fcf54268ad577b1e16307e7e0f/6a18453e2dda611a3efac182903115e9b22390aa5de58e9078df06399f732987/GRAPH_REPORT.md # graphify-out/snapshots/v1/1c9a192e14eb662267aa0a284184c5def31608fcf54268ad577b1e16307e7e0f/6a18453e2dda611a3efac182903115e9b22390aa5de58e9078df06399f732987/cost.json # graphify-out/snapshots/v1/1c9a192e14eb662267aa0a284184c5def31608fcf54268ad577b1e16307e7e0f/6a18453e2dda611a3efac182903115e9b22390aa5de58e9078df06399f732987/graph.json # graphify-out/snapshots/v1/1c9a192e14eb662267aa0a284184c5def31608fcf54268ad577b1e16307e7e0f/6a18453e2dda611a3efac182903115e9b22390aa5de58e9078df06399f732987/manifest.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/GRAPH_REPORT.md # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/cost.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/graph.json # graphify-out/snapshots/v1/94433d17c176f2bdac5c0a3e90f71417ae106a476d7bd861d5d9b811b7fa25aa/a72fe54e341fcdc9153402f7ce761c58d7f7269bd5a972f94ac68e85ffc25a27/manifest.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/GRAPH_REPORT.md # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/cost.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/graph.json # graphify-out/snapshots/v1/ee04f76fce5f4c1bd59095b93a6fd734fa837f598813724f39638b4d01722954/fe2f568053e68e6a5b83948cc344de498b028e2e6b34973449a7848ad8b293ba/manifest.json # remix/package.json
🤖 Lopu detected merge conflictsStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 09:57 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
🤖 Lopu detected an out-of-date PR branchStatus: Work detected — Lopu is taking ownership. Current phase: Entering Lopu's serialized PR-resolution queue. Estimated completion: around 10:03 UTC (~20 minutes; this adjusts as the queue moves). Next automatic check-in: within 10 minutes while work remains active. You can stay on this PR; there is no need to find the Actions run. Time conversion (UTC source)
Los Angeles and Melbourne use their real IANA time zones, so PDT/PST and AEST/AEDT offsets change automatically. Lopu queue and PR pulse
Related PR context
Exact branch pair: Timeline
|
|
🤖 Promotion conflict resolution was queued automatically for Conflicted source paths: The trusted worker will reconstruct, verify, publish, and attest the review branch; no manual branch update is needed. |
|
🔄 Promotion state moved or could not be revalidated while this run was active; the promoter is replanning safely. Branch: No pause was recorded because develop, the base, or the reserved branch no longer matches this transient run snapshot. A fresh promoter run was requested to re-derive authority and continue. Review the run. |
|
🤖 Promotion conflict resolution was queued automatically for Conflicted source paths: The trusted worker will reconstruct, verify, publish, and attest the review branch; no manual branch update is needed.
|
✅ Develop S3 preview ready
73a49242developThe alias passed the develop bucket CORS preflight and a final live PR/SHA fence.
Generic Vercel Preview deployments use the shared development runtime; this controller adds the stable exact-SHA alias and marker-scoped cleanup.
Summary
Validation
Depends on and is based on merged PR #613.