Camp

Four Transactions, Three Skirmishes, And Not One Word About Left Guard

San Francisco put the pads on for the first time Friday, signed two players, removed two others, and ended the day with the same 91 bodies it started with. Nobody who watched the practice filed a rep count at the position the pads were supposed to settle.

SK
Sam KezarJul 31, 20264 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Four Transactions, Three Skirmishes, And Not One Word About Left Guard

San Francisco signed tight end Josiah Deguara and receiver Trenton Irwin to one-year deals Friday, waived cornerback Derrick Canteen, and waived/injured tight end Tanner McLachlan. All four are in the club's own release.

Count the roster afterward and nothing has moved. This site counted the four tables on the 49ers' own roster page at 2:52 p.m. Pacific: 87 active, four on Active/Physically Unable to Perform, one on Reserve/Injured, one on Reserve/Left Squad. Active/PUP occupies a roster spot and the reserve lists do not, so the number against the offseason limit of 90 is 87 plus four, or 91. That was the count Thursday and it is the count now. Two in, two out, and still one body more than the rules allow.

Deebo Samuel is on none of the four tables. The club's newsroom index carried no release on him at 2:54 p.m. He agreed to terms Thursday night, and until San Francisco processes that agreement, another name is still owed.

Three of the last four subtractions came out of one afternoon in January#

McLachlan signed on July 25 and was waived/injured on July 31. Six days. He is the only player this site's 53-man tracker has carried onto the board and then off it; every other subtraction this camp has produced came from off the board entirely. Waived/injured is not waived, and the distinction matters here: the designation carries an injury settlement or a revert-to-injured-reserve path behind it, so a player who clears waivers in that condition reverts to the club's injured list rather than reaching free agency. Nobody has said what the injury is.

Canteen is the more useful name, and the reason is a date. He signed a Reserve/Future contract on January 20 of this year. So did William Bradley-King. So did Andrew Farmer II, and those two were waived/injured on Wednesday as the corresponding moves for K.J. Henry and Quinton Bell.

Three of the last four bodies the 49ers have removed to make room came out of the same January afternoon's paperwork, and the fourth was a tight end who had been here six days. That is what a full roster looks like from underneath. The club is not cutting into its team. It is spending down a class of players it signed in January so there would be something to spend in July.

Irwin's arrival closes a loop from Wednesday. He worked out for the club that afternoon alongside Alex Bachman and D'Wayne Eskridge, per Vic Tafur and Matt Barrows of The Athletic and David Lombardi of the San Francisco Standard, on a day when two of the top four receivers could not practice. The tryout list was a shopping list.

Deguara is 29, a third-round pick of Green Bay in 2020, with 77 games and 12 starts for three organizations and 53 catches for 471 yards. Irwin is 30, undrafted out of Stanford, with 41 games and nine starts for five and 46 catches for 601 yards. Neither carries a jersey number on the club's roster page yet.

The pads came on and the line play went unreported#

Friday was the fourth practice of camp and the first in pads. Every rep graded on this site's tracker before Friday was taken in shorts, which is the honest limit on all of it, and it bites hardest at the one open starting job on the offense.

Four accounts of the practice were read Friday afternoon: Matt Maiocco of NBC Sports Bay Area, Kyle Madson of Niners Wire, syndicated through the Press Democrat and Central Oregon Daily, and the ninernoise camp tracker. Not one of them carries a left guard note, an interior line note, or a rep count of any kind.

Which leaves the last published count at the position where it was six days ago, in Nick Wagoner's July 26 report for ESPN: Connor Colby "took all the reps with the starters Sunday, though Chris Foerster said Robert Jones will also compete there." All of them, not most. There has now been a padded practice on the far side of that sentence and it has not been added to. Colby and Jones both hold at 8 on the tracker, which is a hold on an absence of evidence rather than on evidence of a stalemate, and those are different things.

What everybody filed instead was the fight. Maiocco counted three skirmishes, with Dre Greenlaw and Christian McCaffrey at the center of two. Madson has Greenlaw shoving McCaffrey to the ground after a catch and McCaffrey throwing the ball at him and shoving back, then Fred Warner and tight end Jake Tonges going at each other after a reception, with right tackle Colton McKivitz pulled down by Greenlaw and fullback Kyle Juszczyk arriving into the pile. Foerster had told the team that morning to protect the team and not get into fights. His verdict afterward, per Maiocco: "I don't think it's anything more than a Day 1 issue."

