Prepare for release

This commit is contained in:
Saoud Rizwan
2024-09-21 11:50:25 -04:00
parent a690fb28fe
commit 2e865f32fe
5 changed files with 41 additions and 20 deletions

View File

@@ -4,6 +4,11 @@ All notable changes to the "claude-dev" extension will be documented in this fil
<!-- Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. --> <!-- Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. -->
## [1.9.0]
- Claude can now use a browser! This update adds a new `inspect_site` tool that captures screenshots and console logs from websites (including localhost), making it easier for Claude to troubleshoot issues on his own.
- Improved automatic linter/compiler debugging by only sending Claude new errors that result from his edits, rather than reporting all workspace problems.
## [1.8.0] ## [1.8.0]
- You can now use '@' in the textarea to add context! - You can now use '@' in the textarea to add context!

View File

@@ -2,7 +2,7 @@
"name": "claude-dev", "name": "claude-dev",
"displayName": "Claude Dev", "displayName": "Claude Dev",
"description": "Autonomous coding agent right in your IDE, capable of creating/editing files, executing commands, and more with your permission every step of the way.", "description": "Autonomous coding agent right in your IDE, capable of creating/editing files, executing commands, and more with your permission every step of the way.",
"version": "1.8.1", "version": "1.9.0",
"icon": "icons/icon.png", "icon": "icons/icon.png",
"galleryBanner": { "galleryBanner": {
"color": "#1E1E1E", "color": "#1E1E1E",

View File

@@ -54,7 +54,7 @@ export class ClaudeDevProvider implements vscode.WebviewViewProvider {
private view?: vscode.WebviewView | vscode.WebviewPanel private view?: vscode.WebviewView | vscode.WebviewPanel
private claudeDev?: ClaudeDev private claudeDev?: ClaudeDev
private workspaceTracker?: WorkspaceTracker private workspaceTracker?: WorkspaceTracker
private latestAnnouncementId = "sep-19-2024" // update to some unique identifier when we add a new announcement private latestAnnouncementId = "sep-21-2024" // update to some unique identifier when we add a new announcement
constructor(readonly context: vscode.ExtensionContext, private readonly outputChannel: vscode.OutputChannel) { constructor(readonly context: vscode.ExtensionContext, private readonly outputChannel: vscode.OutputChannel) {
this.outputChannel.appendLine("ClaudeDevProvider instantiated") this.outputChannel.appendLine("ClaudeDevProvider instantiated")

View File

@@ -1,7 +1,7 @@
import * as vscode from "vscode" import * as vscode from "vscode"
import * as fs from "fs/promises" import * as fs from "fs/promises"
import * as path from "path" import * as path from "path"
import { Browser, Page, TimeoutError, launch } from "puppeteer-core" import { Browser, Page, launch } from "puppeteer-core"
import * as cheerio from "cheerio" import * as cheerio from "cheerio"
import TurndownService from "turndown" import TurndownService from "turndown"
// @ts-ignore // @ts-ignore
@@ -113,18 +113,18 @@ export class UrlContentFetcher {
}) })
try { try {
// networkidle0 is when there are no more than 0 network connections - this is better for local dev servers that often have fewer concurrent connections than production sites // networkidle2 is a good point to take a screenshot without having to wait for the timeout to hit if the site never reaches networkidle0
await this.page.goto(url, { timeout: 10_000, waitUntil: ["domcontentloaded", "networkidle0"] }) await this.page.goto(url, { timeout: 10_000, waitUntil: ["domcontentloaded", "networkidle2"] })
} catch (err) { } catch (err) {
// don't want to log in case of timeout error, that likely means the site just never reached networkidle0 but claude can still inspect the page and logs // if (!(err instanceof TimeoutError)) {
if (!(err instanceof TimeoutError)) { // logs.push(`[Navigation Error] ${err.toString()}`)
logs.push(`[Navigation Error] ${err.toString()}`) // }
} logs.push(`[Navigation Error] ${err.toString()}`)
} }
// Wait for console inactivity, with a timeout // Wait for console inactivity, with a timeout
await pWaitFor(() => Date.now() - lastLogTs >= 500, { await pWaitFor(() => Date.now() - lastLogTs >= 500, {
timeout: 5_000, timeout: 3_000,
interval: 100, interval: 100,
}).catch(() => {}) }).catch(() => {})

View File

@@ -31,22 +31,38 @@ const Announcement = ({ version, hideAnnouncement }: AnnouncementProps) => {
<h3 style={{ margin: "0 0 8px" }}> <h3 style={{ margin: "0 0 8px" }}>
🎉{" "}New in v{version} 🎉{" "}New in v{version}
</h3> </h3>
<p style={{ margin: "5px 0px" }}>You can now use '@' in the textarea to add context!</p> <p style={{ margin: "5px 0px" }}></p>
<ul style={{ margin: "0 0 8px", paddingLeft: "12px" }}> <ul style={{ margin: "0 0 8px", paddingLeft: "12px" }}>
<li> <li>
<strong>@url:</strong> Paste in a URL for the extension to fetch and convert to markdown, useful Claude can now use a browser! This update adds a new <code>inspect_site</code> tool that captures
when you want to give Claude the latest docs! screenshots and console logs from websites (including localhost), making it easier for Claude to
troubleshoot issues on his own.
<VSCodeLink style={{ display: "inline" }} href="https://x.com/sdrzn/status/1835100787275419829">
See a demo here.
</VSCodeLink>
</li> </li>
<li> <li>
<strong>@problems:</strong> Add workspace errors and warnings for Claude to fix, no more Improved automatic linter/compiler debugging by only sending Claude new errors that result from his
back-and-forth about debugging edits, rather than reporting all workspace problems.
</li> </li>
<li> <li>
<strong>@file:</strong> Adds a file's contents so you don't have to waste API requests approving You can now use '@' in the textarea to add context:
read file (+ type to search files) <ul style={{ margin: "0 0 8px", paddingLeft: "20px" }}>
</li> <li>
<li> <strong>@url:</strong> Paste in a URL for the extension to fetch and convert to markdown
<strong>@folder:</strong> Adds folder's files all at once to speed up your workflow even more (i.e. give Claude the latest docs)
</li>
<li>
<strong>@problems:</strong> Add workspace errors and warnings for Claude to fix
</li>
<li>
<strong>@file:</strong> Adds a file's contents so you don't have to waste API requests
approving read file (+ type to search files)
</li>
<li>
<strong>@folder:</strong> Adds folder's files all at once
</li>
</ul>
</li> </li>
</ul> </ul>
{/* <p style={{ margin: "5px 0px" }}> {/* <p style={{ margin: "5px 0px" }}>