Reverse terminal history, oracle answers canvas-only, fix camera permissions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a73644b516
commit
681ffa275b
|
|
@ -2,5 +2,5 @@
|
|||
X-Frame-Options: DENY
|
||||
X-Content-Type-Options: nosniff
|
||||
Referrer-Policy: strict-origin-when-cross-origin
|
||||
Permissions-Policy: camera=(), microphone=(), geolocation=()
|
||||
Permissions-Policy: camera=(self), microphone=(), geolocation=()
|
||||
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"totalArticles": 83,
|
||||
"totalClaims": 415,
|
||||
"lastUpdated": "2026-02-15T17:48:20.296Z",
|
||||
"lastUpdated": "2026-02-15T17:54:54.062Z",
|
||||
"latestArticleDate": "2026-02-14",
|
||||
"topics": [
|
||||
"business",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<link>https://kbanc.com</link>
|
||||
<description>Evidence-based claims about AI implementation, optimized for LLM extraction and research citation.</description>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Sun, 15 Feb 2026 17:48:19 GMT</lastBuildDate>
|
||||
<lastBuildDate>Sun, 15 Feb 2026 17:54:53 GMT</lastBuildDate>
|
||||
<atom:link href="https://kbanc.com/feed.xml" rel="self" type="application/rss+xml"/>
|
||||
|
||||
<item>
|
||||
|
|
|
|||
|
|
@ -76,12 +76,9 @@ function StreamingOutput({
|
|||
);
|
||||
}
|
||||
|
||||
function OracleOutput({ entry }: { entry: HistoryEntry }) {
|
||||
return (
|
||||
<div className="ml-5">
|
||||
<p className="text-terminal-green font-bold text-lg">{entry.oracleResponse}</p>
|
||||
</div>
|
||||
);
|
||||
function OracleOutput() {
|
||||
// Oracle responses only appear in the canvas overlay, not as terminal text
|
||||
return null;
|
||||
}
|
||||
|
||||
function CompletedOutput({ entry }: { entry: HistoryEntry }) {
|
||||
|
|
@ -170,7 +167,6 @@ function TerminalHomepageInner({
|
|||
const inviteShownRef = useRef(false);
|
||||
|
||||
const inputRef = useRef<HTMLInputElement>(null);
|
||||
const bottomRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
// All selectable menu items in display order
|
||||
const selectableItems = useMemo(() => COMMANDS, []);
|
||||
|
|
@ -190,10 +186,8 @@ function TerminalHomepageInner({
|
|||
return "";
|
||||
}, [inputValue]);
|
||||
|
||||
// Scroll output to bottom when history changes
|
||||
useEffect(() => {
|
||||
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
||||
}, [history, streamingId]);
|
||||
// Reversed history: newest first (right under input, older pushed down)
|
||||
const reversedHistory = useMemo(() => [...history].reverse(), [history]);
|
||||
|
||||
// Handle pending navigation
|
||||
useEffect(() => {
|
||||
|
|
@ -567,12 +561,12 @@ function TerminalHomepageInner({
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{/* History */}
|
||||
{history.map((entry) => (
|
||||
{/* History (newest first) */}
|
||||
{reversedHistory.map((entry) => (
|
||||
<div key={entry.id} className="mb-3">
|
||||
<TerminalPrompt command={entry.command} />
|
||||
{entry.isOracle ? (
|
||||
<OracleOutput entry={entry} />
|
||||
<OracleOutput />
|
||||
) : streamingId === entry.id ? (
|
||||
<StreamingOutput entry={entry} onComplete={handleStreamComplete} />
|
||||
) : completedIds.has(entry.id) ? (
|
||||
|
|
@ -580,7 +574,6 @@ function TerminalHomepageInner({
|
|||
) : null}
|
||||
</div>
|
||||
))}
|
||||
<div ref={bottomRef} />
|
||||
</div>
|
||||
|
||||
{/* Mobile input */}
|
||||
|
|
@ -724,7 +717,7 @@ function TerminalHomepageInner({
|
|||
</form>
|
||||
</div>
|
||||
|
||||
{/* Output area (scrolls down below input) */}
|
||||
{/* Output area (newest first, older pushed down) */}
|
||||
<div className="flex-1 overflow-y-auto p-5">
|
||||
{history.length === 0 ? (
|
||||
<p className="text-terminal-dim text-sm">
|
||||
|
|
@ -732,11 +725,11 @@ function TerminalHomepageInner({
|
|||
</p>
|
||||
) : (
|
||||
<div className="space-y-4">
|
||||
{history.map((entry) => (
|
||||
{reversedHistory.map((entry) => (
|
||||
<div key={entry.id}>
|
||||
<TerminalPrompt command={entry.command} />
|
||||
{entry.isOracle ? (
|
||||
<OracleOutput entry={entry} />
|
||||
<OracleOutput />
|
||||
) : streamingId === entry.id ? (
|
||||
<StreamingOutput entry={entry} onComplete={handleStreamComplete} />
|
||||
) : completedIds.has(entry.id) ? (
|
||||
|
|
@ -746,7 +739,6 @@ function TerminalHomepageInner({
|
|||
))}
|
||||
</div>
|
||||
)}
|
||||
<div ref={bottomRef} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue