Repository navigation
fix(app-shell): a comment edit stops writing is_edited / edited_at, the platform stamps both (objectui#12314) - #12386
Merged
objectstack-fleet[bot] merged 2 commits intoOct 14, 2026
Conversation
…bjectui#12314) The platform stamps both fields on sys_comment when the body changes and they are read-only to clients (ruling A on objectstack-ai/objectstack#23124). The edit save now sends only body and mentions; the row's edited mark is read from the stored record the update answers with. Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB Co-authored-by: Claude <noreply@anthropic.com>
…#12314) Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB Co-authored-by: Claude <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
objectstack-fleet
Bot
deleted the
claude/issue-12314-comment-edit-stamp
branch
October 14, 2026 20:39
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.
Fixes #12314
Clause-②: no
The objectui half of ruling A on objectstack-ai/objectstack#23124 (comment
6137155820): the platform stampsis_edited: trueandedited_atonsys_commentwhen the body changes (stampCommentBodyEdit, objectstack-ai/objectstack#23153,dc93781c19), and both fields are read-only to data entry. The console stops writing them.What changed
handleEditCommentinpackages/app-shell/src/views/RecordDetailView.tsx: thesys_commentupdate now carriesbodyandmentionsonly. The two-line client write ofis_edited: trueand a client-clockedited_atis gone. No client-side stamp is kept as a fallback.edited: trueafter any successful write). It is now read from the stored record the update answers with (stored?.is_edited === true), the sameis_editedfield the read maps withedited: c.is_edited === true. So the mark right after a save never says something the next read would not. TheDataSource.updatecontract in@object-ui/typesresolves to the updated record, and the platform's SQL driver answers with a read-back of the stored row, which carries the stamp thebeforeUpdatehook wrote.edited: c.is_edited === true) is unchanged.Mechanism assumptions, as measured
handleEditCommentexactly as the card says; removed, body and mentions kept.edited: trueon its own copy, and nothing refetchessys_commentafter an edit (the feed is only re-read on mount or navigation). It now reads the server's answer. Pinned two ways: the test double now answers like the platform (it stampsis_edited/edited_atwhen the body changes), and the edited row shows the mark; a new case answers an unstamped row (is_edited: false, as a server without the stamp would) and the row shows no mark.toEqual({ body, mentions: '[]' })and has neither property. No test that pins the marker display was removed; the stored-as-edited read test is unchanged.Tests (final head
91550c68f)pnpm exec vitest run --maxWorkers=2 packages/app-shell/src/views/RecordDetailView.feedCommentEditDelete-12268.test.tsx:Test Files 1 passed (1),Tests 23 passed (23)(21 before this change, plus the new case under both feed blocks).pnpm --filter @object-ui/app-shell type-check(tsc --noEmit && tsc -p tsconfig.test.json; the test config includessrc/**/*.test.tsx), afterpnpm --filter '@object-ui/app-shell^...' build: exit 0.RecordDetailView.tsxreplaced by its basefc211e817copy under an EXIT trap (on disk:is_edited: true,count 1,stored?.is_editedcount 0). The file runs from source (relative import), so no dist build is involved. Result:Tests 4 failed | 19 passed (23): the payload pin and the server-mark pin, each underrecord:activityandrecord:discussion. Restored withgit checkout HEAD --;git diff HEADempty, blob hash equal to HEAD's.eslint --no-inline-config --format json): 2 files, 0 errors. Warnings equal the base copies of the same files (113 vs 113; the one newno-explicit-anywas removed in91550c68f). Repo-widepnpm lintis left to CI.check:phantom-deps,check:self-import,check:unreferenced-sources,check:doc-example-readers,check:handler-key-reads,check:side-effects-array,check:element-data-source-declaration,check:spec-symbols,check:action-forward-parity,check:designer-field-key-parity,check:icon-record-names,check:i18n-keys,check:i18n-drift,check:i18n-designer-parityall 0.node scripts/check-changeset-fixed.mjs0,node scripts/check-changeset-presence.mjs0.check:spec-floors1, which is already red onmain(objectui#12334); it reports "The scan collapsed: 0 package(s) declare @objectstack/spec". Nothing here touches it.check-nul-bytesOK; the control-byte self-scan of the three changed files finds nothing.Changeset
.changeset/12314-comment-edit-stamp.md,patchfor@object-ui/app-shell.Acceptance notes
@objectstack/plugin-auditrelease before feat(plugin-audit): the platform stamps sys_comment is_edited / edited_at when a comment's body is edited objectstack#23153): an edited comment now shows no "edited" mark, at once and after a re-read. That is the ruling's intent: the mark is the platform's, and objectui already resolves@objectstack/*18.0.0-next.0, which stamps.body: textlocally after a successful save rather than readingbodyfrom the answer. That is out of this card's scope.The session that made this change:
https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB.Generated by Claude Code