merge scenarios to staging - #1
Merged
Merged
Conversation
…-sweep Bump v2.4.1 and fix assigned issue sweep
…-clip-layout fix: stop sidebar and call-setting rows clipping
…itor-preview-lag Fix theme editor live preview lag
…-group-chat-sprites Preserve Expression Engine sprites across sparse group-chat rounds
…mage model Noodle has no LLM refinement pass for images: the timeline model writes imagePrompt while generating the post, and the image services then concatenate that draft with the user's Noodle image instructions and hand the whole string to the image generator. Instruction-style text such as "Create a social-media-ready character image. Mention build, clothing, pose..." therefore reached ComfyUI verbatim, with no character context. Feed imageGenerationPrompt into the timeline feature instructions where the model actually reads it, and drop userInstructions from the default noodle.imagePost template. The variable stays registered so existing custom templates keep resolving it. Both image paths (NoodleR and public accounts) share the template, so both are fixed. Users who used the field for raw style tokens should move them to an image style profile, which compileImagePrompt still appends.
The personality block shipped "Let these traits naturally influence the subject, image quality, camera habits, mood, and composition" straight to the image model, along with "Character personality and traits:" and "Character-specific image instructions:" labels. Nothing re-reads this string after the template renders, so the framing is dead weight that competes for CLIP token budget. Pass the bare values.
resolveIllustratorCharacterReferences prefixed its appearance block with "Character appearance notes:". All three consumers (both Noodle image services and the selfie runtime) append that block straight to an image prompt, so the header only ever reached a diffusion model as text to draw. Also guard imageGenerationPrompt with optional chaining: scripts/ is outside the pnpm check tsconfig, so partial settings objects in the regression lane hit it at runtime rather than at compile time. Pins the reported behavior with regression coverage: settings instructions must reach the timeline model and must not reach the image prompt, and the surviving blocks carry no labels or framing.
…ckfile-validation fix: normalize workspace lockfile line endings
…log claim Build the image-prompt fixture from resolveIllustratorCharacterReferences instead of a hand-written string, so the shared block's framing is pinned here rather than only the Noodle-side template. Verified the new assertions fail when the 'Character appearance notes:' header is restored. Changelog now says the default template stops appending userInstructions; custom templates referencing the variable still append it verbatim.
…pass-llm' into fix/noodle-image-instructions-bypass-llm
feat(gallery): portable card://self/gallery references for chat images
…d recovery Creator replies: the duplicate-claim early return ran before every eligibility and post-access check, so a caller replaying known post/comment IDs from another persona could read back a stored creator reply it was not entitled to, and an orphan claim left by a crash blocked its comment past the expiry that was supposed to release it. Both now run after the checks and the prune. Deleting a comment left its creator reply and the permanent claim behind, so the reply was unreachable and the claim kept consuming the rolling allowance. Reserve: prepared slots elapsed during downtime published backdated and in a burst; foreground refresh posts did not invalidate near-future slots, so a creator could post twice within the hour. Also: remap the new NoodleR tables on profile import, describe the reply ceiling as installation-wide, cap bulk selection at the schema's own limit, keep created profiles recoverable when the settings write fails, and stop the publishing and persona surfaces from rendering cold or failed queries as authoritative empties. Regressions cover parent-ownership revalidation, orphan expiry, reply/claim cascade deletion, and elapsed-slot retirement.
…r-sprite-layout Add per-character sprite layouts and polish roleplay overlays
Follow-up to 2c04eba, where several fixes were partial or aimed at the wrong code path. F10 was attached to `deleteStoredInteraction`, which only ever receives like/repost. Comment deletion runs through `deleteInteractionById`, so that is where creator-reply claims are now cleaned up — both the claims a deleted comment owns and the ones pointing at a deleted reply. That path also refused the whole delete when a subtree contained a NoodleR-authored reply, because its "known account" set excluded the NoodleR platform. F8's pruning used `< cutoff` while budget membership uses `> cutoff`, so a claim landing exactly on the 24-hour boundary was neither counted nor released. F7 retired slots over an hour late but still stamped late publishes with their planned time; they now carry the moment they actually published. F3 remapped account IDs but not the linked source ID embedded in a prepared post's policy fingerprint, so a collision import discarded the restored reserve on its next reconcile. F11 let reserve-cleanup errors surface after the post was persisted, inviting a retry that would post twice, and skipped cleanup entirely on the execution-ID replay path. F15 reported a failed settings write as "First posts could not be generated" with no way to retry it; it has its own completion state, copy, and retry now. F16 still had creator rows asserting "No prepared post" while reserve status was unavailable. F25 described night quiet, refresh-all outcomes, and the per-creator Automatic default incorrectly. Regressions were extended accordingly, including replacing an F10 test that exercised an unsupported storage command and therefore proved nothing.
- Log reserve-invalidation cleanup failure at warn, not error: it is intentionally swallowed because the post already succeeded. - Assert the orphan claim row exists before releasing it, so the regression fails if the release path is never exercised. - Use Sets for invalid/discarded prepared-post ids instead of repeated Array.includes scans in reconcileNoodlerPreparedPosts. - Apply the ensureNoodlerReserveState NaN fallback in claimNoodlerAutomaticAttempt, and hold (rather than skip the hold) when preparationNotBefore does not parse. - Delete the full descendant subtree in deleteInteractionChildren and drop creator-reply claims matching either end of the pair, so a reply to a creator reply cannot survive its thread or leak its claim.
…overlay Fix Quick Replies overlay clipping and delete styling
feat(noodler): Slice 8f access model, creator replies, reserve, and guided onboarding,
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.
Important
Contributions target
staging. OnlySpicyMarinaramay promote this repository'sstagingbranch or a same-repositoryhotfix/*branch tomain.Outside and first-time contributors also require an approving review from
SpicyMarinara.Linked issue
Closes #
Why this change
What changed
Validation
pnpm checkpasses locallyCONTRIBUTING.mdManual verification notes
Docs and release impact
docs-i18nbranch updated to match, or a[docs-i18n]follow-up issue opened (see CONTRIBUTING.md § Translated documentation)UI evidence (if applicable)