Conversation
Create-time task Status/Assignees still minted a user receipt after #5850, so brand-new accounts showed those writes as You. Thread create attribution into the property write and attribute the signup support channel to system. Co-authored-by: teo <synoet@users.noreply.github.com>
Contributor
|
Important Review skippedToo many files! This PR contains 1530 files, which is 1230 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (261)
📒 Files selected for processing (1530)
You can disable this status message by setting the |
Co-authored-by: teo <synoet@users.noreply.github.com>
CI runs `cargo run -p xtask --locked -- deps --check`. crates/github already depends on activity, but Cargo.lock omitted it. Co-authored-by: teo <synoet@users.noreply.github.com>
synoet
marked this pull request as ready for review
August 30, 2026 18:22
Cloud Storage check failed clippy::explicit_auto_deref. Both adapters now pass Arc::as_ref() into task_property_edit_receipt. Co-authored-by: teo <synoet@users.noreply.github.com>
…reate Pin the main-branch webhook path: create_channel with a user sender emits ChannelCreated as the owner, which the feed renders as You. Co-authored-by: teo <synoet@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
After #5850, starter-doc create events and later priority/tag writes show as Automation. A brand-new account still attributes these signup writes to You:
Not Started) and Assignees on the three starter tasks# Macro Support x …Those writes happen on task create (
handle_task_properties) and support-channel create. Both still used a user identity for activity, so the feed lied about who acted.Cause (reproduced locally)
Two independent signup writes never received the Delegated SYSTEM attribution that #5850 already put on starter-doc create / later priority+tag writes.
Starter-task Status and Assignees.
initialize_starter_docscreates each task withAttribution::delegated(SYSTEM, user). On main,handle_task_propertiesdropped that value andTaskPropertiesAdapteralways minted a user edit receipt. Properties publish then sets onlyactor_user_id. Activity ingest turns that intoAttribution::direct(user).ActorNamerenders the viewer's own user id as You.Support channel Created. The signup webhook on main called
create_channel(Sender::new_from_user(owner)).create_channelrequires a user actor, soChannelCreated/ ingest use the new user. Same UI path: You.This branch forwards create attribution into property writes (bot receipt for Delegated SYSTEM) and creates the support channel via
create_system_channel(SYSTEM actor, owner unchanged).Local evidence:
signup_support_channel_via_user_create_channel_attributes_created_to_owner(main webhook path → user actor),create_system_channel_event_uses_system_actor(fix),task_property_update_maps_to_property_changed_on_the_document(user-onlyactor_user_id→ Direct(user)),entity_property_event_delegates_user_scoped_bot_writes(bot receipt → SYSTEM),create_markdown_task_forwards_resolved_attribution+handle_task_properties_forwards_create_attribution.Scope
Attributionthroughhandle_task_propertiesandTaskPropertiesPort::set_entity_property.Delegated(SYSTEM, user)) mints a SYSTEM bot receipt. Human creates keep a user receipt.create_system_channel: owner stays the user, the create event actor is SYSTEM.Attributionthrough the same port.Tradeoffs
TaskPropertiesPortgrows anattributionargument. Adapters own receipt minting so the documents domain does not invent access receipts.Delegatedbot writes.Blast Radius
Delegated(MACRO_AI, user)) also get AI-attributed defaults, which matches create attribution.