@@ -830,18 +830,20 @@ func (api *API) workspaceAgentReportStats(rw http.ResponseWriter, r *http.Reques
830
830
// We will see duplicate reports when on idle connections
831
831
// (e.g. web terminal left open) or when there are no connections at
832
832
// all.
833
- var insert = ! reflect .DeepEqual (lastReport , rep )
833
+ // We also don't want to update the workspace last used at on duplicate
834
+ // reports.
835
+ var updateDB = ! reflect .DeepEqual (lastReport , rep )
834
836
835
837
api .Logger .Debug (ctx , "read stats report" ,
836
838
slog .F ("interval" , api .AgentStatsRefreshInterval ),
837
839
slog .F ("agent" , workspaceAgent .ID ),
838
840
slog .F ("resource" , resource .ID ),
839
841
slog .F ("workspace" , workspace .ID ),
840
- slog .F ("insert " , insert ),
842
+ slog .F ("update_db " , updateDB ),
841
843
slog .F ("payload" , rep ),
842
844
)
843
845
844
- if insert {
846
+ if updateDB {
845
847
lastReport = rep
846
848
847
849
_ , err = api .Database .InsertAgentStat (ctx , database.InsertAgentStatParams {
@@ -860,6 +862,18 @@ func (api *API) workspaceAgentReportStats(rw http.ResponseWriter, r *http.Reques
860
862
})
861
863
return
862
864
}
865
+
866
+ err = api .Database .UpdateWorkspaceLastUsedAt (ctx , database.UpdateWorkspaceLastUsedAtParams {
867
+ ID : build .WorkspaceID ,
868
+ LastUsedAt : time .Now (),
869
+ })
870
+ if err != nil {
871
+ httpapi .Write (rw , http .StatusBadRequest , codersdk.Response {
872
+ Message : "Failed to update workspace last used at." ,
873
+ Detail : err .Error (),
874
+ })
875
+ return
876
+ }
863
877
}
864
878
865
879
select {
0 commit comments