Who was on the field#

Nick Bosa and Trent Williams were held out of team drills again and took part in one-on-one pass rush, per Maiocco. Defensive lineman C.J. West did not practice, with the club calling it minor and expecting him back soon, also Maiocco.

Maiocco has defensive lineman Alfred Collins taking part in the padded practice after opening camp on the physically-unable-to-perform list following shoulder surgery. The club's own roster page still listed him in the Active/PUP table when it was counted at 2:52 p.m. Both are recorded here with their times rather than reconciled, because a roster page that updates slower than a practice field is the likeliest explanation and not one this site can confirm.

Six men were out and none of them is new: Ricky Pearsall with the right knee, Jordan James with the rib, Christian Kirk with the calf, Malik Mustapha with the hamstring, Gracen Halton with the knee and Vederian Lowe with the ankle, per Madson.

The plays that got written down, all Maiocco: Brock Purdy to Mike Evans for a six-yard touchdown near the goal line, a leaping catch over nickel back Upton Stout; Demarcus Robinson catching a touchdown on a fade against Renardo Green; Mac Jones throwing 40 yards to Malik Turner; and rookie De'Zhaun Stribling catching passes from both Kurtis Rourke and Jones.

No grade on the 53-man tracker moved Friday. Deguara enters at 4 and Irwin at 3, both below the cut line, McLachlan leaves it, and the projected 53 is the same 53 it was Thursday.

Correction, 2026-08-17

This piece stated that San Francisco ended the day with "the same 91 bodies it started with" and that this was "still one body more than the rules allow." The count of 91 names on the club's roster page was right; the conclusion drawn from it was wrong. The NFL granted San Francisco a roster exemption for OL Isaac Alarcon on April 28, 2026, so he does not count against the 90-man offseason limit and the club was not over it at any point in camp. He begins counting at the cut to 53. The transactions the piece reports are unaffected; what falls away is the premise that the club owed the league a move.

DS

Sources. The four transactions, the contract terms, both career lines and Canteen's January 20 Reserve/Future date are from the 49ers' own release of July 31, checked against the club's transaction log the same afternoon. The roster count is this site's, taken table by table from the club's official roster page at 2:52 p.m. PT on July 31, and the newsroom index was checked at 2:54 p.m. Practice observations, the skirmish count, the Foerster quote, the participation notes on Bosa, Trent Williams, C.J. West and Alfred Collins, and the completions listed above are Matt Maiocco, NBC Sports Bay Area, July 31. The skirmish sequence and the absence list are Kyle Madson, Niners Wire, July 31. The July 26 left guard rep count is Nick Wagoner, ESPN. The Wednesday receiver workout is Vic Tafur and Matt Barrows, The Athletic, and David Lombardi, San Francisco Standard, July 29. Bradley-King's and Farmer's January 20 contract dates are from the club's July 29 release. Grades are maintained on this site's 53-man tracker. This site was not at the practice.

Filed under 49ers

Latest on the 49ers

The whole beat →
The 49ers ran Las Vegas out of its plan before they took the ball away
49ers Deep Dive

The 49ers ran Las Vegas out of its plan before they took the ball away

San Francisco beat Las Vegas 38-17 on Sunday and is 7-1. The five second-half takeaways will be remembered, but the game was settled earlier. The 49ers' first three drives went 37 plays and 242 yards, took 19 minutes and 23 seconds and ended in touchdowns, and San Francisco ran 25 times for 125 yards before halftime. Las Vegas had the ball for 71 seconds in the first 13 minutes. Trailing by 11 at the half, the Raiders ran six times and threw 24 times after it, and Klint Kubiak said that being in position to throw on every down produces interceptions. The pass rush did not cause the turnovers: Cousins was hit twice on eight first-half throws and four times on 24 second-half throws. Two takeaways were punched out of receivers' hands, and one came off a fumbled exchange. The second half also showed a cost. San Francisco threw an interception, was stopped on fourth-and-1 at its own 40, and allowed 222 kickoff-return yards, and Las Vegas started three drives in 49ers territory. The game moved San Francisco's season turnover margin from minus-3 to plus-1. Las Vegas has now allowed 30 or more points six weeks running, so Dallas on Sunday is the first test of whether the formula holds.

