@@ -34,7 +34,7 @@ export type GravityAdState = {
3434 * - Ads rotate every 60 seconds
3535 * - After 3 ads without user activity, rotation stops
3636 * - Any user activity resets the counter and resumes rotation
37- *
37+ *
3838 * Activity is tracked via the global activity-tracker module.
3939 */
4040export const useGravityAd = ( ) : GravityAdState => {
@@ -145,14 +145,25 @@ export const useGravityAd = (): GravityAdState => {
145145 }
146146 }
147147
148+ const userAdMessages = adMessages
149+ . filter ( ( message ) => message . role === 'user' )
150+ . slice ( - 3 )
151+ . map ( ( message ) => ( {
152+ role : message . role ,
153+ content : message . content . replace (
154+ / < u s e r _ m e s s a g e > ( .* ?) < \/ u s e r _ m e s s a g e > / ,
155+ '$1' ,
156+ ) ,
157+ } ) )
158+
148159 try {
149160 const response = await fetch ( `${ WEBSITE_URL } /api/v1/ads` , {
150161 method : 'POST' ,
151162 headers : {
152163 'Content-Type' : 'application/json' ,
153164 Authorization : `Bearer ${ authToken } ` ,
154165 } ,
155- body : JSON . stringify ( { messages : adMessages } ) ,
166+ body : JSON . stringify ( { messages : userAdMessages } ) ,
156167 } )
157168
158169 if ( ! response . ok ) {
@@ -167,7 +178,7 @@ export const useGravityAd = (): GravityAdState => {
167178 const ad = data . ad as AdResponse | null
168179
169180 logger . info (
170- { ad, request : { messages : adMessages } } ,
181+ { ad, request : { messages : userAdMessages } } ,
171182 '[gravity] Received ad response' ,
172183 )
173184 return ad
@@ -226,7 +237,7 @@ export const useGravityAd = (): GravityAdState => {
226237 // Subscribe to global activity tracker
227238 useEffect ( ( ) => {
228239 if ( ! getAdsEnabled ( ) ) return
229-
240+
230241 const unsubscribe = subscribeToActivity ( handleActivity )
231242 return unsubscribe
232243 } , [ handleActivity ] )
0 commit comments