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:
kbanc85 2026-02-15 12:58:47 -05:00
parent a73644b516
commit 681ffa275b
4 changed files with 14 additions and 22 deletions

View File

@ -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'

View File

@ -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",

View File

@ -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>

View File

@ -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>