Sam KezarNov 10, 20266 min read
The 49ers trade a sixth-round pick for Keenan Allen
49ers Notebook

The 49ers trade a sixth-round pick for Keenan Allen

San Francisco acquired wide receiver Keenan Allen from Indianapolis on Tuesday, deadline day, for a 2027 sixth-round pick, the league transaction wire shows. It is the second trade between the clubs in three weeks, after DeForest Buckner on Oct. 27. Allen, 34, played at Cal and is a six-time Pro Bowler with 1,095 career catches, eighth all time. He had 40 catches for 351 yards and one touchdown in eight games for the Colts, their team lead. The club placed Gracen Halton on injured reserve with a fractured ankle the same afternoon, and its roster page showed 52 on the active roster before Allen was added. Allen joins a receiver room missing Mike Evans and Deebo Samuel Sr. last Sunday. He caught four passes for 26 yards against Dallas in Week 9, and the 49ers play at Dallas on Sunday.

Sam KezarNov 10, 20263 min read
Five takeaways in one half, and the 49ers never sacked Kirk Cousins
Takeaways

Five takeaways in one half, and the 49ers never sacked Kirk Cousins

San Francisco beat Las Vegas 38-17 at Levi's Stadium on Sunday and is 7-1. The 49ers scored touchdowns on their first three possessions, did not punt, and ran 43 times for 190 yards. Las Vegas turned the ball over on five of its six second-half possessions: Jaden Dugger's 35-yard interception return on the first play of the half, two forced fumbles, and interceptions by Renardo Green and Malik Mustapha. The official game book credits San Francisco with no sacks and six quarterback hits, two of them on the plays Green and Mustapha intercepted. Nick Bosa played 39 of 50 defensive snaps in his first game since Sept. 20, and DeForest Buckner played 34. Jordan Watkins caught all four of his targets for 86 yards and his first NFL touchdown. Christian McCaffrey's 12-yard catch set the Super Bowl-era record for touchdown catches by a running back and was Brock Purdy's 100th touchdown pass. Gracen Halton broke his ankle and is out for the season, Shanahan said; Green (back) and Deommodore Lenoir (foot) did not return.

Sam KezarNov 9, 20265 min read

Earlier on the 49ers

Nick Bosa Practised For The First Time Since August 3
Camp Notebook

Nick Bosa Practised For The First Time Since August 3

Nick Bosa practised Wednesday for the first time since August 3, in individual drills and in team periods, per Nick Wagoner at ESPN. It is his first full practice since he tore the right anterior cruciate ligament in Week 3 of last season. He said afterwards that once a session reaches team work there is no governor on it, and that he is confident about Week 1. Ian Rapoport reported Wednesday morning that Bosa and George Kittle both travel to Australia. Kittle has now had three straight days of team work, dated to Monday by John Lynch. Six players sat out, three fewer than Tuesday: Renardo Green, Jacob Cowing, Luke Gifford, Gracen Halton, Romello Height and James Thompson Jr. Jack Jones was on neither list and did no work with the team. Left guard is still not named. The club hosted defensive tackle McKinnley Jackson on a visit and signed nobody.

Sam KezarSep 2, 20264 min read
The 49ers' Championship Price Sat Out The Preseason
The ruler

The 49ers' Championship Price Sat Out The Preseason

The 49ers futures number quoted on every odds page cannot express any revision smaller than 11.11 percent of its own value, and nothing the preseason did to San Francisco was that big. Here is the arithmetic, the two cheaper books that registered what the expensive one could not, and why twenty-seven of the thirty-two teams on the board have the same problem.

Casey MontgomeryAug 28, 20268 min read
Christian McCaffrey Took Roughly Seven Team Reps On Sunday
Camp Notebook

Christian McCaffrey Took Roughly Seven Team Reps On Sunday

San Francisco practised Sunday morning at 10:15. Christian McCaffrey took team reps for the first time since the tightness, Deommodore Lenoir and De'Zhaun Stribling returned in no-contact jerseys, Romello Height was new to the non-participant list, and Upton Stout intercepted Brock Purdy. Renardo Green's imaging, ordered on Friday, is still unreported three days on.

Sam KezarAug 23, 20263 min read