Prosecution Insights
Last updated: May 29, 2026
Application No. 18/150,049

Multiplayer Debugger

Non-Final OA §103§112
Filed
Jan 04, 2023
Priority
Apr 22, 2022 — provisional 63/363,453
Examiner
BERMAN, STEPHEN DAVID
Art Unit
2192
Tech Center
2100 — Computer Architecture & Software
Assignee
Replit Inc.
OA Round
3 (Non-Final)
78%
Grant Probability
Favorable
3-4
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 78% — above average
78%
Career Allowance Rate
266 granted / 340 resolved
+23.2% vs TC avg
Strong +59% interview lift
Without
With
+59.4%
Interview Lift
resolved cases with interview
Typical timeline
2y 7m
Avg Prosecution
9 currently pending
Career history
359
Total Applications
across all art units

Statute-Specific Performance

§101
2.5%
-37.5% vs TC avg
§103
90.8%
+50.8% vs TC avg
§102
3.8%
-36.2% vs TC avg
§112
2.6%
-37.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 340 resolved cases

Office Action

§103 §112
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This Office Action is filed in response to Applicant's Request for Continued Examination dated July 7, 2025. Claims 1-6, 8-11, 13-18, and 20 are currently amended, and claims 1-6, 8-11, 13-18, and 20-22 remain pending in the application and have been fully considered by Examiner. Applicant's arguments with respect to the prior art rejections have been considered, but are moot in view of the new grounds of rejection presented herein. Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on July 7, 2025, has been entered. Examiner Notes Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claims 1-6, 8-11, 13-18, and 20-22 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. With respect to claim 1, lines 29-30 recite, with emphasis added, “wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription,” but the claim does not previously recite a “subscription.” Furthermore, lines 14-15 recite, with emphasis added, “the first plurality of client devices subscribing to the first multiplayer debugger session” and lines 19-20 recite, with emphasis added, “the second plurality of client devices subscribing to the second multiplayer debugger session.” It is unclear whether “the subscription,” as recited on line 30, refers to “subscribing to the first multiplayer debugger session,” “subscribing to the second multiplayer debugger session,” or another subscription. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted lines 29-30 of claim 1 as reciting “wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session.” With respect to claims 8 and 15, each recites limitations similar to claim 1 and are likewise indefinite and have been interpreted similarly to claim 1 for purposes of compact prosecution (see the 35 USC 112(b) rejection of claim 1 above). Additionally, line 20 of claim 8 and line 19 of claim 15 each recite “the plurality of client devices.” It is unclear whether these refer to “a first plurality of client devices” or “a second plurality of client devices,” as previously recited on lines 6-7 and 10-11 of claim 8 respectively and lines 5-6 and 9-10 of claim 15 respectively. The scope of the claims is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted line 20 of claim 8 and line 19 of claim 15 as reciting “the first plurality of client devices.” With respect to all dependent claims, each inherits the 35 USC 112(b) deficiencies of its respective base claim (see the rejections of claim 1, 8, and 15 above). With respect to claims 4, 10, and 17, lines 3-4 of claim 4 recite “the plurality of client devices.” It is unclear whether this refers to “a first plurality of client devices,” as recited on line 13 of claim 1, or “a second plurality of client devices,” as recited on line 18 of claim 1. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted lines 3-4 of claim 4 as reciting “the first plurality of client devices.” Claims 10 and 17 recite limitations similar to claim 4 and are likewise indefinite and have been interpreted similarly to claim 4 for purposes of compact prosecution. With respect to claim 6, line 1 recites “the debugger multiplexer.” It is unclear if this refers to “a first debugger multiplexer instance,” as recited on lines 11-12 of claim 1, “a second debugger multiplexer instance,” as recited on lines 16-17 of claim 1, or something else altogether. The scope of the claim is therefore indefinite. For purposes of compact prosecution only, Examiner has interpreted line 1 of claim 6 as reciting “the first multiplexer debugger instance.” With respect to claim 20, line 5 recites “the third multiplayer debugger.” It is unclear whether this is the same as “a third multiplayer debugger session,” as previously recited on lines 3-4, which renders the scope of the claim indefinite. For purposes of compact prosecution only, Examiner has interpreted line 5 as reciting “the third multiplayer debugger session.” Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1, 2, 3, 5, 6, 8, 9, 11, 14, 15, 16, 18, 21, and 22 are rejected under 35 U.S.C. 103 as being unpatentable over Bates (US 20120084758, hereinafter Bates) in view of Garcia (US 9471466, hereinafter Garcia) and Zinkovsky et al. (US 20120151452, hereinafter Zinkovsky). With respect to claim 1, Bates discloses A system (e.g., Fig. 1) comprising: one or more processors; and a memory coupled to the one or more processors (e.g. Fig. 1, particularly, Processor 156 and RAM 168.) and comprising: a computer program (e.g., Fig. 1 and associated text, e.g., [0030], back-end debugger (118) is an application that controls operation of another application -- the debuggee (120) -- for the purpose of testing execution of the debuggee [a computer program].); ; and a configured to manage a plurality of multiplayer debugger sessions , the configured to (e.g., Fig. 1 and associated text, e.g., [0024], A debug session is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of a debugging a particular debuggee; [0028], listening agent (129) may … begin execution of a particular collaborative debug server application (130) upon request … The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a plurality of multiplayer debugger sessions]; [0030] The debug administrator (114) is a module … that administers a collaborative debug session.): create, , a first multiplayer debugger session and a second multiplayer debugger session (e.g., Fig. 1 and associated text, e.g., [0024], A debug session [multiplayer debugger session] is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of debugging a particular debuggee; [0028], listening agent (129) may … begin execution of a particular collaborative debug server application (130) upon request … The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a first multiplayer debugger session and a second multiplayer debugger session].), wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118) [first debugger], the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receive, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).), transmit the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).), determine, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.), transmit, by the first debugger multiplexer instance, the updated debugger state to a remainder of the first plurality of client devices (e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable; see also [0097-99].), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered [subscribing] in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses multiple debug server modules that cooperatively perform the functionality of a debugger session manager (see above), it does not appear to disclose a singular debugger session manager. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, Debug Manager 108 [debugger session manager] along with associated text, e.g., col. 3:33-49, The debug manager 108 provides two distinct services (among other functionality): a connection service 130 and a debug-request service 132 … their functionality is provided in an integrated single module.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debugger sessions are both for the computer program. However, this is further taught in Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program and are managed by an integrated debug manager, because integrating multiple management modules into one would simplify implementation and simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose a debugger module … instance of the debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claim 8, Bates discloses A non-transitory computer readable medium comprising computer readable code executable by one or more processors to (e.g., Fig. 1 and associated text, e.g., [0101], aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.): create a first multiplayer debugger session and a second multiplayer debugger session for , wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger [first debugger] … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receive, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).); transmit the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).); determine, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.); and transmit, by the first debugger multiplexer instance, the updated debugger state to a remainder of the plurality of client devices (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable.), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debug sessions are both for a computer program. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program, because simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose instance of a debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claim 15, Bates discloses A method (e.g., [0005], Methods … for collaborative software debugging) comprising: creating a first multiplayer debugger session and a second multiplayer debugger session simultaneous execution of several different debug server applications, each of which may debug separate debuggees [a first multiplayer debugger session and a second multiplayer debugger session].), wherein the first multiplayer debugger session comprises a first debugger multiplexer instance and a first debugger , and supports a first plurality of client devices in accordance with the first plurality of client devices subscribing to the first multiplayer debugger session (e.g., Figs. 1, 4, and 9 and associated text, e.g., [0030], registering [subscribing] and unregistering clients in a debug session; [0031], From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116) [first debugger multiplexer instance]; [0032], receiving, by the debug server (102) from the debug clients (104) [first plurality of client devices] asynchronously during a debug session of the debuggee (120), a plurality of application-level messages (126); routing, by the message router (116) … the application-level messages (126) among the debug clients, the debug administrator, and the back-end debugger [first debugger] … the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).), and wherein the second multiplayer debugger session comprises a second debugger multiplexer instance and a second debugger , and supports a second plurality of client devices in accordance with the second plurality of client devices subscribing to the second multiplayer debugger session (Id.,; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different [first and second] debug server applications, each of which may debug separate debuggees; [0029], collaborative debug server application (130) also includes a debug administrator (114), a message router (116), a back-end debugger (118), and a debuggee (120); [0032], the message router (116) provides distributed control of the back-end debugger (118) to the debug clients (104) with the application-level messages (126) routed to the back-end debugger (118).); receiving, from a first client device of the first plurality of client devices, a debugger operation for the first multiplayer debugger session (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0071], generating, by a requesting debug client (702), a request (706) to issue a command (718) [debugger operation] to the back-end debugger (118), sending the request (706) to the debug server (102), and receiving the request (722) by the message router (116); [0073], executing the command (718) causes the back-end debugger (118) to initiate execution (719) of the debuggee, for debugging purposes, monitor the execution of the debuggee, and gather results (720).); transmitting the debugger operation to the first debugger (e.g., Figs. 1-3, 7, and 9 and associated text, e.g., [0073], The method of FIG. 7 also includes routing the request (706) to the back-end debugger (118) by issuing the command (718) to the back-end debugger (118) by the message router (116).); determining, by the first debugger multiplexer instance, an updated debugger state in accordance with the debugger operation (e.g., Figs. 1-3, 7, and 9 along with associated text, e.g., [0074], After executing the issued command in the example of FIG. 7, the back-end debugger (118) returns to the message router (116) results (720) of the execution of the issued command, the message router [debugger multiplexer instance] receives the results (718) [updated debugger state in accordance with the debugger operation]. The nature of the results (720) of the execution depend upon the type of command (718) executed by the back-end debugger. A command to evaluate a variable for example, may return as little as an integer, while a command to step into execution of the debuggee may return significantly more information--variable values, register values, memory values, line number, source code file name, and thread number and so on. The results (720), once received by the requesting client (702) may be used to control the client-specific GUI, changing the information displayed on the GUI.); and transmitting, by the first debugger multiplexer instance, the updated debugger state to a remainder of the plurality of client devices (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622) … and receiving, by the debug clients identified as intended recipients (602), the reply (622) … having … a payload (632) included in the request (606) to distribute data; [0099], payload that includes the results of the evaluation of the variable.), wherein the updated debugger state is isolated from the second plurality of client devices in accordance with the subscription (please note the 35 USC 112(b) rejection and interpretation above; Id., particularly, [0067], generating, by a requesting debug client (602), a request (606) to distribute data (613) to debug clients registered in the debug session.), and wherein the first multiplayer debugger session and the second multiplayer debugger session are active at a same time (e.g., Fig. 1 and associated text, e.g., [0028], simultaneous execution of several different debug server applications, each of which may debug separate debuggees.). Although Bates discloses first and second debugger sessions for debugging separate computer programs (see above), it does not appear to disclose that the debug sessions are both for a computer program. However, this is taught in analogous art, Garcia (e.g., Fig. 1, particularly, e.g., col. 3:33-49, the back-end server may run … multiple instances of the same application, in multiple sessions for one or more clients.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that debugging sessions are for an instance of the same program, because simultaneously debugging instances of the same program would speed up debugging efforts for that program. Although Bates discloses a first debugger and a second debugger (see above), it does not appear to disclose instance of a debugger module … instance of the debugger module … instance. However, this is taught in analogous art, Zinkovsky (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116 [instances of the debugger module].). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debugger invention of Zinkovsky, such that debuggers are provided in sessions as an instance of a debugger module, because “Users need to be able to debug their code instances without having any impact on each other or on anyone else being served by the process in any way,” as suggested by Zinkovsky (see [0011]). With respect to claims 2, 9, and 16, Bates also discloses wherein the first debugger multiplexer instance is further configured to cause a presentation of a user interface corresponding to the first multiplayer debugger session to update in accordance with the updated debugger state (e.g., Figs. 1-3 and associated text, e.g., [0024], In the example of FIG. 1, the client-specific GUI (124) is a client-specific display of a debug session of the debuggee; [0031], the back-end debugger (118) is controlled indirectly by multiple clients through use of an intermediary--the message router (116) [first debugger multiplexer instance]. From the perspective of the back-end debugger (118), the debugger is controlled by a single source, the message router (116); [0033], The back-end debugger (118), responsive to the issued command, may then evaluate the variable and provide the results of the evaluation to the message router (116) [first debugger multiplexer instance]. Returning client-specific debug results in such embodiments may include returning the results of the evaluation to the requesting debug client (106); [0042], upon a mouse-over of the variable named `argument,` a request is sent, by the debug client presenting the GUI (124) of FIG. 2, to a debug server to issue a command to a back-end debugger to evaluate the variable, the debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results [update in accordance with the updated debugger state]; [0053], displaying (326), by each debug client in the client-specific GUI (124) on a display device (180), the client-specific debug results (322).). With respect to claim 3, Garcia also discloses a debugger adapter configured to abstract the debugger operation, wherein the debugger adapter provides multilanguage functionality based on an abstraction of the debugger operation (e.g., Figs. 1-2 and associated text, e.g., col. 3:5-32, The system 100 may include a front-end adapter 120 that translates browser-specific representations of debug requests and associated data into a generic representation [abstract the debugger operation] … The front-end plugin 126 may process the received debug requests, e.g., to enter them in a generic format; col. 3:65-col. 4:18, converting the request into a language and format that is understandable by the back-end debugger … rendering the debug-request service 132 suitable for use with multiple back-end debuggers 106 for which back-end plugins 134 are available … Further plugins 134 may be provided for applications written, for example, in Java, C, or any other suitable programming language.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the debugging invention of Bates with the debugger manager invention of Garcia, such that multilanguage functionality is provided, for the same reasons set forth above and also because it addresses the problem that debugging web applications “is often cumbersome and takes up valuable developer time” by “allowing an application developer to debug web applications without leaving the browser,” as suggested by Garcia (see col. 1:32-32 and col. 2:15-16.). With respect to claim 5, Bates also discloses wherein the first debugger multiplexer instance is further configured to transmit the updated debugger state in accordance with a determination that the debugger operation satisfies a share criteria (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0032], routing, by the message router (116) [the first debugger multiplexer instance] in accordance with an application-level message passing protocol, the application-level messages (126) among the debug clients; [0097], presenting (1204), to the user of the particular debug client through the client-specific GUI, an option to publish the results of the evaluation of the variable to other debug clients; [0098], receiving (1204) … an indication to publish the results of the evaluation of the variable to other debug clients [in accordance with a determination that the debugger operation satisfies a share criteria]; [0099], The reply to the distribute request may be implemented as an application-level message having a REQUEST REPLY message type and a payload that includes the results of the evaluation of the variable [transmit the updated debugger state].). With respect to claim 6, Bates also discloses wherein the debugger multiplexer is further configured to: receive, from the first client device, a second debugger operation, transmit the second debugger operation to debugger operation] routed to the back-end debugger (118).), determine that the second debugger operation does not satisfy a share criterion, and in accordance with a determination that the second debugger operation does not satisfy the share criterion, cause a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the debugger invention of Zinkovsky for the same reason set forth above. With respect to claim 11, Bates also discloses receive, from the first client device, a second debugger operation, transmit the second debugger operation to , determine that the second debugger operation does not satisfy a share criterion, and in accordance with a determination that the second debugger operation does not satisfy the share criterion, cause a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the debugger invention of Zinkovsky for the same reason set forth above. With respect to claim 14, Bates also discloses provide a user selectable option to a new client device to join the first multiplayer debugger session or the second multiplayer debugger session for the program (e.g., Figs. 1-3, 4, and 11-12 along with associated text, e.g., [0048], detecting (304), by each debug client (104), user (101 on FIG. 1) input (306) through the client-specific GUI (124). Detecting (304), user input (306) through the client-specific GUI (124) may be carried out in various ways including … detecting selection of drop-down menu items, detecting mouse-clicks on GUI items, such as GUI buttons, and so on; [0049], generating (308), by each debug client (104) in dependence upon the detected user input (306) [user selectable option], one or more application-level messages (310); [0055], FIG. 4 depicts a debug client [new client] -- the requesting client (402) of FIG. 4 -- generating (308 on FIG. 3) one or more application-level messages (310 on FIG. 3). In the example of FIG. 4, the requesting client (402) generates a request (406) to join the debug session [join the first multiplayer debugger session].). With respect to claim 18, Bates also discloses receiving, from the first client device, a second debugger operation, transmitting the second debugger operation to the first debugger , determining that the second debugger operation does not satisfy a share criterion, and in accordance with the determination that the second debugger operation does not satisfy the share criterion, causing a debugger view to be updated at the first client device in accordance with the second debugger operation (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation. Selecting the private menu item may invoke a popup or other GUI window from which a variable or variables may be selected for private evaluation by a user [determine that the second debugger operation does not satisfy a share criterion]. `Private` as the term is used here means that the results of the evaluation are returned only to the client requesting the evaluation; [0042], debug client receives results of the evaluation, and a pop-up text box (228) is displayed that includes the results.) and Zinkovsky teaches instance of the debugger module (e.g., Fig. 1, particularly, Non-invasive Debugger 115 [debugger module] and Non-Invasive Debugger 116 [debugger instances of the debug module] along with associated text, e.g., [0020], server process 118 executing on the server computer 102 can include one or more … sessions such as user session 1 104, user session 2 106. . . user session n 108 in which an instance of the cooperative, non-invasive, non-blocking debugger (e.g., debugger instance 116) is executing. Each user session … supports or cooperates with the cooperative, non-invasive, non-blocking debugger [debugger module] and an instance of the cooperative, non-invasive, non-blocking debugger 116.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the debugger invention of Zinkovsky for the same reason set forth above. With respect to claims 21 and 22, Bates also discloses transmit the updated debugger state in accordance with a determination that the debugger operation satisfies a share criteria (e.g., Figs. 1-4, 6-7, and 11-12 along with associated text, e.g., [0040], In the GUI (124) of FIG. 2, the Collaborate menu may, for example, include a menu item for private or public variable evaluation … ‘Public’ evaluation [debugger operation satisfies a share criteria] by contrast means that the results of the evaluation may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session.). Claims 4, 10, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Bates in view of Garcia and Zinkovsky, as applied to claims 1, 8, and 15 above, and further in view of Chandran et al. (US 20120317443, hereinafter Chandran). With respect to claim 4, Bates also discloses wherein the first debugger multiplexer instance is further configured to: transmit the updated debugger state to the remainder of the plurality of client devices based on an identification the first multiplayer debugger session among the plurality of multiplayer debugger sessions (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-4, 6, 7, 9, and 11-12 along with associated text, e.g., [0028], simultaneous execution of several different debug server applications [plurality of multiplayer debugger sessions], each of which may debug separate debuggees; [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622); [0058], a client identifier (420) unique to the debug session. After assignment a client identifier may be used in message passing among the debug clients, debug server, and debug administrator to identify a recipient of a message [based on an identification].). Although Bates discloses transmitting the updated debugger state to the remainder of the clients of the first multiplayer debugger session based on an identification (see above), it does not appear to disclose that the identification is of the first multiplayer debugger session. However, in analogous art, Chandran teaches transmitting based on an identification of a debugger session (e.g., Figs. 1-2 and 6 along with associated text, e.g., [0071], The method 600 may further involve associating 606 the first debugging session 220 with a unique identifier that allows the first debugging session 220 to be distinguished from other debugging sessions. The method 600 may also involve associating 608 commands issued by the first debugging session 220 with the unique identifier. This may allow the debugging session apparatus 106 to ensure that the results of the commands are provided to the correct debugging session.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the invention of Chandran, such that the updated debugger state is transmitted to all session clients based on a single debugger session ID, because using one session identifier would be simpler and more efficient than using the multiple client identifiers disclosed in Bates. With respect to claim 10, Bates also discloses transmit the updated debugger state to the remainder of the plurality of client devices based on an identification the first multiplayer debugger session (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-4, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622); [0058], a client identifier (420) unique to the debug session. After assignment a client identifier may be used in message passing among the debug clients, debug server, and debug administrator to identify a recipient of a message [based on an identification].). Although Bates discloses the first multiplayer debugger session and transmitting the updated debugger state to the remainder of the clients of the first multiplayer debugger session based on an identification (see above), it does not appear to disclose that the identification is of the first multiplayer debugger session. However, in analogous art, Chandran teaches transmitting based on an identification of a debugger session (e.g., Figs. 1-2 and 6 along with associated text, e.g., [0071], The method 600 may further involve associating 606 the first debugging session 220 with a unique identifier that allows the first debugging session 220 to be distinguished from other debugging sessions. The method 600 may also involve associating 608 commands issued by the first debugging session 220 with the unique identifier. This may allow the debugging session apparatus 106 to ensure that the results of the commands are provided to the correct debugging session.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the invention of Chandran, such that the updated debugger state is transmitted to all session clients based on a single debugger session ID, because using one session identifier would be simpler and more efficient than using the multiple client identifiers disclosed in Bates. With respect to claim 17, Bates also discloses transmitting the updated debugger state to the remainder of the plurality of client devices based on the updated debugger state being associated with an identification the first multiplayer debugger session (please note the 35 USC 112(b) rejection and interpretation above; e.g., Figs. 1-4, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation [updated debugger state] may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session [remainder of the plurality of client devices]; [0069], sending, by the message router (116) [first debugger multiplexer instance] to debug clients identified as intended recipients (602) in the request (606) to distribute data, a reply (622); [0058], a client identifier (420) unique to the debug session. After assignment a client identifier may be used in message passing among the debug clients, debug server, and debug administrator to identify a recipient of a message [based on the updated debugger state being associated with an identification].). Although Bates discloses the first multiplayer debugger session and transmitting the updated debugger state to the remainder of the clients of the first multiplayer debugger session based on the updated debugger state being associated with an identification (see above), it does not appear to disclose that the identification is of the first multiplayer debugger session. However, in analogous art, Chandran teaches transmitting based on an identification of a debugger session (e.g., Figs. 1-2 and 6 along with associated text, e.g., [0071], The method 600 may further involve associating 606 the first debugging session 220 with a unique identifier that allows the first debugging session 220 to be distinguished from other debugging sessions. The method 600 may also involve associating 608 commands issued by the first debugging session 220 with the unique identifier. This may allow the debugging session apparatus 106 to ensure that the results of the commands are provided to the correct debugging session.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the invention of Chandran, such that the updated debugger state is transmitted to all session clients based on the updated debugger state being associated with a single debugger session ID, because using one session identifier would be simpler and more efficient than using the multiple client identifiers disclosed in Bates. Claims 13 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Bates in view of Garcia and Zinkovsky, as applied to claims 8 and 15 above, and further in view of Somasundaram et al. (US 20180129584, hereinafter Somasundaram). With respect to claim 13, Bates also discloses wherein the computer readable code to create the second multiplayer debugger session comprises computer readable code to: the first multiplayer debugger session a third multiplayer debugger session (e.g., Fig. 1 and associated text, e.g., [0024], A debug session is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of a debugging a particular debuggee; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees.); and synchronize state information for the third multiplayer debugger session to one or more additional client devices associated with the third multiplayer debugger session (e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session.). Although Bates discloses a first and third debugger sessions (see above), it does not appear to disclose clone … to generate. However, this is taught by Somasundaram (e.g., Figs. 1 and 4 along with associated text, e.g., [0026], the debugging system 150 can save the ending application state 160 and the corresponding application inputs 120. Additionally, the debugging system 150 can … fork the ending application state 160 and the corresponding application inputs 120; [0054], At step 440, the debugging system resubmits the application inputs corresponding to the debugging session at a web server layer to generate a first restarted session [clone … to generate]. In certain aspects, the debugging system resubmits the application inputs in response to receiving a first request to fork the debugging session. As such, the first request to fork the debugging session enables the first restarted session to be modified without changing the context of the initial debugging session or affecting other instances of the debugging session.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debug session forking invention of Somasundaram because it allows users to “access the debugging session after the initial user has killed the debugging session” and “enables the first restarted session to be modified without changing the context of the initial debugging session or affecting other instances of the debugging session,” as suggested by Somasundaram (see [0053]-[0054]). With respect to claim 20, Bates also discloses the first multiplayer debugger session a third multiplayer debugger session (please note the 35 USC 112(b) rejection and interpretation above; e.g., Fig. 1 and associated text, e.g., [0024], A debug session is a semi-permanent interactive information interchange between at least one debug client and a debug server for the purposes of a debugging a particular debuggee; [0028], The server (102) in the example of FIG. 1, may support simultaneous execution of several different debug server applications, each of which may debug separate debuggees.); and synchronize state information for the third multiplayer debugger to one or more additional client devices associated with the third multiplayer debugger session (e.g., Figs. 1-3, 6, 7, 9, and 11-12 along with associated text, e.g., [0040], `Public` evaluation by contrast means that the results of the evaluation may be presented to other clients -- a predefined group, one or more clients selected in real-time during the selection of the variable to evaluation, or all clients registered in the debug session.). Although Bates discloses a first and third debugger sessions (see above), it does not appear to disclose cloning … to generate. However, this is taught by Somasundaram (e.g., Figs. 1 and 4 along with associated text, e.g., [0026], the debugging system 150 can save the ending application state 160 and the corresponding application inputs 120. Additionally, the debugging system 150 can … fork the ending application state 160 and the corresponding application inputs 120; [0054], At step 440, the debugging system resubmits the application inputs corresponding to the debugging session at a web server layer to generate a first restarted session [cloning … to generate]. In certain aspects, the debugging system resubmits the application inputs in response to receiving a first request to fork the debugging session. As such, the first request to fork the debugging session enables the first restarted session to be modified without changing the context of the initial debugging session or affecting other instances of the debugging session.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to further modify the invention of Bates with the debug session forking invention of Somasundaram because it allows users to “access the debugging session after the initial user has killed the debugging session” and “enables the first restarted session to be modified without changing the context of the initial debugging session or affecting other instances of the debugging session,” as suggested by Somasundaram (see [0053]-[0054]). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Specifically, Estler et al. “Collaborative Debugging” teaches an integrated development environment for real-time collaborative debugging. Any inquiry concerning this communication or earlier communications from the examiner should be directed to STEPHEN DAVID BERMAN whose telephone number is (571)272-7206. The examiner can normally be reached on M-F, 9-6 Eastern. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hyung S. Sough can be reached on 571-272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /STEPHEN D BERMAN/Examiner, Art Unit 2192
Read full office action

Prosecution Timeline

Show 3 earlier events
Feb 05, 2025
Final Rejection mailed — §103, §112
May 09, 2025
Interview Requested
Jun 23, 2025
Interview Requested
Jul 07, 2025
Request for Continued Examination
Jul 13, 2025
Response after Non-Final Action
Sep 24, 2025
Non-Final Rejection mailed — §103, §112
Mar 23, 2026
Response Filed
Mar 23, 2026
Response after Non-Final Action

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12591505
ANALYSIS OF CODE COVERAGE DIFFERENCES ACROSS ENVIRONMENTS
3y 4m to grant Granted Mar 31, 2026
Patent 12572372
SEMANTIC METADATA VALIDATION
3y 5m to grant Granted Mar 10, 2026
Patent 12572361
METHOD, APPARATUS, COMPUTER DEVICE, AND STORAGE MEDIUM FOR DETERMINING PAGE JUMP INFORMATION
1y 2m to grant Granted Mar 10, 2026
Patent 12547379
GENERATING TARGET LANGUAGE CODE FROM SOURCE LANGUAGE CODE
2y 0m to grant Granted Feb 10, 2026
Patent 12541344
RECORDING MEDIUM, PROGRAMMING ASSISTING DEVICE, AND PROGRAMMING ASSISTING METHOD
1y 1m to grant Granted Feb 03, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
78%
Grant Probability
99%
With Interview (+59.4%)
2y 7m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 340 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month