Viral welcome tour + line banner + wall, milestone stepper, rich solo editor, CTA-gated reads
- Welcome tour (3 levels x 10s) unlocks welcome credits; line banner in Profile; public /wall/<username> - 'Your next move' redesigned as a milestone stepper - Solo composer: BV-style rich editor (H2/H3, inline image+video, undo/redo, raw text) - Solo read reward now requires clicking through to the advertiser, not just dwelling - Sanitizer: inline media whitelist + script/style stripped whole Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -79,6 +79,8 @@ async function bootstrap() {
|
||||
await alterSafe('ALTER TABLE accounts ADD UNIQUE KEY uq_username (username)');
|
||||
await alterSafe('ALTER TABLE accounts ADD COLUMN member_id INT NULL');
|
||||
await alterSafe('ALTER TABLE accounts ADD KEY idx_member (member_id)');
|
||||
await alterSafe('ALTER TABLE accounts ADD COLUMN line_banner_url VARCHAR(500) NULL');
|
||||
await alterSafe('ALTER TABLE accounts ADD COLUMN line_target_url VARCHAR(500) NULL');
|
||||
await q(`CREATE TABLE IF NOT EXISTS daily_views (
|
||||
email VARCHAR(190) NOT NULL,
|
||||
day CHAR(10) NOT NULL,
|
||||
@@ -93,11 +95,13 @@ async function bootstrap() {
|
||||
email VARCHAR(190) NOT NULL,
|
||||
delivered BIGINT NOT NULL,
|
||||
read_ts BIGINT NULL,
|
||||
visited_ts BIGINT NULL,
|
||||
rewarded TINYINT NOT NULL DEFAULT 0,
|
||||
rewarded_day CHAR(10) NULL,
|
||||
UNIQUE KEY uq_solo (campaign_id, email),
|
||||
INDEX (email), INDEX (email, rewarded, rewarded_day)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
|
||||
await alterSafe('ALTER TABLE solo_inbox ADD COLUMN visited_ts BIGINT NULL');
|
||||
// solo message bodies are sanitized rich text; TEXT gives them room
|
||||
await alterSafe('ALTER TABLE campaigns MODIFY body TEXT NULL');
|
||||
await alterSafe('ALTER TABLE campaigns ADD COLUMN cta_label VARCHAR(40) NULL');
|
||||
|
||||
Reference in New Issue
Block a user