Skip to content

Commit

Permalink
Fix tree updates when impersonating and send-noreply (#961)
Browse files Browse the repository at this point in the history
  • Loading branch information
sceuick authored Jul 1, 2024
1 parent 8d679ac commit fbc1f38
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .github/deploy-stg.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

ssh ci@$@ "sh deploy-stg.sh"
3 changes: 0 additions & 3 deletions .github/dev-deploy.sh

This file was deleted.

64 changes: 64 additions & 0 deletions .github/workflows/stg-deploy-stack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Deploy to STG (Web + API)

on: workflow_dispatch

env:
IMAGE_NAME: agnaistic
node-version: '18.4.0'
pnpm-version: 8.6.0

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Get cached dependencies
# cache is automatically saved after this job completes. jobs depending on this one will get the latest cached files
id: cache-step
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/pnpm-lock.yaml') }}

- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: 'none'

- name: Add known host
run: |
ssh-keyscan -H ${{ secrets.SSH_SERVER }} >> ~/.ssh/known_hosts
- name: Install project dependencies
if: steps.cache-step.outputs.cache-hit != 'true'
run: |
ls -la
echo $NODE_ENV
pnpm install --frozen-lockfile
- name: Build frontend
env:
INJECT_SCRIPT: ${{ secrets.INJECT_SCRIPT }}
run: |
pnpm run build:prod
cp dist/index.html dist/original.html
node .github/inject.js
- name: Update Backend
run: |
sh .github/deploy.sh ${{ secrets.SSH_SERVER }}
- name: Update Frontend
uses: shallwefootball/s3-upload-action@master
with:
aws_key_id: ${{ secrets.S3_ASSET_ACCESS_KEY }}
aws_secret_access_key: ${{ secrets.S3_ASSET_SECRET_KEY }}
aws_bucket: ${{ secrets.S3_DEV_ASSET_BUCKET }}
source_dir: 'dist'
destination_dir: ''
5 changes: 5 additions & 0 deletions srv/api/chat/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const sendValidator = {
],
text: 'string',
impersonate: 'any?',
parent: 'string?',
} as const

const genValidator = {
Expand Down Expand Up @@ -95,6 +96,7 @@ export const createMessage = handle(async (req) => {
characterId: impersonate?._id,
ooc: body.kind === 'ooc' || body.kind === 'send-event:ooc',
event: getScenarioEventType(body.kind),
parent: body.parent,
})
sendGuest(guest, { type: 'message-created', msg: newMsg, chatId })
} else {
Expand All @@ -111,8 +113,11 @@ export const createMessage = handle(async (req) => {
senderId: userId,
ooc: body.kind === 'ooc' || body.kind === 'send-event:ooc',
event: getScenarioEventType(body.kind),
parent: body.parent,
})

await store.chats.update(chatId, { treeLeafId: userMsg._id })

sendMany(members, { type: 'message-created', msg: userMsg, chatId })
}

Expand Down
4 changes: 4 additions & 0 deletions web/store/data/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,9 @@ async function getGenerateProps(
const index = entities.messages.findIndex((msg) => msg._id === opts.messageId)
const replacing = entities.messages[index]

const replaceParent = entities.messages[index - 1]
props.parent = replaceParent

// Retrying an impersonated message - We'll use the "auto-reply as" or the "main character"
if (replacing?.userId) {
props.replyAs = getBot(active.replyAs || active.char._id)
Expand Down Expand Up @@ -651,6 +654,7 @@ async function createMessage(
text: text.parsed,
kind: opts.kind,
impersonate,
parent: getMessageParent(opts.kind, props.messages)?._id,
})
}

Expand Down

0 comments on commit fbc1f38

Please sign in to comment.