Development Log
2026-09-15 - Mint Stock Attachment (Local Candidate)
- Added a one-time 18-coin attachment in
investment-startonly. Each assigned
pot can independently sell whole mint or stock stems; purchasing leaves its current output unchanged. Stable inline segmented controls avoid extra menus.
- Stock settlement uses the shared freshness and harvest rules, reserves one
mint stem per pot for water/soil service, stocks the remainder, returns a seed and replants. No cash is charged or awarded in stock mode. Zero cash is safe. Sale still deducts two coins, and neither mode can settle the same bloom twice.
- Saved output, per-pot stop behavior, output previews, plot badges and offline
reports all follow the chosen output. Candidate-state freshness now accepts its own state explicitly instead of borrowing live-state upgrades.
- Only this experiment's eight-harvest grant changes from 500 to 30. Copy and
settlement share the amount; existing credited grants are never clawed back. Formal and rough-machine baseline grants stay 500. Restart to compare pacing.
- Fixed-random logic tests cover conservation, zero cash, mutations, save reload,
pause, separate assignments, protected main state and six-hour offline cap. A from-zero route reaches the split-output setup at 544.05 simulated seconds and an existing order at 1031.4 seconds, without manual watering on that route. This is not human timing, a fastest route, or proof of fun/economic balance.
- 107 audits, smoke, types and generated-build checks pass. Four browser widths
(1440/1024/390/320) cover actual controls, reload, output and return reports. A new-discovery checkpoint exposed report dismissal/focus loss; passive discovery/equipment notices now wait for existing windows and plant actions. This is narrow notice sequencing, not a replacement UI framework.
- Local only; screenshots and scope recorded in the experiment document and
original discussion closing reply. No Safari/iOS hardware or human fun signoff.
2026-09-15 - First Investment Candidate (Local)
- Owner approved a complete early investment segment after the rough-machine
experiment felt slightly better but not fundamentally compelling. Read Bailu's ninth reply, including her visible-play timing and missing return-modal ownership.
- Added isolated
?tune=investment-start: unchanged normal growth, two pots and
three mint seeds. Two one-time 12-coin purchases offer independent dual-pot control or three calendula seeds. Third pot costs 30 in this mode; fourth remains 160. Preview and deep link use the existing 6-mint/2-calendula, 42-coin order. The seed pack grants early access, not exclusive access; original rewards remain.
- Machine assignments share sale, fee, seed and offline rules. Purchases reject
duplicates, insufficient funds and save conflicts. Controls remain stable on each render; the upgrade explicitly draws the new unit before moving focus, including when the main garden defers rendering during an interaction.
- First payout uses the existing info modal after the active surface closes,
stores the actual first net amount, and does not repeat after reload. Offline reports already showing that income suppress a duplicate celebration. The return report now uses overlay-shell for scroll locking, focus, Escape and nested host handling. Subsequent cash changes use a reduced-motion-aware pulse.
- 106 audits and smoke passed. Browser tests cover four viewports and both the
original machine and new investment controls. Screenshots and final browser results are linked from the experiment record and discussion closing reply.
- Fixed-random, natural-tick route: first sale 180.9 seconds; manual mint stocked,
then calendula with one water action reaches the first order at 572.4 seconds. No manual care reaches it at 1201.5 seconds. These are simulated routes, not human pace evidence. Existing eight-harvest 500-coin grant is retained and can swamp later investment choices; long-term balance is explicitly unaccepted.
- Local only, not deployed. No new story arc, random breakdowns, recipe engine,
crop acceleration, full-game machine nerf or automatic crafting added.
2026-09-14 - Single-Pot Cash Loop Experiment (Local)
- Owner approved a playable candidate based on Bailu's rough-machine-first reply.
Added isolated ?tune=rough-machine: same two pots, three mint seeds, zero coins, but a free one-pot mint sow/sell/replant kit. Normal saves, growth speed and expensive permanent equipment are unchanged; no random breakdowns added.
- Added typed machine policy and reused manual harvest/price settlement with an
explicit target state. Each sale deducts a visible 2-coin service fee, including basic water/soil care for the assigned pot only. Finish-then-stop preserves the current cycle; stock/order materials and other pots are never consumed.
- Enabled this experiment's six-hour, 1x offline simulation. Hidden-page saves
preserve the original departure timestamp, including a later pagehide, and foreground return catches up once. Other opening experiments still do not catch up offline. Full-game cloud requests remain blocked for experiments.
- 105 audits, smoke and generated consistency passed. Added multi-viewport
machine interaction/layout and hidden lifecycle checks to the browser suite. A separate visible 1x Chrome run without growth checkpoints paid 13 coins after 180.656 seconds and immediately replanted. This is timing evidence, not fun acceptance. Detailed simulation and limits: design/rough-machine-experiment.md.
- Local candidate only, not deployed. Broader flower/coverage upgrades and
automatic crafting remain proposals, not purchasable unfinished features.
2026-09-14 - beta48-50 Publication
- Published source commit 49bee0b to the existing Cloudflare game project:
https://658c4aa0.greenhouse-notes-playtest.pages.dev . Public documentation and read-only discussion are synchronized separately.
- Retained the normal opening and stable save key. URL-selected opening experiments
remain isolated and are not promoted to the default onboarding. No machine gameplay changes, API changes or database migrations in this release.
- Re-ran type/build, 104 audits, prototype smoke, generated consistency and document
staging. Live HTML, runtime, adapters and WebP matched local release bytes. Isolated Chrome at 1440/390px passed normal startup, planting, navigation and modal closing; the feedback method guard responded without creating a report.
- The rough-machine-first reply is discussion only. It distinguishes automatic
progress from repair busywork, documents inventory/production handoffs and challenges the assumption that a stopped machine implies no aging loss.
2026-09-14 - Shared Interaction Contract (Local)
- Implemented the owner-approved narrow framework batch: typed screen ownership for custom/native dialogs and seed/soil panels, typed planting/purchase results, and saved tutorial progress recovery. Removed the superseded overlay stack, duplicate welcome scroll locking and tutorial business polling. Existing layout and opening economy remain unchanged.
- Fixed same-frame native host discovery and top-only Escape behavior. Rejected planting on occupied/invalid plots, retained failure atomicity and one-time starter bonus, and preserved in-memory operation under storage failure while blocking detected cross-tab conflicts.
- Added pinned Playwright development tooling and repeatable isolated browser scenarios. Four viewports (1440/1024/390/320px) passed sell/stock/skip, pause/reload, nested dialogs, focus and scroll checks; file startup/planting passed. Growth checkpoints are not pacing measurements. Typecheck/build, 104 audits and prototype smoke passed.
- Details and limitations: notes/refactor-handoff.md, src/README.md; discussion game-framework-options. No engine migration, production deployment or real iOS/Safari acceptance. Other legacy actions, full save/tick migration and butterfly UI-timer coupling remain outside this completed batch.
2026-09-09 - Permanent Global Harvesting And Sowing (Local beta48-37)
- Owner rejected the per-plot harvester/sower tool and explicitly prefers a large one-time investment for hands-off operation. Replaced it with independent whole-garden harvesting and sowing equipment, each researched and purchased separately. No durability, renewal, per-plot purchase or periodic restart.
- Provisional prices: harvest research 600 notes / purchase 3000 coins; sow research 900 / purchase 5000; both require 20 harvests. Purchasing starts the device, with a persistent global switch; sowing uses one selected crop, future ratio settings deferred.
- Harvesting handles all ordinary mature crops regardless of the sowing selection. Existing plants are never cleared to match the selection; calendula is retained, intentional display/seed heads and orchid protected. Existing water/fertilizer systems and the six-hour offline cap remain.
- Refunds old local per-plot equipment and its research once, without debt withholding or granting new machines. Retains plants/materials and harvest history. Offline cycles refresh crop-specific growth data after changing planted species.
- Updated production-machine audit, QA fixture and roadmap; this supersedes the previous local foundation. No deployment or browser/mobile visual acceptance claimed.
2026-09-09 - Production And Stall Growth Foundation (Local beta48-36)
- Owner confirmed that automation is researched and bought, not a free starting ability. Added per-plot machines: research after four harvests for 12 notes, then 120 coins each, disabled until configured. Fixed-crop sowing uses real seeds; harvests stock materials, retain calendula, protect reserved/display plants, and never fulfill orders or buy seeds.
- Offline machines complete multiple cycles within the existing six-hour cap; paused saves do not grow. Return summary reports materials stocked. Existing offline ecology remains approximate, not a claim of full online random-event parity.
- New stalls start at four slots; after four sales, expansions cost 180 then 420 coins for six/eight slots. Existing stalls keep eight slots, including already-unlocked saves. Stocking, restocking, capacity hints and migration share capacity rules.
- Added machine-first and stall-first growth milestones. Research changes are deliberately limited: entry automation stays affordable, late golden-manure research rises from 45 to 90 notes, completed projects retained. Full research reorganization remains a later calibration task.
- Added production-machine and stall-growth audits; adjusted legacy price fixtures to explicitly preserve eight-slot comparisons. QA scenario production-growth is preset and requires an isolated test save. No player save edited, no deployment or mobile visual acceptance claimed.
- Design and advisor discussion: design/production-growth-roadmap.md; discussion topic production-growth.
2026-09-08 - Stall Price Slope Experiment (Local)
- Owner approved room for randomness after the advisor's pricing-cliff report. Added a persisted per-visitor budget roll on the eight-slot shelf, with a linear price acceptance slope. One roll shared across candidate goods; preferences still reject incompatible bouquets. Legacy single-batch model unchanged.
- Premium purchase feedback reflects actual acceptance. Pause, refresh, pricing and reopen do not create fresh rolls. No added traffic, free stock or guaranteed profit.
- stall-price-slope-audit verifies demand decreases, impossible gift stays impossible, random-state save/pause and online/offline parity. 128-seed 8-bouquet simulation ranges from 8 sold at price10 to 2.71 at20; not natural-play or economic validation. Full audits and prototype smoke passed. Not deployed.
2026-09-08 - Advisor Preset and Inventory Findings (Local)
- Reproduced the advisor's seven starter results: 5/5/0/0/2/0/0 willing buyer profiles, with Blue Afternoon and Moonlit Gift failing even at price 1 due to gift color threshold. Fixed starter data only: blue hydrangea quantity 2; Moonlit Gift adds calendula; Blue Star price 15 and Purple Dusk price 26. Model unchanged, no guaranteed profits or retroactive edits to stock/favorites.
- New outcomes 5/5/3/5/2/2/3 are model willingness, not guaranteed real sales. Tests retain an unsellable custom recipe to guard against accidentally weakening the market rules.
- Open composer refreshes stock/availability on inventory changes through render(), without recreating inputs, artwork or disclosures. Advisor saw QA additions; normal material changes share this path. Sale proceeds alone do not create flower materials.
- Local only; includes preceding desktop navigation fix. Browser perception and natural sale timing not newly verified.
2026-09-08 - Stall Responsive Navigation (Local)
- Fixed the unconditional mobile dock in the flower stall. Above 680px navigation now sits below the header in normal flow; at 680px and below it remains a bottom dock with safe-area spacing, matching the greenhouse breakpoint. Catalog and shelf breakpoints match as well.
- Navigation DOM follows header order for keyboard use. No save/gameplay changes. Navigation and flower-stall audits passed; this is not browser visual acceptance. Local only, not yet deployed.
2026-09-08 - beta48-32 Release
- Owner authorized publishing the caretaker-entry change, documentation and discussion together. New hiring UI is hidden; paid shifts and reports continue, no migration or cloud-code changes.
- Caretaker reintegration topic is deferred; this status concerns future integration, not the completed entry removal.
2026-09-08 - Shelve Caretaker Entry (Local)
- Hid the caretaker entry and prevented its hiring modal from opening. Showcase entry fills the freed row. Existing paid shifts, reports, devices and save logic remain unchanged.
- Recorded the mismatch with current flower-stall/player-choice loop in system-backlog; future job-based integration is deferred, not newly implemented. Local only, not published in this turn.
2026-09-08 - beta48-31 Online Verification
- Custom-code API deployed at the stable game URL (deployment 4e96a1d7). Production temporary opt-out gardens verified assignment, duplicate rejection and two recoveries using the same code; test gardens then deleted. Existing player saves untouched.
- Public board is included with this documentation snapshot. Broad direction thread closed after answering the owner; flower-stall and fading remain awaiting playtest, bees deferred, custom recovery implemented and closed. Local posting remains local; public snapshot is read-only.
2026-09-08 - beta48-31 Custom Recovery and Public Discussion
- Added editable 12–64-character custom recovery codes: normalized case/Unicode, letters plus digits, atomic unique database constraint. One code authorizes recovery, so treat it as a private password, not a public garden name. PBKDF2 digest stored server-side; never exposed in rankings or posts.
- Codes persist across recovery. Existing random backup and authorized devices remain valid; changing a code revokes the previous custom code. A failed duplicate change leaves the previous code unchanged. Automatic progress upload cannot overwrite the custom code.
- Recovery limited to 12 attempts per IP per 15-minute bucket, including legacy recovery. Additive migration 0004 required before deploying the API. This deters ordinary guessing but is not equivalent to authenticated accounts/MFA or protection from distributed guessing.
- Board reviewed: answered owner's missing practical-direction comment, closed broad direction thread, retained flower stall and fading as awaiting playtest, bees deferred. Owner authorized public read-only board and avatars; server scripts/tokens remain excluded.
2026-09-08 - beta48-30 Game Published
- Game deployment: https://034907b1.greenhouse-notes-playtest.pages.dev from
667255d. The current public documentation build includes the flower-aging fix and earlier beta48-29 stall release. Private discussion content is excluded.
2026-09-08 - beta48-30 More Readable Flower Aging
- Responding to the owner's bloom-window comment: visual aging starts at 35% of bloom duration rather than 50%. Leaves yellow and bend, heads droop and petals fade toward dry tones; the plant remains readable rather than disappearing. No timers, yield or harvest deadlines changed; showcase protection remains.
- DevGarden publication now explicitly excludes private board files, avatars, scripts and discussion-status pages/links. Public docs build filters private navigation; local docs are rebuilt after staging. Both game and public docs are included in this release request.
- Plant-aging audit passes including showcase and save continuity. Browser visual acceptance still unavailable; numeric/style checks are not a claim of perceptual acceptance.
2026-09-08 - beta48-29 Published
- Published
b401cfeto https://6544bf12.greenhouse-notes-playtest.pages.dev; stable URL unchanged. Earlier local stall records now describe shipped features. - 40 Node audits excluding discussion HTTP server plus main prototype smoke passed. Actual phone visual/interaction testing remains blocked, as disclosed before publishing; do not report it as accepted.
- Cloud credentials are unchanged. Memorable garden login has a separate local discussion, not a production implementation.
2026-09-08 - beta48-29 Publication Preparation
- Retired the persistent recent-harvest panel; harvesting, inventory, revenue and order receipts are unchanged. Compatibility DOM remains hidden so existing references do not break.
- Added mobile input font sizing, wrapping for large report numbers and flexible compose buttons. Static/logic checks do not replace iPhone Safari testing: browser access to the current file URL was denied by policy again this turn.
- Owner requested publishing this stall cycle. Includes the release candidate below. Cloud API, recovery credential scheme, save key and database schema remain unchanged.
- Custom memorable garden-code request recorded for a separate account-design pass: a public user-chosen handle must not alone authorize save recovery. Prefer handle plus password with rate limiting, secure password hashing and credential-change/legacy recovery tests; not a rushed pre-playtest auth change.
2026-09-08 - Stall Release Candidate
- Completed the local eight-slot stall loop, nine ordinary materials, manual favorites/removal, restocking, independent freshness, shared customers, session receipts and explicit opening reminder. Global pause still freezes both garden and stall.
- Minimum two stems per bouquet, including same species. Existing single-stem stock and accepted legacy repeat requests remain compatible; new crafting/restocking meets the minimum.
- Voluntary permanent opening after a completed commission and two materials with two stems each, eight stems total. No fee or deduction. Existing shelves, batches and history retain access.
- Local release candidate only, not deployed. Automated validation is recorded in the discussion reply; real-device visual acceptance remains outstanding.
2026-09-08 - Visible Stall Opening Reminder (Local)
- Added a prominent stocked-but-closed banner with explicit open action and bottom-tab attention mark. Empty/open stalls do not warn; paused copy correctly says freshness is frozen. Repeated open does not restart a running session.
- Retired the duplicate order-page bouquet entrance visually, retaining hidden compatibility nodes for legacy entry status/flow code. Existing orders and inventory are not removed.
- Recorded an unimplemented unlock proposal: first completed commission plus two bouquet materials (at least two each, eight stems total), voluntary introduction, permanent unlock and grandfathering for existing stalls. No gating changes to current playtest.
- Added opening reminder checks; existing stall and session audits remain the regression basis. Local only, no publication or device visual acceptance.
2026-09-08 - Manual Bouquet Favorites (Local)
- Owner reversed the automatic-catalog experiment: crafting/restocking and opening the catalog no longer auto-save or backfill recipes. Explicit favorite actions exist in the composer and on live shelf lots. Same-name/same-composition favorites deduplicate.
- Removed the main greenhouse top-bar stall shortcut; bottom navigation remains. Removed the automatic last-sale catalog entry; history remains untouched.
- Existing saved entries are preserved for owner review. Each has confirmed removal affecting only recipes, never stock/materials/history; removed recipes stay removed after reload. Starter templates are not user favorites.
- Manual favorites/deletion, stall navigation, flower-stall and hydrangea audits passed. Local only, not deployed.
2026-09-08 - Stall Navigation and Layout Corrections (Local)
- Found the text return button still inheriting the legacy close icon's 44px width and 26px font. Explicitly set auto width, minimum 96px and 14px type; return now selects the greenhouse.
- Give shelf rows intrinsic height with minimum room for artwork/labels and separate the lifetime summary with a normal-flow margin, clearing overlap-prone placement. Replaced burgundy/dark-teal header with pale blue, white, muted green and yellow accents.
- Added a discoverable mobile flower-stall tab, leaving the retired legacy stall hidden. Fullscreen stall has its own bottom workspace dock and safe-area clearance so players can switch back without scrolling to the top. Locked orders do not silently dismiss the stall.
- Added mocked navigation/static layout tests; flower-stall and stall-complete audits passed. File-URL browser inspection remains unavailable; actual responsive appearance is not claimed verified. Local only, no deployment.
2026-09-08 - Automatically Remember Crafted Bouquets (Local)
- Catalog previously depended on explicit recipe saves and latest sales history. Successful shelf crafting now records the actual name and composition automatically; failed attempts and draft edits do not create entries.
- Same name/composition deduplicates while updating preparation settings; changed composition under the same name retains another version. Existing shelf lots and retained shelf sales history backfill once on opening the catalog, without consuming resources. Existing 20-recipe history limit remains.
- Direct restock refreshes the catalog. Added crafted-catalog audit for failures, dedup, versions, migration and persistence. Local only, not deployed.
2026-09-08 - Stall Materials, Restock, Sessions and UI (Local)
- Owner accepted global pause semantics; unchanged. Expanded bouquet materials from six to nine: wildberry, borage and cornflower join the existing three flowers and three hydrangea colors. Orchid specimens remain excluded. Old quantity vectors append zeros; sprites, costs, recipes, orders and shelf snapshots support the added indices.
- Seven starter compositions collectively cover every available material. Owned/selected materials show first in the composer; unavailable materials manually fold. New scent/color coefficients are game-design parameters, not horticultural claims.
- Added per-lot direct restock with quantity, free-space and shortage preview; atomic material/capacity checks, old freshness and current composition draft retained.
- Opening a stall starts a saved session; manual close or sellout/expiry produces a compact session-only receipt. Revenue/net/sold/compost are differences from opening, best seller uses real sales, and declined-customer details quote real evaluated reactions. Repeated closing does not duplicate reports.
- New scoped market theme uses a textile display, teal storefront, pink signage and price labels. Action rows use responsive grids, explicit wrapping and non-clipping button dimensions; mobile header is two columns. Existing greenhouse theme is unchanged.
- Full Node suite passed (local HTTP board server excluded), including new stall-complete audit and updated old-vector/preset tests. Browser inspection of the current file URL was policy-blocked; no screenshot/mobile acceptance claimed. Local only, not published.
2026-09-08 - Eight-Slot Stall Phase One (Local)
- Added productWorkshop.shelf: eight individual bouquet slots, concurrent recipe batches, atomic stock checks, per-batch 450-tick freshness, shared 20-tick visitor stream and at most one purchase per visitor. Separate batches retain original ages.
- Full-screen shelf renders bouquet tiles, free positions, per-batch prices and remaining time; accepts new stock during operation. Pausing freezes shelf; closing only stops customers; compost requires confirmation. Sales and expired batches archive to existing history and can create repeat requests.
- Old single batches finish through their existing flow before shelf use. No automatic migration duplication, expansion, stacking, wage or calendar mechanics. Prices and materials use current economy; new shelf lifetime is explicitly an experiment, not a claim of balanced returns.
- Added stall-shelf audit for capacity, no partial deductions, shared visitors, pause, save, restock age isolation, offline parity and one-time compost. No automated browser visual acceptance; owner playtest next. Not deployed.
2026-09-08 - Standalone Flower Stall Workspace (Local)
- Owner approved a standalone stall before deciding progression gates. Full-screen native-dialog workspace uses existing game inventory/save/market, with an ungated top-bar entrance and return control.
- Added visual recipe catalog: three paid-material starter compositions, saved recipes and previous batch. Loading a recipe does not craft, charge, refund or replace an active batch.
- Live price edits now permit 1–80 in either direction; old transactions retain their prices and visitor animation is not rebuilt. Single-batch expiration, compost, pause/offline, repeat customers and repayment rules remain unchanged.
- Added recipe/cost/batch-protection/repeat-production tests and extended visitor UI audit to cover price increases and bounds. Real-device visual and enjoyment acceptance remain pending. No deployment this turn.
2026-09-08 - Player-Owned Flower Shop Proposal
- Recorded owner feedback on custom bouquet discoverability, profitability and operation burden, plus proposed standalone shop, presets, shelves, repricing, customer time periods, holidays, upgrades, staff and eventual production automation.
- Added design/player-flower-shop.md separating owner ideas, suggested phases, economic/UX acceptance and undecided details. Recommend improving the existing single-batch workflow first; no success-only gate to a more usable interface, no automatic revival of the legacy partner stall.
- Documentation/discussion only. No new gameplay, migration, economic changes or publication in this step.
2026-09-08 - Goal Strip / Seed Panel Leak (Local)
- Confirmed atelier narrow-screen layout override re-showed layout-grid in orders workspace, leaking seed panel and close controls. Scoped display:block to garden/codex workspaces.
- Goal CTA now delivers the displayed order when ready, rather than claiming delivery while merely navigating. Removed duplicate generic workspace listener for this button. Missing materials/stale goals route to orders only.
- Added goal-strip audit for delivery/no-navigation, unavailable/stale goals and CSS selector scope. Local fix, not published; actual browser visual acceptance pending.
2026-09-08 - beta48-28 Gradual Flower Aging
- Published from 70026ab to https://190fca31.greenhouse-notes-playtest.pages.dev; primary index/game/aging CSS verified byte-for-byte. 32 audit suites passed. Legacy prototype smoke had one random growth-boundary failure (99.8789 vs 100), then passed on rerun; remaining test flakiness is not hidden.
- Dandan's abrupt-wilting feedback confirmed: existing end-of-bloom badge and final declined pose did not provide progressive plant changes.
- Added state-derived fading from the second half of bloom life: desaturation, yellowing leaves, gradually lowered flower heads and leaning stems. Stress above 45 also produces a recoverable cue. No flashing, new timer, layout size change or altered harvest deadline.
- Existing stage label gains a short fading stage. Changes include calendula and orchid; showcase freeze and saved bloom ages preserve the visible state. Old saves need no migration.
- Added plant-aging audit for monotonic progression, stress recovery, rendered markup, saved state and showcase protection. Actual device visual acceptance remains a player check.
2026-09-08 - beta48-27 Published
- Owner authorized release of the accumulated beta48-18 through beta48-27 changes. Game commit
6bdb0e6; Cloudflare deployment https://b9df92e9.greenhouse-notes-playtest.pages.dev; primary https://greenhouse-notes-playtest.pages.dev/. - Verified ten production assets byte-for-byte against local release. All 31 Node audit suites (excluding local HTTP board-server audit) and prototype smoke test passed; git diff checks passed.
- Existing save key and D1 schema retained. Private discussion board and public Dev Garden not deployed. Mobile visual acceptance and natural-time balance remain playtest observations, not claimed automated coverage.
- The following local implementation entries are chronological records; their game changes are now published.
2026-09-08 - beta48-27 Species Improvements (Local)
- Owner-approved expansion to all seven ordinary species, excluding orchid. Independent species progress/pity/jobs, one project per species; parallel species jobs use the same note balance. Existing mint save key and trait snapshot field preserved; other species use normalized plantImprovements records.
- Reused drought/pest/yield effects online and offline. Calendula yield research costs 120/300 due to repeated bloom benefit; other prices/chances/durations unchanged. Old and retained plants keep their planted snapshot; hydrangea colors share species-level research.
- Codex controls manually fold using existing disclosure keys; each pending job has its own countdown/status and result highlight. Pause/resume handles every species. Existing helper names retained for compatibility with earlier tests/callers.
- Added species-improvement audit for all seven species, independent failure counters, concurrent projects, old snapshots, calendula retained traits, pause/reload and online/offline maturation. Natural pace, long-term balance and phone visual acceptance pending; local only.
2026-09-08 - beta48-26 Improvement Pause Semantics (Local)
- Owner approved changing improvement timing: game pause freezes improvement; unpaused offline time still counts; time scale does not accelerate it. Persist pausedAt, shift start/deadline by pause duration on resume, and save immediately when pause is toggled.
- Progress, countdown, ready button and reveal guard share the frozen timestamp. Starting a project while paused freezes it immediately; already completed results remain revealable. Legacy paused jobs without pause timestamps freeze from load, without inventing or refunding past pause time.
- Added paused reload, resume idempotency, frozen progress, early reveal denial and paused-start checks. Local only, not published.
2026-09-08 - beta48-25 Improvement Progress (Local)
- Added a native progress bar and minute/second countdown to pending mint improvements. The existing real-time label timer updates nodes in place, including while game simulation is paused; no panel redraw or new timer. Ready projects display complete and retain manual reveal.
- Store startedAt on new projects; infer it for old pending saves using the unchanged tier duration. QA ten-second projects snapshot their actual start. Added start/midpoint/end, countdown rounding and clock rollback tests. Local only; no publication.
2026-09-08 - beta48-24 Floriferous Mint (Local)
- Added owner-requested third improvement direction: floriferous mint, cumulative +1/+2 stems at bloom settlement, using the planted trait snapshot. Online calculateFlowerYield and offline maturation both include the bonus; no repeated bonus during harvesting or changes to crafted stock.
- Trial cost 60/150 notes; timing, probability and direction-specific pity follow the existing 5/15 minute, 80/60%, two-failure guarantee rules. Existing drought/pest projects and old plants migrate without receiving free floriferous levels. Other species unaffected.
- Updated codex labels/offers/results and extended mint-improvement audit for price, save/reveal, cap, old snapshot, species isolation and offline/online yield equality. Local only; natural economy and browser/mobile visual acceptance pending.
2026-09-08 - beta48-23 Mint Improvement Experiment (Local)
- Following owner approval, wrote the bounded rules in system-backlog and posted the opening scope before implementation. Mint only, drought/pest directions, two levels each, 15% per level. First tier 40 notes/5 minutes/80%; second 100/15/60%; two consecutive failures on the same direction/tier guarantee the next attempt.
- Added normalized
mintImprovementsave state, fixed outcomes at payment, real-time readiness, explicit result reveal, no refunds and no duplicate deduction/reveal. Existing seeds are not split or reduced; newly planted mint snapshots unlocked traits. Old plants remain unchanged. Caretaker replants receive the relevant save's traits, including offline simulation. - Drought modifies online/offline water use; pest resistance multiplies aphid arrival probability and stacks with existing biological control without immunity. Counts, pollination and seed drops unchanged.
- Reused mint's codex entry: two controls with costs, chance, duration, effect and confirmation; pending result uses one small status area. Success has a brief color transition with reduced-motion support. No new currency, inventory tier, global draw screen or forced expiry. QA
mint-improvementis explicitly accelerated/preselected, not economy evidence. - Added mint-improvement audit for model boundaries, save/reload, pity, effect snapshots, offline water and pest stacking; updated timer smoke for the independent readiness label (real time even while paused). Browser/mobile visual and fun acceptance remain pending. Local only; live remains beta48-17.
2026-09-08 - beta48-22 Familiar Visitor Notes (Local)
- Owner approved moderate tightening, not removal of accumulated notes.
getVisitorNoteRewardpreserves each species' first seven automatic observations exactly; later automatic observations give 1 note instead of base plus level. No balance migration, research price change, order/harvest/manual care reward change, or ecological effect change. - Codex now displays the actual next automatic observation reward from the same helper, replacing the misleading perpetual level-bonus copy. Visitor counts, seed discovery and pollination remain intact.
- Isolated 100-observation totals: bee/aphid 392 to 113, ladybug/sparrow 492 to 120, swallowtail 592 to 127. These are automatic observations, not manual aphid care or a timed playthrough. First seven events per species unchanged; this does not prove later research pacing unchanged.
- 29 suites passed excluding unchanged discussion server suite. New regression covers all species, reward boundaries, old balance preservation and ecology effects. Local only, not published. Notes/codex investigation and optional card-pack ideas recorded as proposals, not implemented.
2026-09-08 - beta48-21 Markdown Visitor Fix (Local)
- Markdown previously rebuilt the market dialog, losing the CSS departure animation and displaying the last guest as a stationary figure until another arrival. Price updates now touch only price controls/hints, leaving the visitor and disclosure state intact.
- Animate only newly added customer events, not a closed-stage change or historical visits on reopen. A six-second cleanup clears the guest and speech even with reduced motion. Existing transactions retain their original prices; markdown applies to future guests.
- Added mock-DOM regression for markdown during a visit, unchanged event signature/recorded price, no animation restart, cleanup and no history replay. No browser visual verification; local only, not published.
2026-09-08 - beta48-20 Longer Bouquet Market (Local)
- Owner approved a 50% longer selling window without slowing arrivals or raising budgets. New stalls run up to 150 ticks instead of 100 (about 203 vs 135 seconds at 1x); arrivals remain every 20 ticks. Seven opportunities instead of five; two additional passers-by reuse existing customer profiles and budgets, with distinct display names. Sold-out batches still close immediately.
- Snapshot duration per run. Old open/closed batches without a duration retain 100 ticks; normalization preserves up to seven event records. Reload cannot replay already served visitors. Pause, offline advancement, markdowns and one-time compost remain intact.
- Entry, market dialog and greenhouse runtime progress scale to the run duration. No guaranteed sale or price-floor change. Added duration regression for late markdowns, legacy saves, reload, offline equivalence and repeat-settlement protection; 27 suites passed excluding the unchanged discussion server suite. Local only, not browser visual or natural-time acceptance.
2026-09-08 - beta48-19 Bloom Protection and Product Purpose (Local)
tickGardenpreserves mature bloom age and bloom stress in showcase mode, including newly matured plants and orchids. Declined plants are not revived; growing plants retain normal care rules. Returning to management resumes aging; reload returns to management as before, preserving saved bloom age.- Caretaker harvesting, equipment and timed bouquet sales continue. Product expiry/compost is not protected by showcase mode. Updated the guide to state these boundaries.
- Shared purpose selector and short qualitative descriptions appear during composition and before opening.
setProductPurposechanges only the unopened batch and draft purpose; no refund or guaranteed profit. Opened/closed batches reject changes. No customer budget answer sheet. - Includes six-material hydrangea integration. New
showcase-purpose-audit.cjscovers near-expired mint/calendula/orchid, new blooms, save normalization, caretaker, purpose persistence/locking and a hydrangea market cycle while viewing. - 26 test suites passed (discussion server suite not rerun), plus archived Spring Cup smoke and UI syntax. Not browser/mobile visual or fun acceptance. Local only; live remains beta48-17.
2026-09-08 - beta48-18 Hydrangea Bouquet Trial (Local)
- Added three existing hydrangea flower materials to the main bouquet editor, recipes, stock deductions, repeat requests and timed sales. Existing three-material recipes retain customer decisions; historical batch values stay recorded.
- Folded optional hydrangea controls, added clustered flower silhouettes and a recipe palette. Reused wrapping; no additional currency, packaging or report panel.
- Customer color preferences vary by intended use; feedback distinguishes color mismatch and price hesitation. No guaranteed profit, no free stock in real saves. Added
bouquet-colorsQA scenario. - Added product-hydrangea regression coverage. Local iteration only; actual browser visuals and fun remain for playtest. Consultant's separate bloom-window report is not silently folded into this scope.
2026-09-08 - beta48-17 Release Approval
- Published game commit
f153577: https://f51212d4.greenhouse-notes-playtest.pages.dev. Primary site verified against nine local release files. Public Dev Garden and the local-only discussion board were not deployed.
- Owner reports the local build works and explicitly approves publication. This is owner playtest acceptance, not a new automated browser/phone verification claim.
- Release includes the reviewed growth/offline, bouquet valuation, optional greenhouse runtime view, subtitle contrast fixes and old-event retirement. Save key and D1 schema remain unchanged; retirement performs the documented one-time save settlement.
- Shared discussion board remains local-only. This release publishes the game directory, not discussion posts, local server or avatars. Next discussion stays in the existing next-development topic and focuses on observing real use before adding systems.
2026-09-08 - beta48-17 Legacy Activities Retirement
- Implemented the owner's confirmed scope: hide old Spring Cup, its market/wheel, and separate legacy consignment stall; keep the new custom-bouquet market and normal orders.
LEGACY_EVENTS_ENABLEDdefaults false. Entry, invitation, background cultivation, judging start, cooldown and old stall startup are gated. Hidden legacy events cannot pause the main garden.settleLegacyActivitiesruns after save normalization and before offline simulation. A versioned archive retains the old event/stall. Unjudged entries receive recorded cancellation refunds; already-earned event rewards and saved stall sales settle once. Unsold stock returns, completed-market compost keeps its old result, and previously paid wheel prizes are not paid twice. Refunds bypass installment deductions; earnings retain deductions. Logs explain the one-time change. Unrecorded past consumables are not invented as refunds.- 25 tests passed, including new retirement checks across seven stages, reload idempotency, startup with financing, and continuing custom-bouquet offline sales. Archived prototype lifecycle smoke test also passed with its isolated legacy flag enabled. No player save was used for tests. Browser visual acceptance and publication are pending.
2026-09-08 — Repeat Request Lifecycle and Placement
- Pending repeat requests now appear as a compact expandable section at the top of the product window, with quantity, quote, shortages and explicit no-expiry/optional terms. The workshop entry gets a pending badge.
- Fulfillment archives the actual revenue/repayment/material record in recent sales and hides the request. Rejection hides it without cost. Later completed markets may generate another request, but never overwrite a pending one and never create one without a purchase.
- Kept one-request capacity to prevent backlog clutter. Existing completed requests are hidden; archive entries apply to new fulfillments. Added lifecycle regressions; no deployment.
2026-09-08 — Product Entry Pipeline Preview
- Running-batch entry shows a compact production / trading / closing progress line, sold count and net income. Progress represents session advancement, not sell-through. Paused state is explicit, closed sessions show completion even on early sellout.
- Updates existing nodes from renderWorkshop; no flashing or whole-button replacement. Non-trading drafts and legacy batches retain their existing entry. Model and mocked preview assertions cover idle/open/paused/closed states.
2026-09-08 — Faster Starter Mint
- Measured regression impact: fixed four-pot caretaker fixture net changes from -372 to +90. Updated the old economic expectation, not caretaker fee or logic; wider balance remains to revisit.
- Added mint-specific quiet-growth duration: 134 ticks (180.9 seconds at 1x under ideal conditions), down from shared 360 ticks. Water/nutrient drain, harvest quantity, seed return and all other species remain unchanged.
- Online growth, offline simulation and ETA already share getQuietGrowthConfig. Existing plants retain growth percentage and use the new rate after loading; not retroactively force-matured. This increases mint throughput and needs later economy retesting, not a claim of full rebalance.
2026-09-08 — Timed Product Stall and First Repeat Customer
- New batches open a 100-tick selling session, one customer every 20 ticks. Later prices affect only later visitors; closing the dialog does not stop sales, game pause does. Closing early or expiry composts remaining bouquets exactly once.
- Offline market catch-up uses elapsed base ticks, like quiet growth, rather than selected online speed; uses quiet finance credit to avoid accessing state during load initialization. Paused saves do not advance the market. Legacy instant-sale batches retain their original path.
- First actual purchasing customer creates one optional repeat request with their purchased recipe and transaction price. Delivery debits real flower materials and credits normal finance flow once; rejection has no penalty. First prototype intentionally offers a single request, not an endless customer system.
- Model regression covers pause, incremental visits, JSON resume, duplicate protection and compost. Existing prototype smoke passes. New ongoing-sale panel currently uses accumulating visit feedback, not the old one-shot walking playback; visual/browser QA and presentation parity remain outstanding. Old raw-material stall and story orders untouched; no deployment.
2026-09-08 — Customer Walk-up Playback
- Sales now show one customer arriving, speaking the actual purchase/rejection reason, and leaving with a bouquet only on purchase. Reading time scales with message length; sold count updates after the decision. Sellout still ends the queue.
- Durable settlement occurs before playback. View-results, close and refresh do not re-credit money; playback cancellation tokens prevent stale timers from altering a reopened view. Reduced-motion preference removes walking transitions.
- Syntax and existing finance/inventory audit pass. Animation appearance and mobile framing still need real-browser verification.
2026-09-08 — Product Sales Visual Hierarchy
- Replaced dense sales copy with bouquet-unit thumbnails (sold/remaining), large sold count and net receipt. Hide redundant large preview once selling; detailed customer responses are manually expandable.
- Strong primary controls with filled color, border and pressed state; compose/save actions separated, clearance and batch completion grouped apart. Existing quantities and finance semantics unchanged.
- Updated asset versions; syntax and inventory/finance audit pass. Actual browser visual QA is still not completed.
2026-09-08 — Product Editor Cleanup
- Removed reference-value and quality-explanation copy from the workbench. Composition now shows per-batch usage/stock beside each material, highlights shortages and disables invalid production.
- Split visible controls by stage: composition with steppers and batch/market; produced batch with local sale/clearance price and actual receipts. Keep finance deduction visible only when nonzero.
- Recipe and history lists are manually expandable. Draft input updates preview without rebuilding inputs or action targets. UI moved to product-workbench-ui.js, leaving resource operations independently testable.
- Syntax, inventory/finance integration and prototype smoke pass; no browser visual validation or deployment performed.
2026-09-08 — Product Entry Wayfinding
- Moved the custom-bouquet entry out of the heading to below material inventory. Full-width clickable row uses existing bouquet artwork, explicit self-pricing purpose and an action arrow.
- Entry shows usable stock or active batch with compose/continue/settlement wording; empty-stock text points to harvesting into inventory. Keeps stable button DOM during ticks.
- Prototype smoke passed; visual browser verification pending.
2026-09-08 — Main Game Product Inventory Integration (Local)
- Added flower-workshop entry and native dialog with sticky close control. Recipes, batch and last 30 receipts persist inside game save; isolated experimental funds are never imported.
- Production debits real mint/calendula/moonflower stock atomically. Sales credit existing finance-aware revenue handler, with gross, repayment and net distinguished. Unsold completion awards compost once.
- Added product-integration-audit for stock insufficiency, no duplicate debit/payment, finance receipts and JSON resume. Existing prototype smoke passed. Visual browser validation remains pending; no deployment.
- This is the first integration slice, not full trial UI parity: market results currently render together; commissions, comparison and refined traits remain in the experiment.
2026-09-08 — Visible Bouquet Traits and Integration Boundary
- Added proportional species-color strip with named counts and a labeled scent meter. No new scoring or animation, no implication that stronger scent means better quality.
- Inspected main-game flowerMaterials and creditCoinRevenue interfaces. Documented inventory-based integration, finance-aware receipts and save migration; did not alter main-game economy or import experimental funds.
2026-09-08 — Independent Product Loop Closeout
- Unified completed commissions with free-sale history for restore/comparison; historical import is idempotent and never credits revenue again. Source labels prevent confusing guaranteed commissions with market trials.
- Completed commission recipes can be saved directly. Restoring historical recipes returns to a visible free-sale editor. Selected sales view persists across reload.
- Added mock-DOM integration audit covering full script boot, tabs, commission delivery, duplicate clicks, save/reload, restoration and escaped names; economics and simplified migration audits pass. Actual browser visual testing remains outstanding.
- This closes the independent experiment's functional loop, not main-game integration. No deployment, inventory migration or automation added.
2026-09-08 — Simplified Commission and Shared Recipes
- Replaced paid-sample workflow with free live-fit feedback and one atomic make-and-deliver action. Free market keeps paid production and clearance risk.
- Added saved-recipe selection inside commission with fit indication; uses existing recipe snapshots, without main-game integration.
- One-time migration refunds sample costs (including completed trials) and unfulfilled old production, preserves completed milestones and adjusts refunded historical profit. New audit covers all legacy stages, reload idempotency, insufficient funds and duplicate delivery.
- Visual browser validation remains pending; syntax/model checks are not a substitute for mobile testing.
2026-09-08 — Commission Cost Clarity and Decline
- User perceived second commission as necessarily loss-making. Checked valid mint1/calendula3: 14 per bouquet, sample14, production70, revenue140, total profit56. Repeated sample spending can change overall profit; no automatic price buff.
- Quote now distinguishes future production contribution from net result including sunk sample costs. Add reversible decline with no fee and no sample refund; already produced orders cannot be discarded through decline.
- Record idea of learning customer profitability; do not assume this bookstore intentionally deceives players or add reputation penalties.
2026-09-08 — Commission Workspace Layout
- Moved sales-mode selection before the shared editor. Commission brief now precedes composition, with the paid sample action next to ingredients.
- Hide free-sale pricing, market and batch quantity while composing a commission sample. After sample approval, show the confirmed recipe and transaction instead of an unrelated editable bouquet; revision restores composition. State and costs unchanged.
- Syntax validation passed; visual verification remains pending.
2026-09-08 — Bouquet Commission Experiment
- Added two sequential bookstore requests with multiple valid recipes. Paid samples, reasoned feedback, explicit quote, optional acceptance/revision, locked-recipe production and one-time manual delivery form a complete local loop.
- Separate free-sale and commission tabs share editor/experiment cash. Quote includes cumulative sample spending. Completed commissions can restore recipes for free sale; no main-game integration or deployment.
- Added regression for failed samples, cost accounting, alternative solutions, insufficient funds, immutable confirmed recipe, save/resume and duplicate delivery protection. Browser visual testing remains pending.
2026-09-07 — Bouquet Recipe Versions and Batch Comparison
- Save same-name recipes as numbered snapshots; retain original ingredients, quantity, market and price without automatic pruning.
- Restore saved recipes or finished trials into the editor without touching cash or original records. Active production blocks restoration. Capture first-round price and per-round sales for accurate clearance comparisons; label legacy records explicitly.
- Select two history entries to compare sell-through, revenue, costs, net profit and profit per produced bouquet. Avoid attributing quantity or market differences to recipe improvements alone.
- Fixed reset missing its default batch quantity. Model audit and syntax validation pass. Browser visual validation remains pending; no main-game or deployment change.
2026-09-07 — Bouquet Trial: Batch Size and Customer Continuity
- Independent experiment only: choose 1–5 bouquets with upfront batch cost and remaining cash. Legacy batch/history totals fall back to three.
- Clearance revisits non-buyers with unchanged preferences; removes arbitrary alternating rejection and excludes prior buyers. Model regressions cover all batch sizes and no repeat purchases.
- Added layered floral illustration with stable stem positions. Hide settlement and clearance controls during customer playback instead of showing final results before the last customer.
- Main-game code and economy untouched. Visual inspection remains pending due to the earlier local-file browser-policy block.
2026-09-07 — Stop Customer Queue at Sellout
- Stop the trial's customer queue as soon as the final bouquet sells. Do not invent subsequent non-purchasing customers with a sold-out reason. Settlement remains available without another sales round.
- Regression checks verify the final sellout event is an actual purchase and exactly three bouquets sell.
2026-09-07 — Bouquet Clearance Input
- Added a dedicated clearance-price input beside the sale action, showing the previous price and validating a reduction. At the minimum price, only ending the batch remains available.
- Price changes no longer rebuild action buttons during input blur, preventing a following sale click from being lost. Existing experimental saves preserved.
2026-09-07 — Independent Bouquet Trial
- Added dev/bouquet.html, an isolated three-stem-type product experiment: visible composition, distinct customer preferences, material budget, batch pricing, sequential customer responses, clearance and compost losses, saved recipes and sales history.
- Independent localStorage only; no changes to main saves, orders or live deployment. Finances settle once before the visual sequence so refreshing cannot double-credit a sale.
- Design and possible order/special-commission integration: Product trial. Integration is conditional on wanting to refine a second batch, not assumed successful.
- Model checks cover costs, sale profit, unavailable purchases, clearance repricing, two-round cap and one-time settlement. Browser local-file preview was blocked by tool policy; responsive visual inspection remains unverified.
2026-09-07 — Beta48-7 Blue Cultivation Experiment
- Existing blueStudy order now has a bookstore reading-corner request and first-delivery reply. Same ingredients, reward and repeat supply; not another story tree.
- Permit planning before color discovery while preserving plant/reveal gates and delivery requirements. Hydrangea cards show purpose, acidic-soil preparation, bloom success or wrong-color outcome. Existing blue inventory remains valid; no provenance requirement or deadline.
- QA scenario blue-cultivation starts with an unbloomed hydrangea and an amendment. This is a small purpose/appearance experiment, not evidence of improved retention.
2026-09-07 — Beta48-6: Passive Navigation Fix
- User found compact water control anonymous and order delivery jumping upwards. Compact-resource CSS had visually hidden the utility name; now “水务” stays visible in every state, alongside the status.
- Removed shared automatic receipt scrolling for order and harvest (including story receipt flow). Existing feedback and dismissible receipts remain; explicit navigation actions keep their behavior. Stale workspace scroll callbacks now abort when the player has changed workspace again.
- Added passive-scroll regression. This fixes usability, not the user's broader concern that recent gameplay changes feel minor. Do not present UI cleanup as proof of improved engagement.
2026-09-07 — Beta48-5 Integrated Review Candidate
- Completed scoped four-step pass; report and external test brief records results and remaining uncertainties.
- Cashflow comparison now claims attainable growth rewards, including the 500-coin fund, and adds demand-aware replanting. First-expansion timing improves from 209.52 to 132.28 simulated minutes after bootstrap versus fixed daily-bouquet planting, but requires more actions. No additional price adjustment.
- Completed growth route points to real expansion/finance instead of hypothetical future tasks. Completed and obsolete research archive is manually expandable. Waterer maintenance cannot consume notes after central-tank installation; late drip milestone substitutes 24 gross coins. Old achievements remain intact.
- Browser checked research at393/1280; archive opens manually. Regression covers archival persistence, one-time subsidy and expansion handoff. No production deployment or external player feedback claimed.
2026-09-07 — System Portfolio Review
- Reviewed current beta48 systems against the user's planting/business-first direction. Recorded core, promising, freeze and consolidation candidates in system-review-beta48.md, with evidence limits and retirement versus obsolescence distinguished.
- No gameplay, prices, saves or deployed services changed. Proposed consolidation is not approved deletion. Protect cloud saves, ongoing event rewards, exclusive seed sources and existing purchases before any future removal.
- Current surplus-sale work is also provisional; do not mistake completed implementation for demonstrated fun. Freeze new systems while validating economic choices and duplicated progression.
2026-09-07 — Beta48-4 Local: Order Stock Versus Surplus Sales
- Narrow follow-up to the picky-player review: reuse the existing stall rather than add another economy system. A selected planting target links to the stall when it is unlocked and target-variety surplus exists.
- “留够这单,只选余量” fills an editable draft, not a reservation or an immediate sale. Only target ingredients are selected; unrelated rare materials stay unselected. Each ingredient shows stock remaining after dispatch. Manually diverting reserved quantities states how many stems must be replaced.
- Existing 30-minute settlement, uncertain sales, unsold returns and finance deductions are unchanged. Preview shows maximum gross revenue, not guaranteed income. No new deadline, automatic shipment, material destruction or contract penalty.
- Stale drafts clamp to current inventory. Tests cover incomplete targets, conflicts, target cancellation/lock, no mutation during planning, double dispatch and unsold returns. Browser checked at 393px with no horizontal overflow; verified order → greenhouse surplus link → editable stall draft.
- This improves use of existing surplus, not proof of compelling strategy or retention. Next compare fixed planting against demand-aware planting plus surplus sales, including 500-coin growth reward omitted by the conservative prior audit. Do not call prior timings a prediction for all new players.
2026-09-07 — Beta48-3 Local: Cashflow Trial
- Added
tests/cashflow-audit.cjs: actual new-save bootstrap through the first bouquet (26.24 simulated minutes), then four fixed policies for 480 simulated minutes. No QA cash/material injection. Buy starter seeds when needed, fertilize from available compost, finance the first expansion at 2,002 coins. No subsequent expansion, equipment purchases, later reward claims, visitor drops, story rewards or liquidation of leftovers. Not a wall-clock study or optimal strategy. - Trial: mint/calendula whole-plant sale price +25%, rounded to whole coins; calendula's existing age premium is unchanged. Orders, seed prices, expansion and debts unchanged. All sale previews use the actual whole-plant quote, including harvest-choice UI.
- First expansion minutes after bootstrap, before → after: all-mint sale not reached within 480 → 392.90; mixed whole-plant sale 426.78 → 329.96; daily bouquets unchanged at 282.15. Wholesale begins at 294.14 after using daily orders to fund expansion.
- At minute 480, cash / cumulative finance paid: mint sale 665 / 2,131; mixed sale 1,283 / 2,296; daily 3,076 / 2,720; wholesale 7,408 / 3,848. Paid includes the 2,000 down payment. Do not compare cash alone without the expansion asset and debt. Mixed sale spent 312 on seeds; mint sale spent 2; retained-flower policies spent 0 because mint returns its sowing seed and calendula stays planted. Manual water costs zero; compost is recorded in units, not assigned a fictional purchase price.
- Findings: first expansion is still a long goal on these basic routes; wholesale remains a strong post-expansion reward, so no immediate nerf. Fixed calendula production accumulates 400+ unused stems, pointing to planting allocation rather than another currency. Next audit should test demand-aware planting and additional unlocked revenue routes before altering expansion cost or retained-flower output.
- Saved-game data is unchanged. This is local only; online remains beta47.
2026-09-07 — Beta48 Local: Optional Production Target
- Main focus remains planting and business; letters are a supporting feature, not the main progression system.
- Added one optional persistent supply target per garden. Pin/cancel on an unlocked order; the existing goal strip, harvest suggestion and stock receipt prefer it. Seed choices show missing stems, including hydrangea color-specific names.
- No material reservation, expiry, automatic planting or price changes. Delivery clears the selected target. Other orders and caretaker business remain available and can consume the shared inventory.
- UX follow-up: renamed the action to “设为种植目标”; selection returns to the greenhouse and focuses a target strip above pots with missing stems, order link and cancel. Seed options and relevant plants identify target needs; a ready target links to delivery. Asset revision 48-2 avoids stale scripts.
tests/production-audit.cjscompares real ticks over 30 simulated minutes, four pre-expanded slots, no equipment, 100 coins, 20 compost and 20 seeds of each tested type. No visitor randomness or reward claims. Counts game commands, not physical clicks; excludes historical expansion/seed costs and does not liquidate leftover inventory.- Cash gains / commands: all-mint sale 172/42; three mint + one calendula for daily bouquets 420/60; same planting for wholesale 840/52; two mint + calendula + moonflower for sachets then bouquets 314/55. Wholesale dominance is a balance concern, not proof of a universally optimal route. No price tuning yet.
2026-09-07 — Beta47 Published
- User approved publication. Source
fde418e, Cloudflare deployment400c7bd2; primary-host script matches the tested source SHA-256. - Five test suites and documentation generation passed. No database migration or user-save reset.
- Next: one continuous non-QA play session to assess whether replies are noticed and anticipated, and whether material-to-order progress guides the next planting. External AI should limit retesting to regression/UI and distinguish wall-clock evidence from fixtures.
2026-09-07 — Beta47 Review Follow-up (Local)
- Fixed the mobile caretaker grid row collision; title, 20-minute description and action now appear in order. Decorative letter icons remain hidden on small screens intentionally.
- Zero dry pots explicitly hides and disables batch watering, including a CSS hidden override.
- Stock receipts now show a relevant available order's material progress and missing stems; cash receipts retain expansion/repayment progress. Starter customer request is directly visible.
- Visits two and three pay immediately but deliver narrative replies after two real minutes, online or away, without expiry or a required reopen. Pending reply timestamp survives saving; completed letters remain collapsed. First reply stays immediate for onboarding.
- QA scenario query is removed after loading once so refresh resumes progress instead of reapplying the fixture. Natural production saves are unchanged.
- Browser verified: refresh preserved pending correspondence; 375px caretaker title/description/action are correctly ordered, zero-water button is absent, no horizontal overflow.
- No systems removed. Research branch presentation and expanded customer roster remain follow-ups, not required for this focused fix. Online beta46 stays stable for the external test.
2026-09-07 — Completed Letters Fold Away
- Creator liked the second visit and prefers discovering the next trigger, not an explicit harvest countdown.
- Between visits and after the ending, Auntie Lin now occupies one collapsed completed-correspondence row. Letters and the keepsake remain inside; active requests still show normally.
- New delivery replies remain readable until manually dismissed. Archive disclosures retain the existing manual open/close behavior across ticks.
2026-09-07 — Beta47 Local: Three Visits From Auntie Lin
- Kept beta46 online for the external tester. This local experiment separates repeatable supply income from a three-visit character arc.
- First bouquet starts the correspondence; four further harvests reveal a moonflower request, six after that reveal a purple-hydrangea anniversary bouquet. Each visit has different context and a persistent reply. Requests never expire.
- Added one-time material deductions, ordinary financing-aware payment, no voucher consumption, no automatic caretaker delivery, and a final keepsake entry. No new flower or genetics system.
- Normalized old saves without replaying all visits; old first-order completion is recognized, then harvest spacing starts at migration. Added two explicitly synthetic QA fixtures and a dedicated story regression suite.
- Creator preference recorded: rarer meaningful encounters, gradually more specific flowers, changing responses rather than random repeated thanks. Actual emotional effect and spacing remain human-test questions.
- Verification: five automated suites pass; 393px browser delivery of visits two and three deducts materials and shows the correct reply/payment. Letters stayed open across ticks; 393px and 1280px showed no horizontal overflow. Documentation rebuilt successfully.
2026-09-07 — Beta46 Published
- Published source
93f94b4to the existing Cloudflare playtest site, deploymentac93dd4e. - Both smoke suites, economy audit, progression audit, documentation generation and whitespace checks passed. Primary-host game.js matches the tested source byte-for-byte; production page loads successfully.
- Creator feedback: Auntie Lin's reply feels good; harvest/storage is acceptable; proceeds links clarify the chain but are not yet a strong incentive.
- Next narrative experiment remains separate: three spaced visits with changing replies and progressively specific flowers. No expiring requests or new story branches shipped in this release.
- External AI can test beta46 discoverability, receipts, layout and state boundaries now. Background timer freezing prevents reliable real-time pacing evidence. No real user save has been exported; QA fixtures must not be described as natural-play samples.
2026-09-07 — Staged Character Commissions Recorded
- Recorded the user's hidden rewards, evolving requests, story fragments, alternative deliveries and small endings in the system backlog.
- Accepted the direction, not implementation in beta46. First experiment stays small and warm; permanent supply income remains separate and key story decisions stay manual.
- Next remains beta46 human experience/background validation and release. Multi-branch and dark outcomes are deferred. No game behavior changed.
2026-09-07 — Beta46 Main-loop Candidate
- Completed a first human commission on the existing daily bouquet: one named breakfast-shop customer, an optional request and a once-only first-delivery reply. Completed-order counts preserve replay semantics across saves; repeated orders do not repeat the receipt letter.
- Added a local replaceable bouquet SVG, visible receipts and direct order/shop navigation. Receipts show a single expansion target or financing balance; no extra reward-claim action.
- Fixed cross-workspace shop opening from the order receipt. Changed selected-pot auto-centering to instant positioning after one stock click was misdirected during scrolling; subsequent browser stock clicks credited materials correctly.
- First receipt reveal scrolls only once after render, not every tick. Read event invitations no longer retain the large main banner; caretaker status remains explicit. Paused-water wording now also covers shop and pot details.
- Four automated checks pass: existing two smoke suites, equal-pot audit, and actual-tick progression audit. First-order route uses default state, no QA harvest or injected funds. The separate plant/crew experiments are explicitly fixtures.
- Browser: 375/393/768/1280 widths have no document overflow in the checked paths; bouquet asset renders; first/repeat delivery, persistent disclosure, receipt visibility and shop navigation exercised. These are browser viewport checks, not real iPhone certification.
- Updated dev dashboard from stale beta20 to beta46 LOCAL, current focus, and documented findings. Production remains beta42. No gameplay prices changed. Next gate is human feel/background testing; strawberry stays deferred.
2026-09-07 — Whole-pot Economy Audit
- Added
tests/economy-audit.cjs, an isolated VM check calling actual sale and revenue functions without touching saves. Fixed full-freshness profiles compare complete harvests, retained inventory and per-transaction financing rounding. - Daily bouquet: base-yield whole-pot sale 28 vs order42 plus leftovers; base+2 sale32 vs order42 plus leftovers. Wholesale: sale96 or88 vs order420.
- The next balance question is wholesale crowding out everyday orders. No price, growth, unlock or save changes were made. Natural-time and retained-plant lifetime economics remain unmeasured.
2026-09-07 — Beta45 Follow-through (Local)
- Cooldown-only competition banner no longer occupies the main page; invitation and open-event views remain available. Regression checks cover cooldown and next invitation.
- Recent harvest receipt links directly to orders, without an extra claim action. Existing delegated workspace setup binds this static button.
- Started equal-material economy audit. Corrected the external daily-bouquet baseline to 20; whole-pot timing and retained-plant value remain pending. No prices changed.
- This is partial midgame decluttering, not a claim that every banner accumulation case has passed. Real midgame-save review and receipt visual polish remain in step 2.
2026-09-07 — Second-review Triage (Local)
- External beta42 review retracts QA-contaminated yield and order-scarcity claims, and the desktop-nav false positive. Its natural-growth experiment did not finish; do not treat the supplied ratios as measured whole-cycle outcomes.
- Confirmed and fixed water-center state mismatch: serviceEnabled alone previously claimed automatic supply without centralTank. Both center and welcome routes now explain uninstalled equipment, free manual/drip watering, and where equipment is available. Installed active/paused behavior is unchanged.
- Regression tests cover uninstalled, welcome, installed and paused states. Next: midgame banner accumulation, finish step-2 harvest feedback, then step-3 equal-input economy audit. Keep the seven-step sequence; unique breeding remains a later experiment.
2026-09-07 — Beta 44 Harvest Receipt and Overlap Fixes (Local)
- Removed the decorative title stamp at all widths so it cannot cover the view switch. Reserved resource-toggle space at all breakpoints instead of only on phones.
- Started step 2: a persistent, dismissible inline harvest receipt distinguishes inventory materials, retained plants and emptied pots. Batch harvest produces one receipt; rewards are credited immediately without a second claim action.
- Consignment receipts show net coins, repayment deductions and balance. Order feedback also reports net rather than gross income. No economy values changed.
- Browser checks: 768px title ornament removed and resource toggle does not intersect resource cards; 393px receipt stays within the viewport with no horizontal overflow, survives regular rendering and closes manually.
- Both smoke suites pass, including receipt persistence and net-income display assertions. Flower/bouquet artwork remains a placeholder; this is the first step-2 candidate, not final visual acceptance. Not published.
- Further tester feedback should be collected now, especially blockers and misunderstandings, rather than waiting until all seven steps are complete.
2026-09-07 — Beta 43 First-screen Cleanup (Local)
- Started step 1 of the ordered roadmap. Community, feedback, save and reset now live in a native More disclosure; music, view switching, pause, away mode and seed/shop entries remain directly available.
- More remains outside the tick-rendered UI and supports explicit toggle, Escape and outside click; choosing a command closes it.
- Compact phone resources preserve the player's saved expanded preference. Removed the separate row previously occupied by the resource toggle, and placed away/caretaker entries side by side.
- 393 × 852 browser check with the same wholesale fixture: first pot around 737px with resources expanded and 698px collapsed (beta42 about 1067px expanded). No horizontal overflow. Native menu close behavior and saved resource collapse were exercised.
- Both logic smoke suites pass. This is browser viewport verification, not a physical iPhone or fresh-player usability sign-off. No economic changes; not published. Next: harvest/revenue feedback after layout review.
2026-09-07 — Next Development Sequence
- Consolidated the harvest/profit discussion, narrative commissions and beta42 follow-ups into one ordered roadmap.
- Order: care/first-screen completion, tangible harvest feedback, economic verification, one human commission, visible expansion goals, integrated playtest, then strawberry revisit.
- Planning/documentation only; no additional gameplay or deployment in this step.
2026-09-07 — Beta 42 Care Discoverability (Released)
- Added direct dry-pot watering and explicit batch watering with caretaker/orchid/wet-pot exclusions.
- Clarified whole-plant material harvest and water service trial copy.
- Adjusted phone shop actions, multi-status flow, scene counters and first-screen ordering.
- Recorded audit scope and deferred work and reply draft.
- Released
e3bce23to existing Cloudflare production, deployment4da8c1d8. Verified primary URL serves beta42. Both smoke suites pass. Narrative commissions remain a documented next experiment, not included gameplay.
2026-09-07 — Beta 41 Starter Seed Experiment (Local)
- Starter harvests no longer multiply seed inventories through pollination. Mint retains one continuity seed; calendula seeds come from deliberate seed saving or purchase.
- Added direct starter-seed purchases in the seed library, including price, missing coins and automatic selection. Existing inventories and caretaker contracts are unchanged.
- Calendula seed saving yields two seeds, three after pollination; same-bloom repeated reservation is guarded.
- Recorded the external playtest critique as hypotheses, disagreements and direction questions, not an approved feature list: 方向复盘与种子实验.
- Logic smoke suite passes; an existing random growth-duration assertion remains flaky. Not deployed in this turn.
2026-09-08 — Beta 40 Compact Multi-status Cards
- Fixed narrow-screen visitor and pollination rows showing only the upper half of multi-line status chips inside their intentionally compact 24px overview slot.
- Phone overview cards now use one-line visitor marks and names. Secondary timing copy remains available in the selected-pot details instead of forcing each grid tile taller.
- Multiple simultaneous conditions retain bounded single-line chips, while pest and pollination color continue to carry urgency and outcome.
2026-09-08 — Beta 39 Persistent Disclosures and Contract Feedback
- Fixed the first community-florist delivery losing its signing feedback when the same action also unlocked the soil lab. Concurrent outcomes now queue separately: the contract signing is acknowledged first, followed by the capability unlock.
- Dynamic explanation disclosures now belong to the player rather than the render timer. Order purposes, growth-route reasons, and pot-local seed menus retain their open or closed state across periodic simulation redraws and change only after a deliberate toggle.
- Removed the older seed-menu workaround that froze all pot rendering while a menu was open. Plants and counters continue updating behind an open selector without collapsing it.
- Added regression assertions for every dynamically rebuilt disclosure surface.
2026-09-08 — Beta 38 South Bed Contract Candidate
- Gave the first expansion a concrete economic consequence. After one ordinary order, players can preview the community florist's weekly contract; it remains locked until the South Bed opens four planting slots.
- The repeatable contract consumes 24 mint and 10 calendula stems and pays 420 coins plus 6 observation notes. This creates durable demand for starter flowers and a faster, still earned route through expansion repayments.
- Expansion previews now name their intended capability: wholesale demand at four beds, climate cultivation at six, and batch production or caretaker efficiency at eight. Only the South Bed benefit is implemented in this candidate.
- Added a
south-wholesaleQA checkpoint and regression coverage for two-bed locking, four-bed access, settlement, save defaults, and the staged expansion preview. - Full smoke coverage and iPhone 15-width overflow checks pass. This remains a local playtest candidate until its pacing is judged in play.
2026-09-08 — Beta 37 Spring Cup Re-invitation Fix
- Prevented the Spring Cup invitation notice from reappearing immediately after prize settlement while the event is still in its six-harvest rest period.
- During cooldown, only the persistent event banner reports the remaining harvests and its entry action stays disabled. The next invitation notice appears when the sixth normal greenhouse harvest completes.
- Pushed commit
52775a4to private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.37; release preview:363fab64.greenhouse-notes-playtest.pages.dev.
2026-09-08 — Beta 36 Stable Attention Fix
- Explicitly clears the reward strip's ready state after all current growth milestones are claimed, preventing the completed route from flashing forever.
- Slowed and softened the claimable-reward sheen from a strong 2.8-second loop to a restrained 6-second cue.
- Removed hover transitions and ambient infinite animation from periodically rebuilt pot cards. Stable card state no longer pulses under a stationary pointer; decorative movement remains a responsibility of persistent showcase surfaces.
- Pushed commit
e888559to private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.36; release preview:d897ad63.greenhouse-notes-playtest.pages.dev.
2026-09-08 — Beta 35 Persistent Aphid Fix
- Removed aphids from the generic timed-visitor departure path. They no longer auto-record and vanish after seven ticks.
- Aphids now persist until manual rinsing, greenhouse-master treatment, or a completed ladybug visit. Replaced their countdown with an explicit unresolved-hazard label.
- Pushed commit
ec279a5to private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.35; release preview:e5d9e188.greenhouse-notes-playtest.pages.dev.
2026-09-08 — Beta 34 Pot-local Seed Selection Candidate
- Corrected the beta 33 seed-selector interpretation after creator review. The desktop sidebar now simply collapses the full seed inventory; it no longer owns a periodically rebuilt native variety selector.
- Moved variety choice into every empty pot as a compact product-style disclosure. Players choose a stocked variety in place, then plant it without navigating to another panel.
- Prevented periodic simulation renders from rebuilding the garden while a pot variety menu is open. Time continues advancing underneath, but the menu remains stable until the player finishes the choice.
- After clearing a plant, focus remains on the same empty pot instead of opening the sidebar seed drawer.
- Pushed commit
5e754feto private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.34; release preview:12d0ef98.greenhouse-notes-playtest.pages.dev.
2026-09-07 — Beta 33 Shared Expansion Route Candidate
- Turned the existing three greenhouse structures into one explicit main progression route: South Bed, Glass Wing, and Long Bench.
- Added a fixed-price financing option to every stage. Players can save the cheaper full price or pay a deposit to open capacity immediately while 20%, 25%, or 30% of actual income repays the fixed total.
- Added a compact collapsible route preview to the equipment catalog so future structures, current costs, and repayment state are visible without introducing a separate industrial-mode screen.
- Reworked the desktop seed shelf as a compact product-variant selector. The currently usable seed remains visible, while full inventory traits and unlock details live in an optional catalog disclosure; the phone seed drawer retains the same data instead of introducing a second selection model.
- Kept interest, deadlines, staffing, branding, and logistics out of this test slice. Financing changes progression speed, not the player's destination or access to the nurturing game.
- Pushed commit
0f0c649to private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.33; release preview:721248e8.greenhouse-notes-playtest.pages.dev.
2026-09-07 — Beta 32 Information Hierarchy Pass
- Confirmed the earlier
problems shout, normal information whisperswork was only a first pass, not complete. - Rebuilt equipment cards around stable image-first placeholders for the dripper, manure bag, beds, central tank, and soil feeder. Desktop uses compact catalog thumbnails; the phone drawer uses larger previews.
- Added immediate catalog states (
可购买,金币不足,尚未解锁,已安装,筹款中) so players do not need to infer availability from paragraphs or disabled buttons. - Reduced duplicate pot copy: irrigation durability remains in the water-drop equipment chip and no longer repeats below the plant; ordinary growing cards no longer repeat stage and growth percentage beneath the three meters.
- Reframed ready progression rewards around the actual item being claimed, with the completed action as supporting context. Ready orders now present a clear
交付并收款action. - Added a restrained ready-state sheen with reduced-motion support. Ordinary meters are quieter until hovered, focused, selected, or abnormal.
- Recorded commercialization as an optional player-chosen branch. The home greenhouse remains a complete play style without loans or industrial operation.
- Kept the greenhouse shop visible before its progression unlock. The closed storefront now previews the exact opening condition instead of disappearing and making players wonder whether a shop exists.
- Pushed commit
8a025dcto private GitHubmainand released the player build to Cloudflare Pages. Production serves0.10.0-beta.32; release preview:9bf3b8ad.greenhouse-notes-playtest.pages.dev. - Rebuilt and released the companion Dev Garden documentation; release preview:
1ad40e5c.greenhouse-notes-devgarden.pages.dev.
2026-09-07 - South Bed Financing Candidate
- Reframed the first expansion as a long-term capital goal. New saves begin with two pots; existing saves retain their current two, four, six, or eight slots.
- Added the South Bed at a 10,000-coin cash price or voluntary construction financing: 2,000 deposit, 12,500 fixed total, and 20% of real coin payouts automatically repaid. Financing has no real-time interest or deadline, opens two new pots immediately, and blocks only the next expansion until repaid.
- Added a pre-purchase terms sheet, a persistent compact repayment strip, explicit shop states, and
expansion-ready/expansion-financeQA checkpoints. Raised later placeholder expansion prices to 30,000 and 90,000 so they no longer undercut the new progression scale. - Routed greenhouse sales, orders, batch consignment, market stalls, event payouts, caretaker orders, and wheel coin rewards through the same repayment rule. Updated the eight-harvest milestone to a 500-coin expansion fund.
- Recorded backyard-to-business research leads: formal business transition, niche selection, outsourcing, bought plugs, farmers markets, bees, chickens, seedlings, and value-added products. These remain staged ideas rather than immediate feature commitments.
2026-09-07 - Greenhouse Return Record Candidate
- Replaced the dense lower-corner offline notice with a deliberate return record using the simulation data already produced by quiet growth, irrigation, soil feeding, utility billing, and caretaker shifts.
- The first scan now answers four questions: how long the player was away, how many plants newly matured, how many continued growing, and how much automation or caretaker work occurred. A short sentence names the plant with the largest change, followed by exact automation costs and actions when present.
- Did not claim offline visitors, discoveries, passive coins, or harvested materials unless the underlying simulation actually produced them.
- The primary action opens the most-changed pot; dismissing simply acknowledges the report. Both routes clear the saved summary so it cannot replay on every render.
- Added a restrained custom greenhouse arrow for fine-pointer devices. Its sharp tip and light outline preserve accuracy against pale and dark surfaces; interactive controls retain the familiar hand cursor, text fields retain the text cursor, and touch devices ignore it.
- Corrected the selected-pot action dock at narrow and zoomed widths: it no longer extends beyond its pot, its heading and controls use bounded columns, and very narrow screens omit the redundant pot number so the close control stays fully visible.
- Published commit
cf323a9to the private GitHubmainbranch and Cloudflare Pages. Production serves0.10.0-beta.28-3; the release-specific preview isfe8bf6ca.greenhouse-notes-playtest.pages.dev. Production QA at 390 x 844 confirmed equal 9px action-dock insets, no horizontal overflow, the custom cursor asset, and no browser warnings or errors.
2026-09-07 - Distinct Scene And Ledger Views Candidate
- Kept scene view as the visual greenhouse: plant silhouettes, taller growing areas, and the live maturity summary remain the first signals.
- Changed ledger view into a compact one-row-per-pot inspection surface. It removes decorative plant imagery, places identity beside growth/water/nutrient readings, and retains exceptions, visitors, harvest information, and the same pot-local actions.
- Kept both views on one game state and save. Switching presentation cannot interrupt growth, change economy, or duplicate a pot.
- Added the Dev Garden staging/deploy helper to source control. It packages the design site with its audio dependencies without rewriting source files.
- Corrected the ledger row's visual center after device review: its former 7 px left soil border displaced every row's contents to the right. The soil profile is now an inset stripe that occupies no layout width, leaving equal content gutters.
- Clarified the view switch as an action rather than a state label. It now shows the destination (
切到账本/切到场景), while its hover text and accessible label state both the current and target views; compact text remains visible on touch screens. - Extended the narrow-screen topbar reflow to ledger view after the clearer switch label exposed a legacy no-wrap rule that pushed its first control outside the viewport.
2026-09-06 - Scene-first UI Shell Candidate
- Added a saved
场景视图 / 账本视图comparison without changing game state, economy, or save format. Scene view is the default for players who have not chosen a mode. - Moved a live greenhouse scene directly below the title so it appears in the first viewport before speed, resources, and paperwork. It truthfully summarizes growing beds, blooming beds, active visitors, and the most advanced growing plant.
- Upgraded that scene into a real-time activity summary: it selects the plant with the shortest estimated time to maturity, shows how many beds are growing independently, gives an approximate countdown and stage, and recalculates from current speed, water, nutrients, pests, soil fit, fertilizer, active care, and caretaker effects. A restrained progress line makes the next arrival scannable without adding another dashboard card.
- Reframed the desktop garden as the visual center while seed and codex sidebars recede until used. Plot cards use quieter surfaces, taller plant stages, and stronger selected-plot focus.
- Verified the scene at 1440×900 and iPhone 15 dimensions (393×852): no document or selected-pot action overflow, the scene appears in the first viewport, and switching back to ledger mode hides it cleanly.
- Final narrow-phone audit found the collapsed resource shelf pushing its visitor value beyond the viewport at 320 px and placing the water summary beneath the expand control. Reflowed the shelf into an explicit two-row grid with symmetric gutters and no overlapping controls.
- Current plants and scenery remain CSS placeholders. Creator art can replace the silhouettes after the interaction hierarchy is accepted.
2026-09-06 - Responsive And Economy Audit Candidate
- Audited eleven representative QA checkpoints at 393×852 and 1440×900. No visible control or document-width overflow was found at either supported size.
- Raised compact phone actions that still measured 32–34 px to a 44 px minimum touch height: secondary-goal reveal, care routing, pot details, soil access, status dismissal, and the selected-pot close control.
- Rechecked the current economy rather than changing values by feel. Basic orders pay about 2.1× direct material value; advanced orders pay roughly 2.4–2.8× while retaining starter-flower demand. Existing caretaker simulations remain intentionally unprofitable at four beds, near break-even at six, and clearly profitable at eight.
- Identified seed and observation-note surplus as the next structural balance risk. It needs a feature-linked sink, not another generic currency exchange.
- Imported one previously unrecorded D1 report as F39. It came from beta.19 at 320×605 and predates the later phone hit-area work.
2026-09-06 - Reward Priority Candidate
- Changed first-screen priority to
claimable growth reward -> deliverable order -> current growth goal. A completed milestone can no longer be hidden behind an order that is also ready. - Reworked only the claimable state into a larger gold reward surface with an explicit reward statement and high-confidence claim action. Incomplete goals remain visually quiet.
- Added a direct
reward-readyQA checkpoint for phone and desktop hierarchy testing before release.
2026-09-06 - Multi-device Cloud Save Candidate
- Replaced the single rotating browser credential with one independent credential per authorized device. Recovering on a phone no longer revokes an existing computer session; the recovery code itself still rotates after successful use.
- Added monotonic save revisions. Automatic upload refuses to overwrite a newer cloud revision and presents the player with explicit
读取云存档or用本机进度覆盖云端choices only when a conflict occurs. - Made recovery-code input tolerant of spaces and alternate hyphen characters after a valid stored code failed on a phone. Production hash comparison and an isolated create/recover/delete flow confirmed the original code and endpoint were valid.
2026-09-03 - Garden Identity And Community Candidate
- Added an optional
社区surface instead of placing ranking data in the main greenhouse. Players can name a garden, opt into public ranking, create or update a cloud save, read it back, or recover it on another device. - Added a D1 garden schema and
/api/communityendpoint. Full saves require a hashed private browser credential; recovery codes are hashed and rotate the browser credential after use. The public endpoint returns only garden name, blooms, discoveries, and Cup score. - The first leaderboard is intentionally quiet and carries no gameplay reward. Client-supplied beta metrics can be forged, so this version is for belonging and playtest discovery rather than trusted competition.
- Recorded garden-specialty crops and asynchronous trade as Later. Trade must not block solo progression and will not be implemented until cloud identity is proven.
- Paused strawberry integration after its isolated loop felt watchful, dry, and disconnected from meaningful demand.
- After first live use, kept the
社区label permanently visible and moved the garden name into a secondary line. Connected gardens now save locally immediately and throttle cloud updates to roughly once per 30 seconds after play actions; manual upload remains available for explicit confirmation. Recovery codes are only for another device or lost browser storage.
2026-09-03 - Strawberry Vertical Slice Definition
- Chose strawberry as the first fruit crop rather than another flower reskin. Its persistent mother plant will cycle through flowers, green fruit, ripening, a manual picking window, and repeat fruiting.
- Defined friendly late-harvest consequences: quality falls before a later event removes only part of the crop; the plant remains healthy and continues. Bee visits improve fruit count and marketability.
- Kept numeric light, pH, nutrient chemistry, diseases, animal varieties, recipes, and genetics outside the first implementation. Auto-picking and fruit netting are earned follow-up goals; cultivar breeding is a later long loop.
- Added four QA checkpoints and scientific grounding in
design/strawberry-loop.md. - Added an isolated playable lab at
prototype/strawberry-lab.html. It covers establishment, flowering, green fruit, turning, ripe and overripe windows; manual whole-pot picking; bee-assisted yield; partial late loss; repeat fruiting; local save; and test speed controls without touching the main-game save.
2026-09-03 - Harvest Decision Candidate
- Replaced the two context-free ordinary-flower harvest buttons with a two-route decision surface.
立即变现states the exact immediate coin payout;为订单备货states usable stems, the most relevant visible order's inventory change, remaining deficit, full order payout, and note reward. - When no available order uses the material, the stock route says that it is future inventory and does not pay immediately. Already-satisfied ingredients are also named instead of pretending the current harvest advances them.
- Added a narrow-phone single-column treatment and a direct
harvest-choiceQA checkpoint with a mature mint plant and a daily bouquet missing one mint stem. - Added earned batch harvesting for greenhouses expanded to at least six beds. When two or more eligible plants are mature, the greenhouse previews either total immediate coins or total stocked stems before the player chooses
全部寄售or全部入库. - Batch harvesting deliberately skips specialist calendula and orchid plants, seed-saving plants, declined plants, immature plants, and event cultivation. Added a
batch-harvestQA checkpoint plus settlement coverage for both policies and the specialist exclusion. - Versioned the local candidate as
0.10.0-beta.21. Both smoke suites, JavaScript syntax validation, and whitespace validation pass. Human visual and comprehension testing remains before release. - The batch summary now names both the number of ordinary plants it will process and any mature specialist plants that still need an individual decision.
2026-09-03 - First-Screen Focus Experiment
- Reused the existing workspace model rather than adding generic accordions across the page. The top focus area now presents one dominant item: a claimable order takes priority; otherwise the current greenhouse growth milestone remains primary.
- Added a manual
查看订单目标/查看成长路线disclosure for the secondary goal. Its state remains open until the player closes it and does not collapse on simulation redraws. - Folded the large desktop equipment catalog behind a named
温室商店summary. Phone shop entry still opens the catalog directly, preserving the established short mobile route. - This is a reversible information-hierarchy experiment, not removal of any system. Test whether players can still find orders and automation while reporting fewer simultaneous blocks of text.
2026-09-03 - Long-Session Exploration Feedback
- Recorded a sustained tester session in which the desire to discover and try every existing system supported collection and unlocking as a genuine motivation loop.
- Accepted a future one-action harvest flow as earned scale relief, but placed clarification of
整株寄售versus剪花入库first so automation does not conceal an unresolved economic choice. - Added fruit and vegetable crops as an exploration track beginning with one mechanically distinct greenhouse crop, and routed the request for visual variety into the existing art plan.
- See
notes/playtest-feedback-04.mdanddesign/system-backlog.mdfor the detailed interpretation and recommended order.
2026-08-30 - Narrow-phone plot stability
0.10.0-beta.20fixes overlapping pot vitals and right-edge clipping on narrow phones. Below 420px, each vital becomes a compact icon/value pair instead of attempting to fit a tiny progress bar; all card children and the selected action dock are constrained to the tile width.- Disabled decorative infinite plot animation on phone layouts because the 1.35-second game redraw restarted those timelines and made pots flicker or shudder. Causal one-shot feedback such as watering and rewards remains animated.
- Follow-up iPhone 15 testing found that the selected pot's actions still relied on a horizontally scrolling row, leaving some commands fully outside the visible tile. Narrow-phone actions now form a two-column wrapping grid inside the card and fall back to one column below 340px.
- Fixed intermittent dead taps across touch and pointer platforms. Game ticks now defer DOM replacement from pointer-down until the resulting click has completed; canceled gestures use a short fallback release instead of swapping the pressed button before the browser can dispatch its click.
- Removed another source of phone layout jitter: visitor arrivals previously added roughly 24px to one tile and stretched its entire grid row. Compact cards now reserve a fixed visitor slot, so arrivals update content without moving neighboring pots.
- Added a live coin wallet to the greenhouse shop header after testing showed that players had to close the shop and return to the page top to check affordability. The wallet updates with every purchase and stays visible while the mobile shop scrolls.
- Extended the same action-context audit to soil and competition spending. Soil adjustment now keeps the current coin balance beside its controls and states the exact shortfall instead of silently disabling a purchase. The Spring Cup keeps available coins and observation notes in a compact in-pavilion wallet through registration, preference research, preparation purchases, and the lucky wheel; on phones it remains visible while the pavilion scrolls.
- Replaced per-render Spring Cup button listeners with one stable pavilion-level action handler. Registration, preparation, cultivation, judging, market, and wheel controls now survive periodic simulation redraws instead of occasionally losing a click or keyboard activation between frames.
- Added a conventional close control to the first-dripper notice after the audit found that its required “view plot” action could cover unrelated controls on a phone. Players can now dismiss it in place without being redirected. Competition shortfalls also include their currency unit, and the phone pavilion no longer traps its sticky resource wallet inside a clipped container.
- Strengthened card-button affordance after another tester read vertical controls as passive data. Seed cards now end with an explicit
选择种植/已选择action chip, and the compact master-care button exposes its existing查看command instead of hiding it. The lucky wheel's central抽hub is now the real free-spin button; after the free draw it redirects focus to the paid/material choices without spending anything automatically. - Removed the ambiguous tool-shelf-level
库存count, which only referred to uninstalled drippers. The dripper purchase button now owns and names that inventory next to its price. Standardized mobile exit behavior across the growth/research center, information dialogs, caretaker sheet, seed shop, tool shop, and soil adjustment: the panel content scrolls while its title and 44px close control stay visible, including iPhone safe areas. - Both smoke suites and
node -cpassed. Pushed commitdf583e9to the private GitHubmainbranch and released0.10.0-beta.20to Cloudflare Pages (greenhouse-notes-playtest). Production confirmed the expected app version with no console errors.
2026-08-18 - Dev Garden Published for Sharing
- Creator asked to get the design/doc site itself (not just one log file) accessible by URL, to share read-only with one collaborator (Dandan).
- First attempt used Netlify (
sites:create+deploy --dir dev), matching how the game itself was hosted earlier. Both--proddeploys to the new site failed with a bareJSONHTTPError: Forbidden, including from a clean directory with no conflictingnetlify.toml; a same-account draft (non-prod) deploy to the same new site succeeded, which points at a production-deploy-specific gate rather than a config problem. Creator then confirmed Netlify credits are exhausted on this account and the project already moved primary hosting to Cloudflare Pages (seeDEPLOYMENT.md"Cloudflare Production") — this fully explains the prod-only failure. Deleted the unused Netlify site (greenhouse-notes-devgarden) to avoid leaving cruft. - Switched to Cloudflare Pages, matching the game's own current host.
npx wrangler pages project create greenhouse-notes-devgardenthennpx wrangler pages deploy dev --project-name greenhouse-notes-devgardenpublished the entiredev/folder (the generated Dev Garden dashboard plus every doc page underdev/docs/) as its own separate Pages project, independent from the player-facinggreenhouse-notes-playtestproject. Nofunctions//D1 wiring needed since this is pure static content, unlike the main game. - Hit one unrelated environment issue along the way:
npx wranglerinitially failed with aworkerdnative-binary load error (generateBinPath) — a corrupted/incomplete npx cache entry for the platform-specific binary, not a real incompatibility. Deleting that one~/.npm/_npx/<hash>directory and re-running fixed it. - Verified the deploy live: dashboard loads at the project root,
docs/notes/dev-log.htmlrenders full content, internaldocs/...navigation links work (they were always plain relative<a href>, notfetch(), so no CORS/base-path concerns), no console errors. - Live: greenhouse-notes-devgarden.pages.dev. Same privacy model as the main game's Cloudflare/Netlify hosting — unlisted by URL, not access-controlled or password-protected. Fine for sharing with one trusted person; not for broad distribution.
- Not wired into any deploy routine yet — this is a manual snapshot. Whoever updates
notes/*.mdordesign/*.mdlater should rerunnode dev/build-docs.cjs(already project convention) and thennpx wrangler pages deploy dev --project-name greenhouse-notes-devgardenagain to refresh this site; nothing does that automatically today.
2026-08-17 - Next-session design handoff
- Recorded Dandan's external UI review as the next session's first design discussion: an idle-game information-hierarchy audit focused on dominant rewards, visible autonomous activity, return payoff, quieter normal states, resource semantics, and reduced borders.
- Kept the review as evidence and hypotheses rather than an automatic feature list. Existing systems such as return summaries, resource collapse, mobile workspaces, and pot-local actions must be audited before adding parallel UI.
2026-08-17 - Phase 7 setup, music, and art pipeline
- Recorded the creator's two original melody phrases and a first arrangement exercise in
design/music-direction.md. - Added a scoped pixel-art production list in
design/art-asset-plan.md: mint and butterfly orchid form the first visual vertical slice. - Began Phase 7 with an isolated butterfly-orchid specimen and two QA checkpoints. It grows on an approximately twenty-minute healthy baseline and is not yet part of normal progression.
- Split the orchid from ordinary production cards with a full-width specimen presentation, a dedicated tall pot and backdrop, a persistent identity banner, and lifecycle-specific copy. The distinction remains responsive rather than becoming a separate management screen.
- Replaced the flat research list with a four-branch capability tree.
个体培育is the first cultivation node and now awards one orchid specimen in ordinary saves after three readable prerequisites and an 18-note research cost. - Corrected the first tree presentation after it still felt like a research list attached below tasks. Growth route and research now occupy separate tabbed views; research receives a wider four-lane canvas and shorter nodes.
- Added the orchid's first bounded cultivation result. Natural waiting still flowers successfully; two distinct effective care types produce a persistent branched-spike record and two additional flowers under equal conditions. Added natural and branched bloom QA checkpoints.
- Expanded the creator learning board with orchid lifecycle, pixel growth-stage, and loop-arrangement studies.
- Completed the first butterfly-orchid care language in
0.10.0-beta.9. Hold-to-water remains one continuous action; translucent roots shift from silver to green, leaves change posture, excess water drains visibly, and one short sensory line explains only the current state. - Kept specimen mistakes gentle. Dry and wet conditions slow growth but remain recoverable, and the ordinary greenhouse master never harvests the orchid.
- Added the adopted
V0.4greenhouse theme to the playable prototype with an explicit play/pause control, remembered volume, and no autoplay. The original recording, written notes, and all arrangement iterations remain archived in the Dev Garden music room. - Verified the release candidate at desktop and 390-pixel phone width. The orchid states, music asset, and responsive layout load without horizontal overflow; both smoke suites pass.
- Follow-up
0.10.0-beta.10replaces the ambiguous standalone music note with an explicit播放音乐 / 暂停音乐command. The text remains visible on phones while only the volume slider collapses. 0.10.0-beta.11adds a bounded fertilizer research ladder. Ten harvests and 16 notes unlock超级鸡肥at 54 coins for roughly four minutes of 3x growth; the late金坷垃node requires that research, 30 harvests, and 45 notes, then offers a 180-coin two-minute 6x dose.- Kept one fertilizer inventory and one pot action instead of adding three item stacks. Research upgrades future purchases and uses; direct QA checkpoints cover both new tiers. Pest resistance and mutation formulas remain separate future specializations.
0.10.0-beta.12raises the untouched music default from 36% to 55%, attempts autoplay, and keeps retrying after ordinary player gestures when browser policy blocks load-time audio. A deliberate pause is remembered and never overridden.- Reduced competition around the idle entry instead of adding another notice.
安心挂机now appears immediately below the greenhouse heading and before mobile seed/shop tools, occupies the primary width, and explicitly says it enters the viewing mode. The commercial master is a smaller secondary command. 0.10.0-beta.13starts an icon-first cleanup. The four persistent resources now show a temporary visual symbol and value while retaining full hover and screen-reader names. Installed drippers show a water-drop icon plus remaining uses, with a short drop animation when they refill a pot.- Removed whole-card hover and selected-state translation, which combined with periodic rendering and plant motion to feel like pot jitter. Hover now changes only border and shadow; plant sway remains at less than half its prior angle.
0.10.0-beta.14replaces the low-level in-game MP3 with a 12dB louder mastered copy. It retains about 7dB peak headroom, resets untouched volume preferences to 40%, and keeps manually chosen levels unchanged.- Replaced both sticky desktop and fixed mobile pot controls with one pot-local action dock. The selected pot spans the grid, contains its own complete actions, and returns to normal layout when dismissed or replaced. Phone actions may scroll horizontally inside the card but no longer cover the viewport.
- Reduced persistent care and fertilizer banners to compact status pills with close buttons. Dismissal lasts for the current effect; a later, newly triggered effect may appear again.
0.10.0-beta.15turns the persistent resource cards into a compact resource shelf. It starts collapsed, expands on demand, remembers the player's choice, and never derives that choice from periodic game rendering. This specifically guards against the earlier pattern where an opened panel closed itself on the next update.0.10.0-beta.16makes the pot action dock easier to dismiss. Its close control is a conventional, larger top-right target; clicking outside the selected pot or pressing Escape also closes it, while clicking another pot switches selection directly.0.10.0-beta.17centers a pot in the viewport after the player deliberately opens it. The focus happens only on selection; controls inside the enlarged card no longer retrigger selection or pull the page while watering, feeding, or harvesting.0.10.0-beta.18gives action feedback a readable causal rhythm: a short entrance, roughly 1.7 seconds of stable confirmation, and a soft exit. Up to four rapid messages now queue instead of overwriting one another; major route rewards receive the same slower entrance-hold-exit structure.0.10.0-beta.19removes repeated pot information identified in playtesting: placeholder initials, duplicate header water values, healthy-state care labels, and the passive stable-garden summary. The care summary now appears only for actionable conditions, while dense grid placement closes holes around a full-width selected pot without moving its controls outside the tile.
2026-08-17 - Phase 6 closeout and mixed ecology
- Confirmed and clarified the ordinary 4 -> 6 -> 8 pot expansion path; the catalog now shows whether another tier remains.
- Kept caretaker profitability as something learned after a shift instead of adding a precise pre-hire forecast.
- Added the first expanded-greenhouse companion condition: calendula and cornflower blooming together can attract a swallowtail, which may bring borage seed.
- The new visitor records automatically and adds no recurring care action.
2026-08-17 - Phase 6 first slice: Greenhouse Master
- Added a single paid commercial caretaker,
温室大师: 750 coins for a 20-minute, 3x-efficiency shift. The price was calibrated against deterministic scale tests so four pots lose 372, six pots gain 48, and eight pots gain 300. - Kept hiring next to
安心离开; the details appear only in a compact confirmation sheet, including a phone bottom-sheet layout. - The master harvests, sells, and replants mint and calendula. Rare plants, Spring Cup plants, and reserved seed heads are protected by default.
- Extended the existing return report with harvest count, sales, service fee, water cost, and net profit.
- Added
nurture-caretaker-returnfor immediate QA of a completed shift. - Fixed the small-screen water utility shortcut so it occupies a full row in the resource strip instead of overlapping the fixed workspace navigation.
- Made caretaker shifts operate in real time instead of only during reload-based offline settlement. An active master now waters, feeds, removes aphids, accelerates growth, harvests, and replants while the page remains open.
- Added a persistent
温室大师操作中banner and read-only pot context. Equipment upgrades, shopping, orders, research, and navigation remain usable during the shift. - Normalized the master's 3x rate against the player's visual speed control, preventing 4x display mode from multiplying commercial output to 12x.
- Added
nurture-caretaker-activeto verify immediate rescue of a dry, aphid-affected pot. - Replaced the master's naive direct-sale loop with a first profit planner. Mint and calendula harvests now enter inventory, complete
日常花束orders are delivered automatically, and subsequent planting follows the current ingredient shortage. - Empty ordinary pots can join the plan using owned basic seeds. Partial order materials remain with the player when the shift ends.
- The live banner names the active order shortage; the return report separates completed orders and order revenue.
- Added six- and eight-pot caretaker return checkpoints. Measured gross order income was 378, 798, and 1050 coins at four, six, and eight pots; the fee moved from 500 to 750 to create the intended loss / break-even / profit curve.
Short progress notes live here. Durable reasoning belongs in the linked design documents; final decisions also go into decision-log.md.
2026-08-17 - Retained plant pacing
- Slowed retained calendula regrowth from 78% to 35% after cutting, so keeping a plant saves the seedling phase without producing another bloom almost immediately.
- Added a distinct regrowth sequence:
修剪恢复->新枝生长->再次孕蕾->再次含苞. - Retained plants keep a mature silhouette during recovery instead of visually reverting to a seedling.
- Rebalanced the two quiet-growth starters after their growth times converged. Mint now starts from four flowers and an eight-coin baseline, making it the high-volume foundation crop; calendula retains lower volume, higher per-stem value, and repeat blooming.
- The daily bouquet now uses six mint and two calendula for 42 coins. Its reference material value is 20 coins and its visible order premium remains 22 coins. The night sachet also uses six mint so later rare flowers do not retire the starter crop.
- Extended quiet growth to moonflower in
0.10.0-beta.2. It uses a twelve-minute healthy curve, remains safe when unattended, and keeps care as optional acceleration rather than required maintenance. - Corrected offline bloom yield so mint, calendula, and moonflower retain their species-specific volume and cultivation bonuses after a return.
- Connected the showcase to offline growth in
0.10.0-beta.3:安心离开opens the clean garden scene, explains safe unattended slowdown once, keeps a compact always-visible status, and returns to management through an explicit command. The return notice now summarizes the whole garden rather than only the first changed pot. - In
0.10.0-beta.4, moved安心离开directly above the pots and made its subtitle reflect the current number of growing, blooming, and slowed plants. - Replaced the partial three-species allowlist with explicit safe-idle profiles for all ordinary greenhouse species. Slower wildberry and hydrangea preserve environmental weight; Spring Cup cultivation remains independent.
- Fixed ambiguous small-screen showcase overflow in
0.10.0-beta.5. Four slots now auto-fit in one viewport; six slots show roughly three at a time, expose the next slot, and explicitly say to swipe. Added a six-pot QA checkpoint. - Completed nurturing-idle Phase 5 in
0.10.0-beta.6. True offline progress now runs purchased central watering, dripper durability, automatic soil feeding, water-bill accumulation, and eligible automatic payment rather than silently bypassing automation. - Expanded the return summary with water refills, dripper uses, soil feeds, and paid water cost. Added a deterministic six-species twenty-minute return scenario and automated coverage for safe growth and operating expenses.
2026-07-20 — House Jam Started
- Established the private, local-only project boundary.
- Chose a static HTML/CSS/JavaScript prototype.
- Defined the seed-to-bloom core loop.
- See: Jam Charter, Core Loop
2026-07-29 — Ecology, Economy, and Soft Failure
- Added finite plant life, water ranges, soil nutrients, compost, visitors, rare carried seeds, and automatic visitor records.
- Replaced petals with coins and introduced limited-duration automatic watering.
- Added flower quantity, freshness, direct sale, persistent flower materials, and orders.
- External playtesting led to one-action watering, immediate aphid treatment, expansion, stronger feedback, and the first central automation tool.
- See: Core Loop, Progression Flows, Playtest 01
2026-07-31 — Soil Experiment and Cleanup
- Added hydrangea color variants and specialist soil.
- Playtesting found repeated pH controls visually and cognitively messy.
- Reframed soil as concrete acidic substrate or garden lime applied in a separate lab for three completed harvests.
- Connected freshness to both direct sale price and usable stocked material.
- See: Core Loop — Soil Depth, Decision Log
2026-08-05 — Vision and Event Direction
- Recorded the personal origin: approaching real plant knowledge through safe, satisfying care loops.
- Clarified that fast pleasure loops are primary; quiet plant research is a supporting long loop.
- Chose cultivation competitions as the next arc layer before adding more species.
- Accepted a dedicated event pavilion, persistent reminders, explicit stages, explainable judging, bounded gambling, and failure that returns knowledge or recovery value.
- Separated the future shop loop from the first event experiment. Full loans, rent, employees, branding, and bankruptcy remain research topics.
- Added a structured backlog, research board, and separate local Dev Garden dashboard.
- Added an offline document reader and first-class document library. Markdown remains the editable source, while generated local pages provide navigation, typography, tables, task lists, and readable loop diagrams.
- Implemented the first Spring Grower's Cup slice: persistent invitation, visible risk briefing, two event pots, four planting rounds, two random prompts, optional judge research, candidate score estimates, locked submission, automatic category reveal, medal rewards, participation recovery, and bloom-duration ribbons.
- See: Vision, Event System, System Backlog, Learning Board
2026-08-05 — Tiny Beta Preparation
- Prepared a no-player-login static beta while keeping saves local to each browser and device.
- Added feature-targeted feedback for the overall game, core loop, greenhouse, seeds, soil lab, orders, and Spring Grower's Cup. Reports include version, viewport, and a small progression summary, not email or full save data.
- Selected Netlify static hosting plus Netlify Forms for the first feedback collection pass; a free database and cross-device save remain deferred.
- Ran two read-only QA reviews covering mobile usability and event economy.
- Moved the greenhouse ahead of seeds on narrow screens, compacted the loop overview, enlarged touch controls, and made greenhouse and event actions into fixed mobile bottom docks.
- Made the mobile event pavilion a focused view so it no longer shares one long page with the normal greenhouse.
- Added a six-normal-harvest cooldown between rewarded Cup entries, isolated event visitor rewards from the main economy, gave event bee observation a seed-return benefit, and hardened malformed event-save migration.
- Both automated smoke-test suites pass. Screenshot-level local browser QA was blocked by
file://policy, so iPhone Safari and Android Chrome remain required beta checks. - See: Event System, Playtest 01
2026-08-05 — Pace Adjustment
- Playtest feedback still described the greenhouse as too frantic after the mobile-control pass.
- Slowed the shared simulation tick from one second to 1.35 seconds. Growth, water loss, nutrients, bloom freshness, visitor timing, and event cultivation now move together at 74% of the previous speed.
- Kept immediate button feedback and judging reveal timing unchanged so the interface still responds crisply.
2026-08-06 — First Shared Beta Live
- Pushed the project history to the private
rubbishbean/greenhouse-notesGitHub repository. - Published beta
0.5.1-beta.1athttps://greenhouse-notes-playtest.netlify.app/with production visibility set to public. Players do not need Netlify or GitHub accounts. - Enabled Netlify Forms and confirmed that
playtest-feedbackdetects all seven intended fields. - Submitted and read back one clearly labeled
[QA TEST]entry, proving that the in-game feedback path reaches the server-side inbox. - Confirmed anonymous HTTP access returns
200and the production page uses the expected security and no-cache headers. - Tested live responsive layout at 390×844, 768×1024, and desktop width. No horizontal overflow or out-of-bounds controls were found; the mobile greenhouse precedes the seed box and its contextual action dock remains fixed above the bottom safe area.
- Verified the mobile feedback sheet, five feedback categories, body scroll lock, console output, and public deployment. No browser console errors were observed.
2026-08-06 — Player Copy and Maintenance Pass
- Added a dedicated deployment and maintenance guide covering releases, Netlify linking, feedback retrieval, rollback, and browser-save compatibility.
- Added the guide to the Dev Garden document library and generated reading pages.
- Reframed the visible Core Loop as a player-facing garden schedule and removed prototype, loop, and phase language from ordinary greenhouse messages.
- Released the copy cleanup as
0.5.2-beta.1after smoke and responsive checks.
2026-08-06 — Save Reliability Queued
- Verified that the manual save button writes the current state to browser local storage and that most meaningful actions already save immediately.
- Recorded the remaining weakness: passive growth depends on page-close saving, which is not fully reliable when a mobile browser kills a background tab.
- Made save confidence the next maintenance slice: immediate visible confirmation, a quiet save about every 15 seconds, an additional background/page-hide save, and explicit handling when browser storage fails.
- Kept the scope local-only. This work will not imply cloud saves or cross-device synchronization.
2026-08-06 — First Online Feedback Imported
- Imported Netlify submissions 2 through 11 from two external playtesters; submission 1 remains labeled and excluded as the original QA test.
- Preserved player wording, target, category, version, viewport, and coarse progression context in First Online Feedback.
- Removed IP addresses, user-agent strings, referrers, and raw tester IDs before storing feedback in the private repository.
- Left every item in
Pending discussionstate so implementation does not begin before the creator and collaborator review the observations together.
2026-08-06 — First Feedback UX Pass
- Reviewed F01 through F11 with the creator. F03 remains open for clarification; the remaining navigation, prompting, soil-lab, competition, and mobile-density observations were accepted as changes or explicit experiments.
- Removed the player-facing garden schedule and added a compact current-order goal near the top of the game.
- Split the small-screen game into greenhouse, orders, codex, and competition workspaces with actionable badges.
- Added a compact current-seed control above the greenhouse, separate seed and equipment sheets, and a two-column mobile pot overview.
- Strengthened selected-pot feedback and kept its action dock above the mobile workspace navigation.
- Replaced the premature one-item codex tab with a static plant-codex heading until visitors exist.
- Added an explicit soil-lab blocked state when every bed is occupied, including a direct route back to the greenhouse.
- Made the competition a focused workspace with a persistent greenhouse status and return action.
- Added regression coverage for the codex state, order goal, compact pot summary, soil-lab block, and removal of development-facing loop copy.
- See: First Online Feedback, Decision Log, System Backlog
2026-08-06 — F03 Watering Pressure Clarified
- Follow-up identified repeated watering and progress-check scrolling as the source of the one-word
忙report. - Kept the active-care opening, but moved the first automation proof earlier: filling a third bed now grants and installs one trial dripper.
- Added direct water-condition and percentage badges to pot cards so players do not have to infer urgency from a colored meter.
- Replaced the easy-to-miss temporary message with a persistent automation milestone card. Existing saves that already received the trial dripper but never saw this card will see it once after updating.
- Clarified that the trial dripper is installed automatically and belongs to its flower bed across harvests. Both planted and empty beds now show a persistent installed-device badge; the notice no longer mistakes a dripper on an empty bed for inventory.
- Versioned the corrected milestone notice so players who dismissed the earlier ambiguous copy see the fixed explanation once without resetting their save.
- Added an explicit selected-bed status for installed automation: it names the water threshold, remaining triggers, and whether automatic watering just occurred. Automatic triggers now briefly highlight the bed.
- The corrected notice migration also replaces one missing or already-expired trial dripper for affected saves, ensuring the explanation always points to a device the player can verify.
- Added the first intentionally absurd care alert: entering severe drought triggers a single low-budget disaster shake and
特级干渴stamp, then settles into a stable warning. Manual recovery briefly answers with抢救成功; no alert flashes continuously.
2026-08-06 — Plant Health and Rival Event Brainstorm
- Recorded plant diseases, targeted crop protection, fertilizer preparation, and enhanced seed traits as linked research directions rather than immediate maintenance meters.
- Separated visible virtual rivals from pest sabotage. The first paper test compares two candidates without attacks; sabotage remains a later event-only experiment with telegraphing, symmetric rules, counters, and full protection for the home greenhouse and unique seeds.
- Added research tasks for documenting one real plant symptom, checking authoritative diagnosis sources, studying Plant Tycoon, and testing disease and sabotage loops on paper.
- Kept the partner's spotted potato leaves as an observation prompt, not a diagnosis or implemented disease name.
2026-08-06 — Beta 0.6.0 Feedback UX Release
- Released
0.6.0-beta.7from commit139258cto the existing account-free Netlify playtest site. - The release includes small-screen workspaces, two-column mobile beds, compact seed and equipment sheets, active-order guidance, stronger selected-bed actions, corrected codex and soil-lab states, focused competition navigation, early trial automation, visible dripper operation, and the one-shot severe-drought visual joke.
- Both smoke suites passed before deployment. The production URL returned
200with revalidation and security headers, and its JavaScript reported the expected app version. - Live responsive checks passed at 390×844 and 1280×800 with no horizontal overflow. Mobile displayed two 170-pixel bed columns, the fixed workspace navigation, and a hidden garden log; desktop retained the three-column greenhouse and visible log.
- Netlify production deploy:
6a74d62757de4c141964d3d5. - The new two-column mobile greenhouse addresses the tester's recommendation to keep at least two pot cards visible per row.
- Retest target: four occupied beds during the first ten minutes, before expansion or the permanent central tank.
2026-08-06 — Seed Lineage and Complexity Direction
- Accepted a late-game raising loop in which successful parent plants can found named seed lineages with competition merit and inherited trait potential.
- Kept species mastery, pedigree recognition, and genetics as separate progress tracks so losses can teach, wins can confer status, and breeding can preserve meaningful tradeoffs.
- Added seed-bank protection, varied competition briefs, and bounded traits as safeguards against a single infinitely superior seed line.
- Elevated progressive disclosure into a product rule: each new system waits until the previous one has a demonstrated automation or batch exit and a compact management summary.
- Added research tasks for a three-generation paper lineage, incompatible judging briefs, lineage vocabulary, and a complete automation-exit audit.
- See: Vision, Progression Flows, System Backlog, Learning Board
2026-08-06 — Phase A Save and Four-Bed Stability
- Replaced simulation-tick storage writes with a 15-second passive autosave while preserving immediate saves for meaningful actions.
- Added background, page-hide, and close save requests plus truthful success and storage-failure handling.
- Replaced the ambiguous single-character save control with a larger status control that always says progress is local to this device.
- Added a compact care summary above the greenhouse so four occupied beds can be scanned for harvest, water, aphids, nutrients, and decline without opening each card.
- Added save-timing, manual confirmation, storage-denial, empty-garden summary, and stable four-bed summary regression coverage.
- Both smoke suites passed. Browser QA passed at 390×844 and 1280×800 with no horizontal overflow; the mobile greenhouse retained two 170-pixel bed columns, a 44-pixel save control, and the fixed selected-bed action dock.
- Versioned the local candidate as
0.6.1-beta.1. It is ready for creator review and four-bed player retesting before the limited-market slice begins.
2026-08-06 — Actionable Reminders and Player Pace
- Made the greenhouse care summary an explicit direct-action reminder. It prioritizes aphids, water problems, decline, harvest, and low nutrients, then selects and scrolls to the relevant bed.
- Made the active-order reminder visibly actionable with
查看缺口or前往交付; its existing order-workspace navigation is now communicated rather than hidden. - Added saved
静养 0.1×,常速 1×, and飞速 4×segmented controls. Changing speed reschedules the simulation without changing immediate interface or judging feedback. - Kept speed honest by scaling growth and its costs together instead of multiplying rewards alone. The existing pause button remains independent.
- Added migration fallback for invalid saved speeds, timer-rescheduling coverage, direct-reminder priority coverage, and order-link state coverage.
- Both smoke suites passed. Browser QA passed at 390×844 and 1280×800 without horizontal overflow; mobile speed targets are 44 pixels high and the desktop control uses a 50-pixel band.
- Versioned the local candidate as
0.6.2-beta.1. Future art can use the observational mode for longer growth and bloom animation without delaying fast-play users.
2026-08-06 — Beta 0.6.2 Pace and Reminder Release
- Pushed commit
cd315cdand released0.6.2-beta.1to the existing account-free playtest URL. - Confirmed production returned
200, served the expected app version, retained the feedback form, and passed the existing security and revalidation header checks. - Live 390×844 browser checks found no horizontal overflow; speed controls retained 44-pixel targets and produced no console errors.
- Netlify production deploy:
6a74dc609406906c5f69c631.
2026-08-06 — Phase B Three-Wave Flower Market
- Added a dedicated market stage between judging and final settlement in local candidate
0.7.0-beta.1. - Converted the submitted flower quantity into market stock and the competition score into a visible popularity band.
- Added opening, award-rush, and closing buyer waves. Each wave offers friendly, market, and premium prices with visible sales forecasts.
- Locked each wave's small demand variation when judging ends and persisted it in the save, preventing refresh rerolls.
- Added bounded leftovers: unsold event stock stays outside normal inventory and becomes a small compost recovery at closing.
- Extended event migration and lifecycle regression coverage through market settlement, reward claiming, malformed saves, and no-submission participation.
- Both smoke suites pass. Visual QA passed at 390×844 and 1280×900 with no horizontal overflow; the three mobile price targets are approximately 105×148 pixels and the desktop market fits in one viewport.
- Kept this phase local for creator review. The live playtest remains on stable
0.6.2-beta.1until the market is accepted for deployment.
2026-08-06 — Phase C1 Event Reinvestment
- Identified the next economy break: once finite tools and expansions are purchased, coin output no longer feeds another meaningful decision.
- Kept Phase B in local playtesting and opened Phase C as a separate reinvestment track rather than extending the market into a full flower shop.
- Added a compact event preparation counter with three once-per-Cup purchases: 64-coin automatic event care, a 42-coin two-dose flower-count kit, and 48-coin market publicity.
- Made all effects visible in cultivation or market UI, saved their state across refreshes, and reset them cleanly when the event closes.
- Prevented nutrition purchases after no eligible or future candidate remains. Unaffordable items state the exact coin shortfall instead of failing silently.
- Added a closing cash statement covering entry fee, preparation spend, payout, and net result.
- Extended lifecycle tests through purchases, duplicate-purchase protection, targeted nutrition, automatic event watering, publicity demand, migration, and no-candidate safeguards.
- Both smoke suites pass. At 390×844, three preparation choices remain visible side by side at roughly 97×132 pixels with no horizontal overflow; at 1280×900 they render as three 366×116 pixel choices.
- Versioned the local candidate as
0.7.1-beta.1. The live playtest remains on0.6.2-beta.1pending creator review of Phases B and C1 together.
2026-08-06 — Phase C2 Flower Sorting Bench
- Added a 420-coin permanent flower sorting bench as the first capital project after the central tank.
- Kept the project progressively disclosed: its equipment card appears only after permanent watering automation is installed, and its harvest bar appears only when at least two pots bloom together.
- Added confirmed
全部寄售and全部入库commands with exact totals. Batch resolution reuses per-pot sale, freshness, material, seed, note, compost, soil-cycle, and Cup-cooldown rules. - Kept visitor waiting and sell-versus-stock as player decisions. The bench reduces repeated confirmation but does not harvest automatically or apply a hidden policy.
- Insufficient funds now display the exact remaining amount on the equipment card and produce direct feedback when pressed.
- Added old-save migration coverage, unlock and shortfall checks, purchase persistence, batch-equivalence tests, and visibility rules.
- Both smoke suites pass. Visual QA at 390×844 found no horizontal overflow; the batch actions are 158×48 pixels. At 1280×900, the batch bar is 73 pixels high with 128×44 pixel actions.
- Versioned the local candidate as
0.7.2-beta.1. The live playtest remains on stable0.6.2-beta.1until the combined B/C candidate is accepted.
2026-08-06 — Phase C2 Revision: Cycling Soil Feeder
- Creator playtesting found the sorting bench weak and awkward: four-to-eight-bed batch harvest saved too little work, forced a rigid all-sell/all-stock choice, and did not change the production loop.
- Removed the sorting-bench equipment and batch-harvest bar from the playable interface while retaining the experiment above as history.
- Replaced the same 420-coin capital slot with a cycling soil feeder unlocked after the central tank.
- The feeder watches actively growing beds. Below 35% nutrients it automatically spends one stored compost and restores 42 points; it never buys inputs or runs without compost.
- Added visible monitoring, waiting, and just-fed states to the equipment card, selected-bed context, mobile summary, and bed status chips.
- Migrated saves that purchased the sorting bench into ownership of the soil feeder so local playtest progress is not lost.
- Replaced batch-harvest tests with purchase, threshold, resource-consumption, visual-state, and legacy-migration coverage.
- Responsive QA passed at 390×844 and 1280×900 with no horizontal overflow. The mobile equipment card is 338×130 pixels with a 314×42 status control; the desktop card is 216×130 with a 192×42 status control.
- Versioned the revised local candidate as
0.7.3-beta.1. The live playtest remains on stable0.6.2-beta.1.
2026-08-06 — Staff Boundary and Candidate Consolidation
- Recorded a clear future division of labor: machines execute fixed physical thresholds, staff route conditional workflows across systems, and the player owns rare items, exceptions, and high-risk commitments.
- Scoped the first hire as one general greenhouse assistant with four readable policies: harvest priority, minimum stock, protected items, and cash reserve.
- Kept staff implementation behind mature order, selling, reservation, and payroll systems so it cannot duplicate existing water and soil machines or silently play the game for the player.
- Added paper research tasks for one-worker predictability and an automation responsibility audit.
- Moved the active implementation track into combined Phase B/C candidate consolidation. The next evidence needed is creator and small-beta playtesting of the event market, event reinvestment, and cycling soil feeder together.
- Updated the Dev Garden overview, roadmap, research board, timeline, and deployment gate to the actual
0.7.3-beta.1state. Responsive checks pass at 390×844 and 1280×900 without horizontal overflow. - Creator completed the combined candidate playthrough. The market, reinvestment choices, and soil feeder were coherent and produced no clear negative UX; their effect felt modest rather than transformative. Approved
0.7.3-beta.1for small-beta release while keeping economy values provisional.
2026-08-06 — Beta 0.7.3 Market and Soil-Feeder Release
- Pushed commit
1156b15and released0.7.3-beta.1to the existing account-free Netlify playtest site. - The release combines the Spring Cup's three-wave flower market, event-only reinvestment choices, net-cash result, and the 420-coin cycling soil feeder.
- Both smoke suites and the whitespace check passed before release. The generated Dev Garden pages were rebuilt and validated.
- Live mobile QA at 390×844 confirmed no horizontal overflow, a working first planting action, the expected app version, and the
playtest-feedbackform metadata. The page loaded without a player account and produced no console warnings or errors during the initial live check. - Pre-release responsive QA also passed at 1280×900. The in-app browser remained phone-sized during the final production pass, so desktop production inherits the same tested static files rather than a separate online-only layout check.
- Netlify production deploy:
6a74f10c1ef613c434bbc86f. - Small-beta question: do unprompted players notice these systems and change their decisions, or do they also experience them as coherent but modest additions?
2026-08-06 — Visible Automation Catalog
- Two additional testers independently asked for more automatic watering, while one settled on mint as the most comfortable low-attention crop.
- Preserved mint's legitimate “reliable and easy” role and kept all irrigation prices, durability, grants, and unlock timing unchanged for this test.
- Once the tool shelf opens, it now previews the complete current equipment path instead of hiding the central tank and soil feeder until their prerequisites are complete.
- Locked equipment names its price and prerequisite. Affordable items show their price, unaffordable items show the exact coin shortfall, and owned equipment retains a distinct completed state.
- Versioned the local candidate as
0.7.4-beta.1. The next retest separates discoverability from balance: if players can see the permanent tank and still tire before reaching it, the missing piece is a genuine mid-tier relief reward rather than another hint.
2026-08-06 — Flower-Market Lucky Wheel
- Added an eighth Spring Cup stage between flower-market closing and final settlement.
- Each Cup grants one free draw. After taking it, the player may buy at most two more with 30 coins, 6 mint materials, or 6 calendula materials.
- Published exact odds in the event UI: 86% common resources, 8% dripper, 3.5% next-order double voucher, 2.3% 90-coin jackpot, and 0.2% borage seed.
- Added a global 80-draw borage guarantee that persists across Cups and resets when the seed appears.
- Applied and saved every result before the wheel animation. Refresh cannot reroll the reward; history records both payment and result.
- Added borage as a normal growable, self-renewing plant after discovery. Its blue blooms attract bees more readily, while its flower material remains available for future content.
- Added a visible one-use order voucher. It doubles one fixed order's coin reward and is consumed on delivery rather than multiplying the player's bank.
- Included wheel coin spending and coin prizes in the Cup cash statement. Runs without a valid submission skip the market but still receive the free draw before participation recovery.
- Extended lifecycle tests through free and paid draws, payment consumption, the three-draw cap, immediate rewards, order vouchers, borage pity, malformed saves, and no-submission recovery.
- Versioned the revised local candidate as
0.8.0-beta.2; odds and costs remain provisional pending one complete creator playthrough. Added the user-supplied slogan “中奖概率倍儿高,奖品也嘛倍儿好” as intentionally dubious flower-market advertising rather than a system claim.
2026-08-06 — Spring Cup Outcome Presentation
- Creator playtesting found that market state changes were correct but dramatically unreadable: stock vanished instantly, waiting did nothing, and the next wave could replace the screen before the sale registered.
- Added a saved
awaitingNextmarket state. Each price choice now produces a held result scene with flowers leaving the rack, a customer response, wave revenue, before-and-after stock, and a deliberate next-wave or close-stall action. - Rebuilt the wheel as a labeled eight-position display and corrected the final pointer rotation to the chosen result. Exact probability labels remain visible even though the digital draw is weighted independently from equal display positions.
- Added a near-full-screen two-second wheel close-up and a separate saved prize reveal. Further draws and final settlement remain blocked only until the player acknowledges the result.
- Kept reward application before animation, so interruption or refresh cannot duplicate, discard, or reroll a prize. Added migration coverage for an interrupted market report and an unacknowledged wheel reward.
- Versioned the local candidate as
0.8.0-beta.3; balance is unchanged from beta.2.
2026-08-06 — 0.8.0 Small-Beta Release
- Creator approved the revised market and wheel presentation after a local playthrough.
- Pushed commits through
1a4b88ato the private GitHubmainbranch and released0.8.0-beta.3to the existing account-free Netlify playtest site. - Netlify production deploy:
6a750a9bc6f6a048af8b9635. - Production served the expected app version without login. Desktop
1280×720and mobile390×844had no horizontal overflow; mobile workspace navigation and the feedback entry remained visible. - No browser console warnings or errors appeared during the production check. Both smoke suites, JavaScript syntax, generated documentation, and whitespace validation passed before deployment.
2026-08-06 — Hydrangea Routes and Obsolete-Prize Protection
- Creator identified that a wheel dripper becomes a false prize after the permanent central tank and that only blue hydrangea had meaningful demand. Competition hydrangeas also had no way to use their defining soil mechanic.
- Kept the wheel table at 100% and the equipment slot at 8%. Before the tank it still awards one dripper; after the tank it visibly changes to a maintenance box worth 30 coins and 2 compost.
- Added repeatable purple and pink hydrangea orders alongside the existing blue order. Each route still consumes common flowers as a base so color demand supports rather than replaces early crops.
- Added per-pot event soil profiles with old-save defaults. Controls appear only for empty pots while hydrangea is selected; specialist products come from normal inventory, switching away refunds a reservation, and unused prepared pots return their product at closing.
- Event hydrangeas now bloom into the selected color, record the discovery, show that color through judging and the flower market, and receive a small specialist-soil difficulty credit for blue or pink.
- Versioned the unreleased local candidate as
0.8.1-beta.1. Both smoke suites cover the new reward conversion, color orders, event soil selection, refund behavior, bloom color, and scoring.
2026-08-06 — 0.8.1 Small-Beta Release
- Creator approved direct release of the hydrangea-route and obsolete-prize candidate.
- Pushed commit
1421668to the private GitHubmainbranch and released0.8.1-beta.1to the existing account-free Netlify playtest site. - Netlify production deploy:
6a750e8f0e8c8e3ce6de935e. - Both smoke suites, JavaScript syntax, and whitespace validation passed before deployment.
- Direct production-file checks confirmed the expected app version, maintenance-box conversion, purple and pink orders, and the
playtest-feedbackform. The in-app browser QA session could not retain its test tab, so this release record does not claim a fresh responsive visual pass.
2026-08-06 — Mobile Discovery and Pot-First Planting Candidate
- Sanitized and recorded the second direct-message feedback round as F12 through F18. Three themes repeated across players: first-session play feels hurried, phone users miss non-mint seeds, and irrigation, soil, orders, and tools do not remain mentally locatable.
- Versioned the local candidate as
0.8.2-beta.1without changing simulation timing. - Changed the mobile greenhouse seed control to state the number of currently plantable species and show an explicit
更换affordance. - Added a hybrid planting route: an empty bed can open a targeted seed picker, and choosing a seed plants it directly into that bed. Global selection remains available for repeated planting.
- Added direct selected-bed routing to irrigation equipment when no dripper is owned. The equipment control now names automatic watering and summarizes owned or permanent automation state.
- Added persistent soil-profile accents and text chips to empty and occupied beds.
- Both smoke suites cover seed-count copy, targeted pot planting, soil labels, and the irrigation route. A fresh browser origin successfully planted calendula through
空花盆 → 换一种; desktop inspection found no console warnings or errors. A new phone-width visual pass remains required before release.
2026-08-06 — 0.8.2 Mobile UX Experiment Release
- Creator approved publishing the focused mobile discovery candidate before any timing changes.
- Pushed commit
8b5ab1dto the private GitHubmainbranch and released0.8.2-beta.1to the existing account-free Netlify playtest site. - Netlify production deploy:
6a75787f5eabccf0f432b39d. - Both smoke suites, JavaScript syntax, generated documentation, and whitespace validation passed before deployment.
- Direct production-file checks confirmed the expected app version, pot-first selection route, irrigation route, explicit mobile controls, and feedback form.
- Experiment question: after removing seed and equipment search costs, does the first ten minutes still feel like hurried work? Growth, water, freshness, and event timing remain unchanged for this comparison.
2026-08-06 — Mobile Hierarchy and Event Attention Candidate
- Versioned the local candidate as
0.8.3-beta.1and recorded F19 through F22. - Removed the large soil surface from the mobile page flow. Empty beds now open a targeted buy-and-apply soil drawer; desktop retains the full comparison workbench.
- Renamed the two greenhouse quick destinations
种子库and温室商店and gave each a compact identifying mark. - Added exact per-material deficits to order cards and the top goal route.
- Added a Cup cultivation control that pauses only the main greenhouse while event candidates continue growing. Global pause behavior is unchanged.
- The prototype smoke suite covers old-save migration, independent event ticking, soil entry copy, and exact order deficits. A
390×844local preview showed no horizontal overflow. - Revised the candidate to
0.8.3-beta.2: removed the misleading permanent watering-shop action from pot controls. The top shop now quietly marks owned equipment awaiting installation or an affordable permanent upgrade.
2026-08-06 — 0.8.3 Mobile Hierarchy Release
- Creator approved the revised soil drawer, order deficits, event attention control, and shop entry for another small playtest round.
- Pushed gameplay commit
04f06abto the private GitHubmainbranch and released0.8.3-beta.2to the existing account-free Netlify site. - Netlify production deploy:
6a75807d4cd941fa0ce6ff9e. - Direct production checks confirmed the expected app version and feedback form. At
390×844, document width matched viewport width and the browser console had no warnings or errors.
2026-08-07 — Soil Entry Regression Fix
- Creator found that the pot-local soil action was absent on phones immediately after the
0.8.3-beta.2release. - Root cause: the action had been placed inside
.empty-soil-summary, which the compact mobile card intentionally hides. - Versioned the fix as
0.8.3-beta.3. Empty beds receive a dedicated compact soil button; occupied-bed soil labels open a read-only target with advance purchasing and explicit post-harvest application copy. - Pushed fix commit
4434881and released Netlify deploy6a758336b00facd27dd04730. Direct production checks found the expected version and both soil-entry render paths.
2026-08-07 — Compact Care and Persistent Pause Candidate
- Versioned the candidate as
0.8.4-beta.1after creator feedback that the fixed pot-detail surface obscured the lowest bed row and pause disappeared during scrolling. - Mobile selected-bed controls now default to a compact action dock with optional detail expansion. The desktop context surface is unchanged.
- Added pause and resume to the persistent mobile workspace navigation and removed the duplicate top pause button at phone width.
- At
390×844, the selected-bed dock measured 131 pixels high, ended above the navigation, and produced no horizontal overflow. Browser interaction confirmed the persistent control switches from pause to resume. - Pushed gameplay commit
81dbb90and released Netlify deploy6a7584c3706fad21d62fd4d6. Direct production-file checks confirmed0.8.4-beta.1, compact context behavior, and persistent pause assets.
2026-08-07 — Seed Fallback and Control-Clarity Fix
- Creator found an empty-bed dead end when the last selected species reached zero while another species remained available. The old
换一种route appeared only when at least two species were available. - Versioned the fix as
0.8.4-beta.2. A single fallback species is now directly plantable; multiple fallback species open selection; no inventory produces an explicit empty state. - Strengthened soil identity to a full profile-colored border and filled soil label. Visually separated persistent pause from workspace navigation with a tinted block and divider.
- Pushed gameplay commit
1b93644and released Netlify deploy6a7587919e5cef52f23bfd02. Production files confirmed0.8.4-beta.2and all three corrected render paths.
2026-08-09 — Bloom Warning, Feedback-Modal Overlap, and Selection-Clarity Fixes
- Session handed off from the original Codex session (out of budget) to Claude; same working tree, same private repo, no branch change.
- Sanitized and recorded the third feedback round as F30–F32: two new 小明 reports (
温室与花盆操作, category 想法 and 故障) plus a directly observed 丹丹 session. See notes/playtest-feedback-03.md. - Root cause for "flower wilts with zero warning" (小明, 丹丹, corroborates F12/小南):
getStage()silently swapped a text label to花期将尽at 70% of bloom age with no visual signal, and the top care summary never distinguished it from generic "可收获". AddedisBloomEndingSoon(), a pulsing amber card border + filled stage badge, a dedicated花期将尽 Ncount in the care summary, and a new priority tier ingetNextGardenActionIndexso the reminder routes to it before it's too late. - Root cause for 小明's bug report ("反馈弹窗被花盆面板遮住,竖屏发不出去"):
.feedback-modalwasz-index: 30, below the mobile pot-detail dock (35/60) and the bottom workspace nav (40). Raised the feedback modal toz-index: 200, above every in-game overlay including the wheel-prize reveal. - Root cause for 小明's second bug ("点击空白处无法取消花盆选择"):
#contextBarhad no close control and no outside-click handler. Added an explicit×close button on the context bar heading, a click-on-blank-grid-area handler, and Escape-to-deselect. - Strengthened the dry-water signal per 小明's "红色不够明显": introduced a more saturated
--warning-red, gave both the mild-dry and severe-dry pot-card states a full colored border instead of a thin left edge, filled the water-state chip solid instead of a faint tint, and extendeddryAlertTicksfrom 1 to 3 so the crisis shudder/stamp-slam entrance replays across ~4 seconds instead of one blink. - Reworded the severe-dry crisis-stamp copy from "生命体征:有点装死" (confusing per 小明) to "严重缺水,需要立刻浇水".
- Separately, user testing on desktop found that clicking
换一种/选择种子produced no visible change:openMobilePanelonly updated text inside the always-present sidebar.seed-panel, with no scroll or highlight on wide viewports (unlike the equivalent soil-lab button, which already branched onmatchMedia). Fixed by adding the same desktop branch: scroll.seed-panelinto view and play a one-shot amber highlight pulse. - Deliberately left
bloomDurationnumbers untouched this round per the F12 principle — ship the warning system first, then decide whether pacing still needs a numeric change once it can be evaluated in isolation. See decision-log.md. - Creator separately flagged the lucky-wheel prize reveal as visually broken: "闪动页面很奇怪,不连贯,一段一段地闪... 像是反复提醒得到了同一个奖品". Root cause:
renderEvent()'spresentationAlreadyMountedguard only protected the spin phase (checked forwheel-spin-overlaywhilewheelAnimating); once the spin finished and the prize card (wheel-prize-overlay) was showing, nothing stopped the background game-tick interval from callingrender()→renderEvent()→renderLuckyWheel()every tick, which does a fullinnerHTMLreplace of the event content and therefore recreates the confetti burst and reveal card from scratch each time — restarting their entrance animations every ~1.35s (or every ~340ms at 4×) for as long as the player left the reveal on screen. Extended the guard to also hold whilerevealPendingis true, confirmed via a standalone Node harness that countedinnerHTMLwrites: 3 extra unnecessary rewrites on the old code across 3 idle ticks, 0 on the fixed code, and acknowledging the reward still triggers exactly one more write to clear it. - Versioned the candidate as
0.8.5-beta.1. Both smoke suites,node -c, andgit diff --checkpassed; rebuilt Dev Garden docs withnode dev/build-docs.cjs. - Creator approved pushing and deploying this batch. Pushed gameplay commit
a09e0cbto the private GitHubmainbranch and released Netlify deploy6a792604939f5bf289781fb9(vianetlify-cliunder Node 22, since the shell's default Node 16 is too old for the current CLI). Production checks on the live URL confirmed0.8.5-beta.1, no console errors, and no horizontal overflow at390×844.
2026-08-09 — F18 Alert Parity and F12 Structured Pacing Retest
Creator asked whether F12 and F18 could be advanced without waiting on the next human playtest round.
F18 (pot alerts may still be too quiet) — code audit, not simulation. Read every "abnormal state" render path and found two real asymmetries rather than confirming the round was already fixed:
- Severe overwatering (
water > 94) had no equivalent to the severe-drycrisis-stamptreatment, despite carrying the same stress penalty as severe dry. AddedisSeverelyWet, a.plot-card.severe-wettreatment (blue-tinted inset shadow so it reads as "too much" rather than reusing the dry crisis's exact look), a matching crisis stamp ("严重积水,需要立刻松土排水"), and extended the alert-tick trigger to fire when water crosses above 94% too, not only below 8%. - Aphid infestation rendered in the same neutral blue
.visitor-chipstyling as a friendly bee or ladybug visit — no color or copy distinguished a pest from an ordinary visitor. Added a.visitor-chip.pesttreatment (warning-red border/background) for aphid specifically, changed its sub-copy from "自动记录中" to "需要处理", and added a.plot-card.has-aphidborder treatment so pest presence is visible on the card itself, not only inside the chip.
F12 (first ten minutes feel like hurried work) — quantitative simulation, not just re-reading the same open question. Wrote a Node harness (vm-loads prototype/game.js exactly like tests/smoke-test.cjs) that runs a simulated "reactive player": every N simulated seconds it performs a full care pass (water, treat aphids, harvest, replant, return declined plots) using the same functions the UI calls, then lets tickGarden() run freely between check-ins. This operationalizes the exact criteria the 2026-08-07 decision entry named: required actions per minute, and unattended tolerance.
Results against the pre-change build, 15 simulated minutes, fresh save, 4 starter plots:
| Check-in interval | Actions/min | Plants lost to timeout |
|---|---|---|
| 15–60s | 7–9 | 0 |
| 90s | 5.7 | 8 |
| 120s | 5.3 | 14 |
| 180s | 2.9 | 20 |
A player checking in every 90–180 seconds — squarely inside what 丹丹 and 小南 described — reliably lost plants, split between 花期自然结束 (bloom outlasted by absence) and 长期缺水 (thirst-stress decline during growth, a mechanic independent of bloom length entirely). This confirms F12 was not solved by the F30 warning system alone: a warning only helps if the player is present to see it.
Two targeted, narrowly-scoped changes, chosen to fix exactly this failure mode without touching growth rate, water-drain rate, or economy pacing:
- Multiplied every plant's
bloomDurationby 1.8× (mint 42→76 ticks / 57s→103s; wildberry 62→112 ticks / 84s→151s; others scaled the same way), preserving relative ordering between plants. - Halved the severe dry/wet stress-accumulation rate (
stressDelta2.8→1.4 dry, 2.6→1.3 wet), so a plant left completely unwatered survives roughly twice as long before stress-decline, without changing how fast water itself drains or how much growth slows while dry.
Re-running the same simulation against the patched build:
| Check-in interval | Plants lost to timeout (before → after) |
|---|---|
| 90s | 8 → 0 |
| 120s | 14 → 3 (now only 花期自然结束, and now pre-warned by the amber bloom-ending indicator) |
| 180s | 20 → 20 (unchanged — a 3-minute absence is still expected to cost something) |
Explicitly not touched: the 7–9 actions/minute workload at short check-in intervals. That number barely moved, because it comes from tap-count per visible issue, not from timing — fixing it would mean changing when automation unlocks or reducing how many pots need independent attention, which is a bigger architectural call than this pass's scope. Recorded as the next open item rather than silently expanded into.
Versioned as 0.8.6-beta.1. Both smoke suites and node -c pass; the pacing simulation itself lives at the session's scratchpad path, not in the repo, since it is a one-off analysis tool rather than a maintained test.
Creator reviewed the before/after simulation numbers and approved pushing and deploying. Pushed commit f2230f0 to the private GitHub main branch and released Netlify deploy 6a793037ffc8a61270c5b966. Production checks confirmed 0.8.6-beta.1 live with the patched bloomDuration values (mint 76) and no console errors.
2026-08-09 — Roadside Stand, Checkpoint 1: Vendor Trigger and Invitation
Creator approved building design/roadside-stand.md split-and-conquer, one checkpoint at a time, starting with the vendor invitation alone before the actual selling loop.
- Added
state.stall(unlocked,invitationPending,invitationSeenCount,declinedCount) todefaultState, with a merge-based migration innormalizeStateso existing saves without the field default cleanly. claimSpringCupReward()now checks the finalized score againstSTALL.invitationScore(90); if met and the stall isn't already unlocked or mid-invitation, it setsinvitationPending.- While
invitationPendingis true,scheduleGameTimer's interval callback skipstickGarden()/render()entirely — a stronger, independent pause from the ordinarystate.pausedflag, matching the creator's "全局进度暂停" requirement. - Added a new modal (
#stallInvitationModal,.stall-invitation-*CSS, z-index 150 — above every game overlay but below the feedback modal's 200, so QA feedback stays reachable even during this popup) with vendor dialogue that references the actual score and medal name, and two explicit actions: accept (state.stall.unlocked = true) or decline (clearsinvitationPendingonly, leaving the door open for a future qualifying score to re-invite, per the design doc's "never a disappearing popup" requirement). - Covered with new assertions in
prototype/smoke-test.cjs: sub-threshold score does not invite; qualifying score does and renders the modal with the score in its copy; decline clears pending without unlocking and a later qualifying score re-invites; accept unlocks and hides the modal; a legacy save missingstallentirely migrates to safe defaults. - Verification note: local file:// preview intermittently threw a
BLOOM_ENDING_THRESHOLDTDZ error that looked alarming, but it turned out to be a stale, accumulated console-log entry the browser tool carries acrossnavigate()calls within one tab, not a live bug — confirmed by wrapping the real page's initialrender()call in a temporarytry/catch(no throw) and by reproducing zero errors in a brand-new tab. Switched to servingprototype/over a localhttp.serverfor the rest of verification, which does not exhibit the file:// tool's snapshot/staleness quirks noted earlier this session. - Versioned
0.8.6-beta.2. Both smoke suites andnode -cpass. Not yet pushed — this is checkpoint 1 of a larger feature and is being shown to the creator before continuing to checkpoint 2 (stock allocation, timed cycle, settlement tab).
2026-08-09 — Roadside Stand, Checkpoint 2: Stock Allocation, Timed Cycle, Settlement
Creator confirmed checkpoint 1 looked and worked as expected, then asked to continue straight to the functional loop.
- Added
state.stall.cycle(startedAt,durationMs,allocation,result),completedCycles, andtotalRevenue; the existing checkpoint-1 shallow-merge migration (stall: { ...base.stall, ...loadedState.stall }) already covers these new fields for old saves with no extra work needed. - New
花摊workspace tab (#stallWorkspaceButton/#stallPanel), wired intoselectMobileWorkspace,renderMobileWorkspace, the mobiledata-mobile-workspaceCSS routing (added alongsideorders/codex/eventin every existing hide/show group rather than inventing a parallel system), andbody.event-activepanel-hiding so it doesn't clash with an open Cup pavilion. getMaterialUnitPrice(materialId)reusesMath.max(2, Math.round(plant.harvest.coins / plant.baseFlowers))— the exact formulacreateEventMarketalready uses forunitBase— so stall pricing doesn't invent a second pricing system; hydrangea color variants price off the basehydrangeaplant.getStallAllocatable()lists only materials currently in stock (matches the project's established "only real, current actions" pattern from the empty context-bar copy). A module-levelstallAllocationDraftobject holds the in-progress +/- stepper selection; it's UI-only and never persisted, reset on a successfulstartStallCycle.startStallCycle(allocation)clamps each requested amount to owned inventory, silently drops zero/invalid entries, deducts stock immediately, and rolls the entire outcome once viarollStallSale(allocation, randomFn = Math.random)at cycle start — stored incycle.resultright away. This is deliberately save-stable and re-roll-proof by construction (nothing is computed at reveal time), matching the design doc's explicit requirement to reuse the Cup market's "roll once, store it" pattern.randomFnis injectable so tests can force deterministic outcomes without mocking globalMath.randomfor the roll logic itself (though thestartStallCycleintegration test still does mockMath.randomdirectly, sincestartStallCycledoesn't expose its own randomFn parameter — sufficient for v1).- The cycle is timed with real wall-clock
Date.now(), not game ticks, matching the design doc's explicit reasoning: no FOMO risk attaches since nothing is lost by checking in late, only delayed, so it keeps progressing while the player is away or even paused. isStallCycleReady()gates both the settlement UI and a!badge on the workspace tab (same visual language aseventWorkspaceBadge).settleStallCycle()is a no-op before the timer elapses, pays outresult.revenueand returns unsold stems toflowerMaterialsonce ready, and clearscycleso a new allocation can start.- Verified the complete loop end-to-end via real button clicks in a browser (not just direct function calls): allocate mint+calendula with the stepper buttons, start, confirm inventory deduction and the in-progress countdown copy, fast-forward
cycle.startedAtinto the past, confirm the!badge and per-item sold/unsold breakdown, click settle, confirm coins/inventory/completedCyclesall update correctly and the panel returns to the allocation view. No console errors. Checked both mobile (390-ish) and desktop (1400) widths. - Fixed a stub-compatibility bug caught by the test suite before it ever reached a browser: used
element.querySelector(...)in two spots, which theprototype/smoke-test.cjsDOM stub doesn't implement (onlyquerySelectorAll); switched both to thequerySelectorAll(...).forEach(...)pattern already used everywhere else in the file. - Added smoke coverage for: unit pricing (including hydrangea variants pricing off the base plant), allocatable-material filtering, rejecting empty/invalid allocations, deterministic roll behavior via
rollStallSale's injectablerandomFn, inventory deduction on cycle start, the ready-check gate refusing early settlement, payout plus unsold-stem return on settlement, and legacy-save migration for the new fields. - Versioned
0.8.7-beta.1. Both smoke suites andnode -cpass. Not yet pushed — checkpoint 2 completes the usable v1 loop and is being shown to the creator before deciding next steps (push/deploy now, or continue toward the deferred items: weighted sell-through, stall upgrades, decorations, staff).
2026-08-09 — Vendor Invitation Breathing Room, and a Real Render/Tick Coupling Bug
Creator flagged that the vendor invitation appeared with zero delay right on top of the Cup reward-claim moment, with no breathing room, and asked for a short pause before it shows.
- Added
STALL.invitationDelayMs(2800ms) andstate.stall.invitationRevealAt.claimSpringCupReward()still setsinvitationPendingimmediately (so the eligibility gate against re-triggering works exactly as before), but a newisStallInvitationVisible()helper additionally requiresDate.now() >= invitationRevealAtbefore the modal actually renders.accept/declinenow check visibility rather than rawinvitationPending, so clicking through a stale/pre-timer reference is a no-op. The main-loop pause guard (scheduleGameTimer) was switched from gating oninvitationPendingtoisStallInvitationVisible(), so the greenhouse keeps ticking normally through the short breathing gap and only actually pauses once the modal is about to show. - Caught a real bug while verifying this, not a false alarm this time. Initial live-browser testing showed the invitation logic flipping to "visible" correctly (confirmed via direct state inspection) but the modal never actually painting on screen without a manual
render()call — even many seconds after the reveal threshold passed, and even in a focused, non-throttled tab. Root cause:scheduleGameTimer's interval callback only calledrender()inside the sameif (!state.paused && !isStallInvitationVisible())branch astickGarden(). The instantisStallInvitationVisible()flips true, that condition goes false — which correctly stops simulation, but also stops the one thing that would have painted the transition, so the reveal silently never appeared until some unrelated interaction happened to trigger a render. The same latent bug affects the stall cycle's own settlement-ready badge if the player has the main greenhouse paused when the 30-minute timer elapses — that path existed since checkpoint 2 and was never actually exercised understate.paused === trueuntil now. - Fixed by decoupling simulation from painting: the interval callback now always calls
render(), and only gatestickGarden()behind the pause/visibility check. Verified live with passive polling (no manual render calls) that the invitation now transitions from hidden to visible right around the 2.8s mark on its own, and that the stall's ready-to-settle badge now appears within about 2 seconds even withstate.paused = true. - This is a good example of why "the code looks right" isn't verification — the fix was validated by watching the unforced behavior over real elapsed time in a live tab, not by reasoning about the guard clause in isolation.
- Not yet versioned as a separate release; folded into the still-unshipped
0.8.7-beta.1candidate alongside checkpoint 2, since neither has been pushed yet.
2026-08-09 — Desktop and Tablet Workspace Tabs
Creator flagged that this whole session's discoverability work (F13-F33, plus the stall's own two checkpoints) only ever touched mobile. Desktop was still one continuously growing scrolling page — sections hard to tell apart, seed switching easy to miss, the new 花摊 panel buried at the very bottom — and asked whether to paginate desktop into tabs too, with the same fast navigation mobile already has.
The good news going in: the entire tab-switching mechanism (activeMobileWorkspace, selectMobileWorkspace, renderMobileWorkspace, every badge) was already 100% viewport-agnostic JS — the mobile/desktop split was purely a CSS scoping decision (@media (max-width: 680px)). This made the fix mostly a CSS job, not a rewrite.
- Pulled
.mobile-workspace-navout of the base "always display:none" group and gave it its own default (non-phone) presentation: a horizontal pill tab row instead of the phone's fixed bottom bar.#mobilePauseButtonis hidden by default in this presentation (desktop already has its own#pauseButtonin the topbar; showing both would be a duplicate control) and explicitly restored todisplay: gridinside the existing phone media query, which still fully re-styles the nav back to its proven fixed-bottom, safe-area-aware mobile treatment untouched. - Added a new
@media (min-width: 681px)block that applies the same "one workspace, one visible section" routing mobile already had, extended to.stall-paneland reusing the identical[data-mobile-workspace="X"]attribute selectors already being set by existing JS. Deliberately did not copy mobile's "hide.seed-panelwhile viewing garden" rule into this block — tablet and desktop keep seed-panel beside garden when on the 温室 tab, since only phone width has the compactmobile-garden-toolsreplacement for it. This is an intentional width-tier difference, not an oversight. - Desktop's 3-column
.layout-grid(250px minmax(0,1fr) 300px) collapses to 2 columns (250px minmax(0,1fr)) specifically while the 图鉴/codex tab is hidden, via a separate@media (min-width: 981px)rule — scoped that narrowly on purpose, because the same override at tablet width (681-980px) would have fought the existinggrid-template-columns: 1frsingle-column collapse that tablet already relies on. - Verified across all three tiers in a live browser, not just by reading the CSS: desktop (1400px) correctly isolates each of 温室/订单/图鉴/赛事/花摊 with no layout gaps, and the 图鉴 tab now fully replaces the view rather than sitting in a third column; tablet (800px) correctly keeps the existing single-column stacking and phone-safe grid collapse while still getting full tab isolation; phone (390px) was re-tested end to end (bottom nav position,
#mobilePauseButtonvisible again, seed-panel still hidden in garden workspace, stall tab still works, no horizontal overflow) and found byte-for-byte behaviorally unchanged. Also spot-checked that plot selection, the context bar, and the desktop "换一种" scroll+highlight fix from earlier this session all still work correctly inside the new 2-column garden layout. - This means 花摊 is no longer "buried at the bottom" on any screen size — it's a one-click tab everywhere now, and no workspace's content length affects any other workspace's scroll position anymore.
- Versioned
0.8.8-beta.1. Both smoke suites andnode -cpass (no JS was touched, so this was purely a regression-testing pass on the browser side). Not yet pushed — showing the creator across all three widths before release, and this is a checkpoint ahead of the still-pending bouquet/bundling economy redesign for the stall.
2026-08-09 — Post-Handoff Large-Screen Audit
Codex reviewed the Sonnet handoff commits, logs, and the current candidate at desktop, tablet, and phone widths before adding more content.
- Fixed F34: desktop pot soil actions targeted a soil laboratory that the new workspace CSS hid. Soil configuration now opens as a targeted overlay at every width, with a centered large-screen dialog and the existing phone sheet treatment.
- Fixed F35: the desktop selected-pot context bar no longer remains sticky over the final pot row. Mobile keeps its reachable fixed treatment.
- Audited the new roadside-stall loop. Its save-stable result roll, inventory deduction, unsold return, and settlement rules are coherent with the design record. The visible interaction issue was rendering: the always-running timer rebuilt the stall DOM as often as every 250ms at 4x speed, which could replace a button between pointer-down and click and repeatedly discard keyboard focus. The stall now participates in the existing interaction guard and only redraws when allocation, displayed countdown second, or settlement state changes.
- Added behavioral coverage for opening soil from a pot plus CSS regression assertions for the overlay and desktop context positioning. Versioned
0.8.8-beta.2; this remains a local review candidate, not a production declaration.
2026-08-09 — Local Tester Console
- Added a hidden tester mode at
http://127.0.0.1:4174/?qa=1. The ordinary player URL remains unchanged; the QA launcher is created only when the query flag is present. - Added four representative checkpoints: early care loop, midgame automation, Spring Cup invitation, and unlocked roadside stall. They are generated through the current
defaultState()andnormalizeState()functions instead of maintaining a second hand-written save schema. - Added focused state controls for coins, seeds/materials, instant bloom, severe dryness, aphids, and empty beds. These are for feature and visual verification; a clean start remains necessary for pacing and onboarding tests.
- The first QA modification stores a separate backup of the current save, and
恢复测试前存档restores it exactly. The backup survives checkpoint reloads until explicitly restored. - Standardized local testing on the HTTP preview.
file://.../prototype/index.htmlandhttp://127.0.0.1:4174/are different browser storage origins and therefore do not share progress. - Versioned
0.8.9-beta.1and added smoke coverage for the generated automation, event, and stall states. - Changed the first Spring Cup unlock from an automatic workspace jump into an explicit invitation. The greenhouse remains exactly where the player was working, a fixed notification offers
前往查看, and only that player action opens the event workspace. The ordinary event banner remains available afterward, while the one-time notice does not reappear every time the player returns home.
2026-08-10 — Explicit Reward Loop
- Acted on 丹丹's diagnosis that the prototype communicates maintenance pressure much more clearly than future reward. Added a persistent nearest-goal strip with numeric progress, named reward, progress bar, and ready-to-claim state.
- Fresh saves now begin with mint only. The first explicit milestone is three mint harvests, awarding two calendula seeds; existing saves retain their current seed inventory.
- Added five one-time milestones spanning mint harvests, total harvests, blooms, orders, and unique visitors. Rewards include the first new species, a free dripper, notes, compost, and a moonflower seed.
- Added a fixed observation-note exchange catalog for basic seeds, a dripper, compost, and a rare seed. It deliberately does not rotate: this pass is about reliable motivation and earned relief, not daily-shop urgency.
- Selling and stocking both count as harvests; entering bloom counts once at the actual growth transition. Reward state is normalized for older saves and claimed rewards save immediately.
- Versioned
0.9.0-beta.1and added coverage for fresh-save seed inventory, the first milestone claim, and note-for-dripper exchange.
2026-08-11 — Reward Route Redesign and Temporary Visual Language
- Creator playtesting rejected the first reward center as an add-on checklist with perfunctory UI. Replaced parallel generic milestones with a sequential five-stage greenhouse route: mint mastery, calendula and first automation, first order and equipment catalog, production expansion fund, then night ecology.
- The main strip now names one concrete action and one capability-changing reward. The full view shows only the completed/current/next neighborhood instead of presenting five simultaneous jobs.
- Added a large current-stage illustration placeholder, connected route nodes, strong ready state, and a full-screen reward reveal. Temporary character icons are deliberately replaceable by creator art without changing layout or reward semantics.
- Added consistent resource pictograms and tactile pressed-button feedback across the interface. The observation-note catalog remains available but is visually demoted to
研究补给beneath the progression route. - Changed milestone payouts to alter play: calendula grants a free dripper, the first order opens the equipment catalog, and eight harvests fund the first expansion. Versioned
0.9.0-beta.2.
2026-08-11 — Greenhouse Research
- Replaced the fixed note-exchange catalog with three one-time research branches: plant discovery, irrigation engineering, and biological control.
- Made the plant branch save-aware. It awards wildberry to players still following the bird-carried seed clue; players who already own wildberry instead study two wildberry harvests and unlock cornflower.
- Added cornflower as a new neutral-soil companion flower with a strong bee-attraction effect, giving the future pollination layer an early in-game foundation.
- Added permanent research outcomes: cheaper replacement drippers and a biological-control modifier that lowers aphid risk while increasing ladybug response.
- Redesigned research cards with branch labels, exact prerequisites, missing-note feedback, permanent-effect descriptions, ready/completed states, and a mobile action layout.
- Recorded the later bumblebee, circular-water, biomass-heating, robotic-handling, and specialist-cultivation systems in
design/greenhouse-depth-roadmap.md. Versioned0.9.1-beta.1. - Published the playtest candidate from commit
7620ca5to Netlify deploy6a7bc20ea1b303191e8c03bb. The account-free production URL loaded the expected version and retained the feedback form's release metadata. - Fixed a mobile bottom-navigation style regression in
0.9.1-beta.2: desktop pill spacing, rounded corners, and container padding had leaked into the fixed phone bar while the pause control added a second competing treatment. The phone bar now uses one flat segmented structure, a restrained active marker, and a quieter but still distinct pause command. - Published the navigation patch from commit
59255e7to Netlify deploy6a7bc387458e4ecf7b158b9b; production reports0.9.1-beta.2.
2026-08-11 — Order Value Legibility
- Audited the first order after a tester compared a 10-coin high-yield mint plant with a multi-ingredient bouquet. The underlying mismatch was partly semantic: whole plants are consigned, while orders consume individual stems, but both surfaces previously displayed bare counts.
- Renamed harvest choices to
整株寄售and剪花入库, added stem units throughout inventory and order requirements, and made the selected bloom summary state both outputs explicitly. - Added a reference-material-value and order-premium line to every order. Increased the daily bouquet from 30 to 40 coins, changing its visible premium over seven stems from 12 to 22 coins. Versioned
0.9.2-beta.1. - Published the order-value pass from commit
63b69e1to Netlify deploy6a7bc4cd366dd23fc1cd62ba; production reports0.9.2-beta.1and keeps the existing save schema.
2026-08-11 — Saved Mobile Workspace and Desktop Pot Actions
- Fixed a saved-state mobile failure where an older
event.openflag selected the event workspace during startup and responsive CSS consequently hid the entire greenhouse. Every load now begins in the greenhouse; event progress remains saved and reachable explicitly. - Hardened plot migration against removed or malformed plant identifiers. A bad legacy plot is discarded instead of aborting the complete garden render.
- An initial wide-screen attempt moved the shared action surface into the pot grid after the selected card. A real progressed save exposed CSS Grid auto-placement collapse: the pot became a narrow stripe and the action surface an empty-looking oversized cell. Replaced that approach before release with stable document order above the grid; it remains sticky within the greenhouse on wider screens while phone retains the fixed bottom action sheet. Versioned
0.9.2-beta.2. - Confirmed the current watering economy has no water bill: temporary drippers consume durability and the central tank is a purchased permanent upgrade. Utility costs remain deferred until production scale and climate systems make them a meaningful operating decision.
- Added the app version to
style.cssandgame.jsURLs after Chrome kept a stale pre-fix grid stylesheet despite repeated local page refreshes. The HTTP server was already serving the corrected files; cache-keyed asset URLs make the browser fetch the matching release pair.
2026-08-11 — Information-Light UI, Checkpoint 1
- Began the pre-pollination legibility pass. Planted pots replace five prose-heavy meters with a three-channel
芽 / 水 / 土instrument strip, compact automation badges, and a stable plant-color mark. - Order cards now lead with a material-to-payout equation; descriptive flavor text moves behind optional disclosure. Rules and save data are unchanged so this checkpoint can isolate presentation feedback.
- Recorded the principle that automation retires repeated input and later utilities price production scale rather than reviving per-pot chores. Versioned
0.9.3-beta.1; research-card compression remains the next checkpoint. - Compressed the growth route and research cards for checkpoint 2. Growth now leads with one numeric action and reward; adjacent nodes omit flavor copy. Research cards lead with observation progress and outcome, while rationale and permanent-effect prose are optional disclosure.
- Deliberately held milestone goals unchanged. Familiar creators and generated QA saves complete them unusually quickly; timing will be revisited only after fresh-player completion times distinguish pacing from familiarity.
- Fixed the silent moonflower threshold in
0.9.3-beta.3. Reaching 30 coins and 6 observation notes now opens the important-acquisition reveal with a visual seed mark and the compact equation金币 30 ✓ · 观察笔记 6 ✓ → 新种植线开放, preventing an immediately preceding order from receiving false causal credit.
2026-08-11 — Pollination Yield, Checkpoint 1
- Promoted bee visits from a card-collection event into a visible production relationship. During a bloom, bee stay time builds two pollination levels; the pot shows progress and the exact extra-seed outcome.
- Pollination awards up to two additional seeds when the plant is sold or stocked. Existing
observedBoostsaves migrate into the first pollination level, preserving their previous one-seed benefit. - Kept existing flower count unchanged after bloom. Care and soil create flowers; pollination creates reproductive yield. This leaves a coherent path toward companion planting, managed bumblebee hives, and seed-line improvement.
- Added a project-owned local preview server after repeated Chrome cache mismatches. It keeps the established
127.0.0.1:4174save origin but sendsno-storefor every asset, so ordinary refreshes always load the current working files without clearing site data.
2026-08-11 — Hosting Migration Candidate
- Audited generated and ignored files before migration. The repository contains no disposable build output beyond ignored provider metadata;
.netlify/remains temporarily because it preserves the working rollback link. - Prepared an account-free Cloudflare Pages candidate while leaving the existing Netlify release untouched.
- Replaced the provider-specific Netlify form post with a same-origin
/api/feedbackrequest, a Pages Function with bounded input validation, and a D1 schema for the private feedback inbox. - Added a Wrangler configuration template rather than committing account-specific database identifiers. Versioned the unreleased candidate as
0.9.4-beta.2. - Created
greenhouse-notes-playtest.pages.dev, initialized the D1 schema, and read a labeled QA submission back from the database after sending it through the public/api/feedbackendpoint. - Responsive production QA passed at 390×844 and 1280×800 with four visible pots, no horizontal overflow, and no browser warnings or errors. Cloudflare becomes the primary small-beta link; Netlify remains a one-cycle rollback.
2026-08-11 — Respectful Disclosure and Notice Queue
- Fixed the growth-route
为什么值得做disclosure collapsing while the player reads. Its open state now survives timer-driven card redraws and changes only through the player's own toggle. - Prevented the moonflower acquisition and Spring Cup invitation from occupying the same screen space. Important notices now resolve sequentially: acquisition first, then automation if relevant, then the event invitation.
- Added a
稍后action to the Spring Cup invitation. Dismissing the floating notice does not remove the persistent event entry or its banner. Versioned as0.9.4-beta.3. - Browser QA with a progressed local save exposed a startup-order failure: blooming pots were rendered before the bloom-ending threshold constant initialized. Moved the lifecycle constant ahead of the first render and added a source-order regression check, preventing partial pages when reopening an active garden.
- A screenshot-led legibility audit found that the compact
芽 / 水 / 土channels styled decision-critical values like secondary labels. Values now use stronger weight, tabular numerals, and separate growth, water, warning, and soil color treatments at every viewport; descriptive labels remain quiet. - Added a QA-only
通知碰撞checkpoint matching the supplied screenshot: moonflower acquisition and an unread Spring Cup invitation become pending together. This makes notice priority and dismissal reproducible without replaying the opening economy. - Fixed QA checkpoint navigation being overwritten by the ordinary page-hide autosave during reload. Scenario loading and save restoration now explicitly suppress that final stale write.
2026-08-11 — Contextual Feedback Coverage
- Added focused feedback entry points for automation and equipment, the growth and research route, and the plant and visitor codex. Existing reports already cover the overall game, pots, seeds, soil, orders, competition, and stall.
- Raised the feedback sheet above every ordinary game, reward, QA, and celebration surface so opening it from a nested feature cannot leave it obscured.
- Switched feedback sizing to the dynamic viewport, contained its own scrolling, kept the header and close control visible, and reserved phone safe-area padding. Versioned as
0.9.4-beta.5.
2026-08-12 — Water Utility Prototype
- Added operating cost to the central tank without restoring per-pot chores. Six automatic refills are free commissioning; later charges derive from actual water restored and settle automatically in small batches.
- Insufficient coins defer a bill without stopping irrigation, damaging plants, or adding penalties. Manual watering and temporary drippers remain free.
- Added a dedicated utility card showing the current bill, lifetime cost, lifetime savings, and observed tank refills.
- After ten tank refills, players may invest 80 coins and 12 observation notes in a permanent recirculation retrofit that lowers later water cost by about 60%.
- Added save migration, automated coverage for free commissioning, billing, settlement, research payment, and measured savings, plus a mature utility state in the automation QA checkpoint. Versioned as
0.9.5-beta.1. - Follow-up legibility pass promoted water from a compressed shop card into a persistent status entry: the desktop resource strip shows it near currency, while phone layouts keep a compact water key above the bottom navigation. Clicking it opens a concise bill explanation and exact totals.
- The first charged usage period produces one queued, dismissible water notice. After dismissal the persistent status remains; insufficient cash continues to defer payment without penalties or shutoff.
- Pollination results are now interactive. Clicking or keyboard-activating
授opens a short causal explanation of bee stay, the two pollination levels, and extra same-species seeds. Versioned as0.9.5-beta.2. - Reframed central-tank activation as a welcome letter from the fictional Qingvine Water Company. The one-time sheet explains whole-garden coverage, six free refill cycles, metered billing, and where bills settle without burying the rules in the equipment catalog.
- Automatic water service can now be paused and resumed from both the utility details and equipment catalog. Pausing preserves the installed tank and existing bill but stops automatic refills and new usage charges. Versioned as
0.9.5-beta.3. - Removed the compressed water-and-recycling card from the equipment catalog. The persistent water status now opens a dedicated responsive utility center with clearly separated service state, current bill, lifetime figures, pause control, and recirculation research. Versioned as
0.9.5-beta.4. - Published
0.9.5-beta.4to the Cloudflare Pages production branch for multi-device testing. The production alias was checked directly and serves the matching versioned CSS and JavaScript assets; deployment preview05503ca6is retained as a release-specific reference. - Began the first visual-identity pass without changing the established workflow. The interface now reads as a working greenhouse ledger: a distinct title mark, seasonal color registration, typed resource slips, seed-catalog rows, nursery-style pot trays, a labeled action bench, and more deliberate utility sheets replace the uniform generic-card treatment. Versioned as
0.9.5-beta.5. - Corrected the visual direction away from a static notebook and toward a living greenhouse console. The garden now dominates the desktop grid; plant stages are larger, species can carry distinct silhouettes, glass light and condensation move gently, leaves sway, and watering, feeding, pollination, pests, and active growth receive environmental feedback. The masthead was compressed so plants enter the first viewport sooner. Reduced-motion preferences remain respected. Versioned as
0.9.5-beta.6. - Reassessed the product direction after the living-console pass exposed a deeper issue: the prototype rewards greenhouse operation more strongly than waiting, attachment, and visual cultivation. Added a dedicated nurturing-idle direction document and an ordered transition checklist. The first implementation target is now baseline QA followed by an isolated calendula quiet-growth slice; caretaker shifts, special specimens, and a full showcase scene remain later phases rather than simultaneous additions.
- Completed nurturing-idle Phase 0 in local
0.9.5-beta.7. Dev Garden's stale0.7.3phase, playtest focus, roadmap, and README experiment were corrected; it now distinguishes the0.9.5-beta.4production build from the local candidate. Added a calculated calendula baseline and five normalized QA checkpoints covering sowing, mid-growth, first bloom, mature display, and simulated idle return. The baseline confirms roughly 84 seconds to healthy bloom, only about 36 seconds before initial watering leaves the comfortable band, and about 8.6 watering decisions per minute across four similar pots. - Completed the isolated Phase 1 calendula quiet-growth slice in local
0.9.6-beta.1. Nurture QA saves use an eight-stage, roughly eight-minute healthy curve; water pressure arrives after minutes rather than seconds, unsuitable conditions slow growth without killing the plant, and capped offline progress produces a visible return summary before maintenance prompts. Ordinary saves and event plants retain their previous behavior so the two rhythms can be compared directly.
2026-08-16 - Phase 1 language and future idle presentation
- Reworded the quiet-growth status and return message in short, natural language: leaving is safe, unsuitable water slows growth, and no rescue is required.
- Kept the attentive-play reward intentionally light until Phase 2 defines a real mechanical advantage.
- Recorded showcase mode as a manual view first, with possible idle auto-entry, one-action return, and optional notification controls to test later.
2026-08-16 - Quiet-growth warning correction
- Found that the nurture experiment still inherited the ordinary bloom-stress lifecycle and stale dry-alert classes after its safe growth phase.
- Kept experimental calendula blooms safe for a much longer viewing window and suppressed old crisis animations throughout the slice.
- Added a persistent, plain-language banner explaining that the plant can be left alone and that unsuitable water only slows it down.
- Chose to test a deliberate manage/watch presentation switch later instead of adding a mode switch before the two modes have meaningful behavior.
2026-08-17 - Phase 2 attentive growth momentum
- Added per-plant care momentum to the isolated calendula experiment. A needed watering, feeding, or aphid treatment starts a limited 2.2x growth window.
- Repeated input during the active window does not extend it, so the system rewards returning attention instead of rapid clicking.
- Added a visible momentum bar and a persistent banner that changes from safe waiting to active-care feedback.
- Varied care leaves up to three cultivation records; two types add one flower at bloom.
- Added
等待照料and加速进行中QA checkpoints plus active-versus-quiet timing coverage.
2026-08-17 - Direct QA scenario links
- Found that
?qa=1only exposed the QA console while retaining the current ordinary save, making the old crisis rules easy to mistake for the nurture experiment. - Added
scenario=<id>support so a test link can load the exact isolated checkpoint immediately and repeatably.
2026-08-17 - Phase 2.1 mystery chicken manure
- Added
神秘鸡肥to the isolated nurture experiment with three free opening doses and 18-coin replacements in the greenhouse shop. - One dose restores 25 soil nutrients and provides about three minutes of 1.6x growth on one calendula pot.
- Active doses cannot be stacked. A 2.2x meaningful-care window overrides rather than multiplies with the manure rate.
- Added plant-card and greenhouse-banner feedback plus a direct
鸡肥生效中QA checkpoint.
2026-08-17 - Phase 3 bloom continuity
- Added an eight-second first-look window when an experimental calendula blooms.
- Split mature-plant actions into cut-and-keep, collect seeds, leave on display, and sell the whole plant.
- Cutting now returns the same plant to the flower-bud stage at 78% growth, creating a shorter repeat-bloom loop.
- Added persistent bloom count, a higher bee chance while displayed, and an eight-coin whole-plant premium for every bloom after the first.
- Added
准备再次开花QA coverage and lifecycle tests for reveal, seed collection, cutting, repeat bloom, and sale premium.
2026-08-17 - Friendly decisions and research-tree direction
- Added a project-level UX principle: realistic depth must not turn routine play into administration. Frequent moments should have one safe default, deferred choices should remain safe, and repeated decisions should later become preferences or automation.
- Simplified Phase 3 bloom handling to one recommended
剪花并保留植株action with seed collection, display, and whole-plant sale inside其他处理. - Recorded a future route-based research technology tree for water, soil, ecology, breeding, and business, with one vertical branch at a time on phones instead of a large panning graph.
2026-08-17 - Rejected expandable bloom actions
- Reverted the
其他处理disclosure added in0.9.8-beta.2. It added an operation without removing a decision, and periodic game rendering recreated the element and collapsed it while the player was using it. - Restored the direct Phase 3 action set and froze further bloom-option expansion.
- Kept the broader low-burden UX principle, but recorded that hiding simultaneous choices is not automatically simpler.
- Phase 3 remains a lifecycle experiment: its purpose is plant continuity and repeat bloom, not menu depth. The next experiment moves to showcase mode.
2026-08-17 - Separate bloom retention from showcase terminology
- Renamed the single-pot
留盆观赏action to保留花期so it cannot be confused with Phase 4's separate full-scene观赏模式. - Recorded retained plants, repeat blooms, history, and lineage as a promising but unresolved attachment system for a dedicated discussion after the showcase prototype.
- Froze further Phase 3 attachment work until that discussion.
2026-08-17 - Phase 4 greenhouse showcase
- Added a separate full-screen greenhouse scene entered through
观赏温室and exited with one arrow button. - The scene renders live pots, plant scale, bloom quantity, species color, visitors, greenhouse structure, and gentle visitor motion without resources, meters, cards, alerts, orders, or management prose.
- Added reduced-motion support and responsive two-row phone layout.
- Added a four-plant
观赏模式场景QA checkpoint andshowcase=1direct-link option. - Render-checked desktop 1440x900 and phone portrait 390x844; moved the phone return control to the left edge after the narrow screenshot exposed right-edge clipping risk.
- Automatic idle entry and notification preferences remain deferred until manual showcase playtesting proves useful.
2026-08-17 - Phase 3.1 seed-saving correction
- Removed instant seed collection from an intact bloom. One flower can no longer count as both cut material and a mature seed harvest.
- Added the
留种入门propagation study, unlocked by one calendula bloom plus one recorded bee visit and completed with six observation notes. - Reserving a seed head reduces the current cut-flower yield by one. After creator review, maturation was extended from 180 to 900 simulation ticks, about 20 minutes at normal speed or five minutes at 4x. A head now yields one seed, or at most two after observation or pollination, and each plant can mature only one head at a time. It remains attached while the rest of the flowers are cut and the plant begins repeat growth; offline time still advances the process. The UI reports estimated real waiting time at the selected speed instead of abstract tick counts.
- Added clear maturing/ready actions, a visible seed-head marker, offline maturation, two direct QA checkpoints, and lifecycle regression coverage.
- Retained Phase 3 plant continuity, repeat bloom, display, and bloom history. Only the flawed double-reward rule was discarded.
- Audited the Phase 4 showcase after floating placeholder shapes were reported. Leaves now connect to the stem with visible petioles, the clipped roof no longer leaves a stray apex triangle, and phone layouts add a shelf beneath each plant row while moving the sun away from the plants.
- Replaced the crowded phone 2x2 showcase with one horizontally swipeable bench. Roughly two plants remain fully visible and a partial next plant indicates that the scene continues without adding labels or management controls.
2026-08-17 - Phase 5 quiet-growth integration
- Enabled the nurturing foundation for ordinary and migrated saves instead of QA scenarios only.
- Mint and calendula now share safe slow growth, bounded care momentum, manure acceleration, quieter maintenance feedback, offline progress, and longer bloom tolerance.
- Kept lifecycle depth scoped to calendula: mint still uses ordinary harvest and replant, and cannot repeat bloom, reserve a seed head, or gain bloom-history premiums.
- Replaced the top-bar
观赏温室command with安心挂机inside the growth-speed control. The subtitle只看花园,继续生长states the relationship directly on both desktop and phone. - Reused
createPlot()for real planting so newly quiet mint receives the complete normalized lifecycle fields; added migration and mint safety coverage and updated old lifecycle tests to use a non-quiet species where appropriate. - Versioned the local Phase 5 candidate as
0.10.0-beta.1. - Removed the decorative
当前花槽tab from the desktop sticky pot-action panel after it visibly escaped the top border while scrolling. The plant name, stage, and numbered pot control already carry the same information without overflow. - Added
清理并换种to healthy selected pots so retained plants do not become permanent occupancy. It requires confirmation, returns no seed or material, discards unfinished seed heads, preserves soil and installed equipment, and routes directly to the targeted seed picker. Automated coverage verifies no seed duplication and equipment preservation.
2026-08-17 - 蝴蝶兰连续浇水
- 精养蝴蝶兰不再使用普通植物的“一键浇到舒适值”。
- 新增按住连续浇水、松手停止;鼠标、触摸与键盘共享同一套行为。
- 按下立即改变按钮状态,并持续显示本次增加的水量和植物反馈。
- 快速点击仍保证至少增加一次水量,避免按钮看似失灵。
- 单次浇多不立即伤害植物;长期过湿才进入后续风险判断。
- 普通植物继续使用一键浇水,防止整座温室增加操作负担。
2026-08-17 - 第一版温室主题音乐草稿
- 根据创作者的电子琴录音保留两句旋律的自然节奏与停顿。
- 输出 48 秒循环版和 24 秒自然收尾版,暂用轻柔钟音与稀疏和声。
- 循环版末尾改为属和声上的 B-G,引回开头 C;原始完整版本仍保留 C 终止。
- 音色仅用于验证旋律、密度与循环点,不作为最终美术风格的一部分。
- 开发站新增“音乐室”,可直接播放和比较历史版本,并保留 WAV 原稿入口。
- 记录物种协奏方向:每种植物对应一个共享主题的器乐分轨,由温室当前生态组成编曲。
- 根据首次试听制作 V0.2:降低尖锐泛音、柔化起音、扩展到 64 秒,并新增短过门和轻微回应声部。
- 音乐室新增可读简谱与 ABC 乐谱源文件;后续音乐版本必须同时保留音频、乐谱和修改说明。
- 将创作者 20.95 秒的电子琴原始录音完整复制进项目并置于音乐室首位,作为不可覆盖的 SOURCE 版本。
- V0.2 试听结论为“更丰富但更杂乱,主音色仍刺耳”,保留文件但标记为未采用。
- 制作 V0.3 低八度清理版:匹配原录音实际音区,删除回应声部,减少和声变化,并缩短新增过门。
- 创作者允许编曲在必要时增加一到两个小节的连接旋律;新增材料应从原主题动机发展,并在 V0.3 舒适度确认后作为独立变量测试。
- V0.3 的音区明显改善,但持续振荡铺底和次谐波产生了不适的物理共振;制作 V0.3B,保持旋律结构不变,仅移除长铺底、次谐波和过长尾音。
- V0.3B 音色改善,但低音和弦仍显沉重;制作 V0.3C“柑橘和声版”,改用中高音区错开浮现的 Cmaj7、Am7、Fmaj7 与 G6 和声。
- V0.3C 的音色与和声底盘获得认可;制作 V0.4 完整乐段版,调整主题节奏,加入两小节连接段、主题回归和独立循环尾句,并同步更新简谱与 ABC 乐谱。
- V0.4 被采用为当前游戏主题并接入原型:玩家主动播放后循环,顶部可暂停并调节音量,音量偏好保存在本机;不会绕过浏览器限制自动出声。
2026-09-08 自创花束发布候选收尾
本轮把自由配花、持续营业、收摊、回购与销售归档接成可重复循环,收入接现有分期,批次接主存档。营业中加入来客表现、实际成交价和手动展开的记录;暂停立即反映到窗口。修复营业未完可直接归档、旧数据缺少字段与缺省材料数值的问题。
18项Node回归通过,新增真实主游戏离线销售/分期/暂停/重复恢复测试。薄荷提速后,现金流测试改用扩建速度与剩余库存上限判断计划效果,不比较采收相位导致的某一刻库存排名。薄荷对长期经济的影响仍需要实际游玩,不宣称全面平衡。
状态:本地候选,未部署。真实桌面/手机视觉验收仍待完成。规则及范围见 自创花束。
2026-09-08 温室与花房视觉改版
新增独立主题 atelier.css,统一主界面、花盆、种子库、商店、订单及配花窗口。去掉格子纸、外围浮卡、徽章字与大面积投影,保留土质/选中/缺水信息。加入内置image_gen生成的温室工作台临时横幅和本地Lucide图标。高频文案改为简短对象与结果,无访客时不重复占位提醒。
功能逻辑未改。新增静态资源、对比度和主题顺序回归;视觉实机验收仍被本地URL读取策略阻断,未部署。完整来源、提示词与待测项见 视觉改版。
2026-09-08 主题截图反馈修正
修正资源栏收起键受旧grid定位影响的错位;保留44px触控区与独立间隔。删除全局“照料加速/肥效”重复提示,不改真实增益与花盆进度。温室背景换成简洁蜡笔绘本风,调整小屏图片缩放,保证文字位于左侧留白。资源版本 atelier2 / game beta48-13。素材与来源见视觉改版文档。
2026-09-08 beta48 获准内测发布
用户同意先上线收集反馈。发布范围为自创花束自由营业/回购闭环、存档和分期融合、薄荷起步节奏及温室主题改版;保留旧订单、故事委托和代售。19项Node回归通过,真实设备视觉与长期收益仍待外部试玩。无需数据库迁移,不变更存档键。
已从 6f05f87 发布至 https://44400f8a.greenhouse-notes-playtest.pages.dev,主域名 https://greenhouse-notes-playtest.pages.dev/ 的HTML、主脚本、新主题、商品模型/营业脚本与新背景图均逐字节匹配本地版本。文档和源码已提交到私有仓库。下一轮以真实玩家反馈为主,不立即追加系统。
2026-09-08 资源图标平铺修正(已发布)
用户截图显示资源图标重复并裁切。根因是旧资源ID选择器的 background 简写优先级高于主题通用class,重置了 no-repeat/size。新规则使用资源栏ID加article选择器,明确单图、不平铺、居中、22px图像与24px容器;资源版本atelier3。增加特异性回归,不改存档或经济。已从 bee5681 发布至 https://45ac7373.greenhouse-notes-playtest.pages.dev,主域名HTML与主题CSS已核对一致。
2026-09-08 图鉴图像化
已发布:df9c200 → https://a93b01dd.greenhouse-notes-playtest.pages.dev。主域名HTML、game.js、atelier.css逐字节验证通过,20项Node回归通过。真实设备视觉反馈继续收集。
植物条目加入静态小盆栽,复用现有花朵形态与品种颜色;访客卡把单字头像换成现有观赏模式的蜜蜂、瓢虫、蚜虫、山雀、凤蝶剪影。未记录条目统一问号,不泄露品种。无新机制,不改存档,装饰标记aria-hidden,保留文字名称。新增图鉴渲染与未知条目回归。用户授权完成后直接上线;资源 atelier4 / game beta48-14。
2026-09-08 · 花房估值修正(本地)
顾问指出花束成本/售价口径不清:确认实验台月光花 7 与主游戏散花基准 10 不一致。新批次与回购改为主游戏价格来源,旧批次不重算。制作前、定价与营业界面统一“花材折价”,显示每束/整批/潜在收入,保留低价风险,不称作现金利润。用料显示每束乘束数。20 项 tests 回归通过;浏览器视觉验收与发布未做。
2026-09-08 · 本地温室讨论板
园主授权与同机 Claude Code 建立共享讨论文件。新增 discussion/topics(议题元数据、逐条 JSON 回复)、dev/discussion.cjs(list/read/new/reply/build)、dev/board.html(只读 BBS,搜索、状态、楼层链接与浏览器本地未读)。开发首页增加入口。AGENTS.md 与 CLAUDE.md 记录先读讨论、署名、顾问默认只追加讨论、不把帖子当执行授权的边界。
首批四个议题为 Codex 署名的转述与回应,明确 Claude 尚未亲自发帖,不冒用顾问署名。内容覆盖协作规则、好玩与种植经营优先、早期成长/个体差异待验证、花房估值已改待试玩。未实现自动 AI 对话、后台轮询或浏览器写入;CLI 发帖自动重建,网页刷新读取。本轮仅本地,未发布网站。
独立测试验证逐条追加、正文转义、非法参数、生成页面数据往返。内置浏览器 URL 策略拒绝本地页面,未绕过;真实视觉/触屏验收待用户打开页面检查。
2026-09-08 · 讨论板昵称与头像
园主授权免登录自定义署名。CLI 新增 --name、--avatar 与 profile 命令;任意参与者可选英文作者标识,昵称与来源同时展示,不作为认证。新帖快照昵称,旧帖无昵称时兼容默认资料;只接受 dev/avatars 本地位图,限制昵称长度与路径。头像加载失败显示昵称首字。Codex 自选昵称“青禾”,生成手绘盆栽头像 qinghe-v1.png,并在协作议题追加介绍。测试覆盖昵称持久化、单帖覆写、非法头像路径、历史昵称稳定及头像引用。仍是本地只读网页,CLI 追加回复;未发布,未进行浏览器视觉验收。
2026-09-08 · 园主网页回复
补齐此前只给 AI 提供 CLI 的交互缺口。新增 loopback-only discussion-server.cjs;园主选择议题后可填昵称、发表回复,默认 owner 标识。草稿分议题保留、昵称记忆、防重复提交、失败重试不丢正文;手动刷新读取 CLI 回复,不定时重绘输入框。服务只开放白名单资源,写入校验 Host/Origin/页面令牌,持久化重试标识。回复文件原子追加,避免同时读取半写 JSON。
HTTP 集成测试用临时目录验证实际保存/读取、与 CLI 共存、防跨站请求、重启后重试去重。服务已启动于 127.0.0.1:4186,健康检查 200;静态页面仍不能发言。没有上线到公网,未做浏览器视觉验收。
2026-09-08 · 金盏花叠加减速收敛(beta48-15 本地)
园主要求顾问讨论在本轮形成结论并开始行动。核实白露的三轮测试及旧基线来源后,不缩短健康周期、不改耗水/耗肥、不加第三槽或薄荷留株。为金盏花显式保留 360/0.16/0.08,并把缺水×低养分合并倍率下限设为 0.30;虫害/酸碱仍独立,其他花种不变。线上 tick、离线模拟、ETA 共用同一 helper。
隔离三轮前后:挂机 17.14/34.20/39.15 → 17.14/17.71/17.71;主动 6.66/3.73/3.51 不变,同条件花量不变。新档首单与托管 progression fixture 不变。保留旧档百分比、水土和开花历史,不免费补给;更新后尚未结算的离线时间按新速率推进。缺肥原因加到现有金盏花提示,不增加新面板。
该决策只解决后续轮次叠加减速,不代表首轮等待或整体经济已经理想。calendula-condition-audit 验证真实 tick 对照、旧存档、在线/离线与 ETA;发布和真人视觉/乐趣验收仍待完成。
2026-09-08 · 网页新建讨论
园主澄清不能发帖是缺少新议题入口,并非跟帖失败。新增顶部“新建讨论”,标题/昵称/正文表单,后台自动生成议题 ID 与首帖,成功跳转;标题和正文草稿持久化。HTTP 新建议题同源验证、原子目录发布、请求标识去重;失败不留下空议题。发帖前更新服务令牌,避免服务重启后旧页面令牌失效。集成测试覆盖创建、重试、无效标题和新帖跟帖。仅本地服务,未发布公网,视觉验收仍未完成。
2026-09-08 · 顾问讨论收尾与温室运行(beta48-16 本地)
园主授权收束各议题并实施。协作、方向标已采纳;金盏花、花房与新运行视图标待试玩。采纳白露的先浇水提示和估值用词,修正既有离线水分二值口径,防止关闭工作台被合成点击直接开摊。
新 greenhouse-flow-model/js/css 从真实状态读取生长、盛花、库存、花房批次、收入及设备;一处可改善条件引导到原操作界面。不创建模拟工厂、不发奖励、不自动选收获去向。显示进度但不伪造吞吐,收入仅当前批次,缺少批次时明确暂无。24项 tests 全通过;新增状态只读、照料优先级、资金显示、暂停与素材测试,离线水分分档对照。尚未做真实浏览器视觉验收,未发布。
2026-09-08 — beta48-33 scroll stability release
Preserve keyed dropdown and panel scroll offsets across tick rebuilds. Defer rendering through touch cancellation and scroll inertia; prevent disclosure taps from selecting/centering a plot. Contain nested-menu overscroll. Includes previously reviewed desktop stall navigation, starter recipes, inventory refresh and price slope. 45 Node audits (local HTTP board excluded) and prototype smoke passed. iPhone Safari visual reproduction remains unverified; owner-reported end-of-list bounce needs device retest. No save reset or migration.
2026-09-08 — market risk lab, separate from beta48-33
Documented and opened market-risk-experiment after the scroll release. dev/market-lab.html is an isolated saved tabletop using the shared bouquet/material/shelf logic: two persistent-until-delivered ordinary requests, 180–300 tick replenishment, four 300-tick markets with next-market preview, shopper budgets and occasional multi-buy, shared material cost and order opportunity warnings. No main save/cloud or offline progression. Existing production entry points retain default visitor behavior; the experimental evaluator is optional and capped at three real stock units. No automatic high-price repeat order in the lab.
46 Node audits plus prototype smoke passed. Dedicated tests cover pause, replenishment, persisted randomness, supply competition, stock cap, multi-sale accounting and reference-price parity. Browser URL policy rejected the new local lab; no screenshot or iPhone acceptance claimed. Fun remains owner/advisor playtest, not inferred from tests. Only DevGarden experiment/docs will publish; main game remains beta48-33.
2026-09-08 — beta48-34 ordinary order replenishment
After the player opens their own stall, completed ordinary orders fold into a 180–300 tick countdown, then reopen. Pending orders never expire; initial income before stall ownership and independent Lin story stay unchanged. Migration preserves current availability; timers freeze on pause and complete during unpaused offline time. Prevents direct/old caretaker paths from bypassing waiting. Main game uses per-order replenishment, not the lab's two random slots. Market experiment still isolated. Initial unconditional gate harmed early cashflow in 480-minute simulation; scoped to stall owners before shipping. Dedicated order-restock audit added.
2026-09-08 — beta48-35 live stall market integration
Owner confirmed market previews changed their recipe/price/stock decisions and approved integration. Shared stall-demand.js keeps lab parameters and overlapping preferences. Main stall has current/next market and countdown above both shelf and composer. Persisted independent market RNG, 300-tick phases, real 2–3-unit occasional group purchase, no new guaranteed same-price repeat; prior commitments honored. Offline simulates each stock tick through phase boundaries, then advances market only after stock ends, bounded to six hours. Old saves catch up once under original rules before starting new market. No economy repricing, no migration reset, beta48-34 ordinary order rules unchanged.
2026-09-09:成长分类与科研成本校准(仅本地)
成长路线分类并支持持久折叠;奖励优先提示已达成项。增加绣球花色、成功改良、自动供货目标,循环水回收加入科研中心并保留水务入口。两台全园设备研发调整为300/450笔记,金币购置不变。补充八小时笔记产出核算及局限,详见 design/production-growth-roadmap.md 末节。新增 growth-center-audit,非HTTP服务审计及smoke通过;视觉真机未验收,未发布。已向production-growth讨论串提出高额双门槛的取舍问题。